Monday, August 28, 2017

Compatibility of InDesign scripts with future updates

One of the things that occupies a great deal of my time is writing custom scripts to automate Adobe InDesign. Most of these scripts are custom solutions to solve specific client workflows, but I have a handful of free public scripts available here.

The question I’m asked most frequently is this: “Will a script written for today’s version of InDesign continue to work in future versions of InDesign?" The short answer is “usually."

Scripts automate InDesign by accessing commands built into InDesign’s “document object model” or DOM. This DOM is an exhaustive, invisible-to-the-user list of commands available “under the hood” in InDesign that programmers can access to automate InDesign features and functions. 

There are no guarantees about what Adobe might do in the future—but this DOM has not undergone any type of wholesale change in many, many years. As Adobe adds and changes features in InDesign, typically only the commands in the DOM related to those features change.

So, for example, if you have a script that automates some sort of find/change function, you could reasonably expect this script to continue to function in future versions of InDesign until Adobe decides to change something with the way InDesign performs Edit > Find/Change. Many scripts originally written for InDesign CS3 10 years and 7 major versions ago still run perfectly today.

If Adobe does change something in the DOM that causes a script to cease working properly, typically the charge to update the script is a small fraction of the original development cost of the script.