Scripting For Graphics Designers

From ThoughtBridges
Revision as of 10:34, 20 January 2014 by Kris (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The Adobe Creative Suite

The terms ‘graphics design’ covers a wide range of tasks. Sometimes a graphics designer will find that certain seemingly simple tasks require a lot of effort.

The software developers at Adobe who built the Creative Suite realized that it was not possible to create the be-all and end-all toolset for every imaginable task.

Their solution was to leave the the Creative Suite ‘open ended’: they made their tools extensible in a number of ways.

That approach makes it possible to enhance the Adobe Creative Suite ‘in the field’: it can be made to automatically perform tasks that it was not originally designed for.

Graphics Designers

According to popular science, most graphics designers are right-brainers. The right side of their brains is the dominant side. As a result, they are often visually oriented, non verbal, intuitive, creative...

When right-brainers use programs like Adobe® InDesign®, Photoshop®, Illustrator®... they feel right at home. These programs are visually oriented, and they work great when it comes to doing graphics design.

These programs are very powerful to start with. Being extensible makes them even more powerful.

With power comes a price, though. Despite the fact that these tools are highly visually oriented for their main usage, their ‘extensibility’ aspect is not visually oriented at all. Extensibility of the Adobe apps is clearly a left-brainer’s area.

Many graphics designers successfully use, modify or even create scripts. However, they tend to be more of an exception rather than a rule.

Software developers

Then there are software developers. These people create programs in JavaScript, C#, C++, Java, Visual Basic, PHP, Perl, Python,...

Stereotypically, these people are often left-brainers: the left side of the brain is the dominant side. They are supposed to be more rational, verbally orientated, logical, structured, detail-oriented, rational, mathematical.

They might not know a fill pattern from a character style, or how to use Photoshop or Illustrator, but they feel right at home when it comes to the extensibility side of the Adobe tools.

In an ideal world, when faced with a shortcoming or inefficiency in the Adobe tools, a graphics designer would read the relevant documentation, and then extend the tool to do what is needed. Simple, right?

In practice, the technical documentation becomes incomprehensible word salad to a visually oriented person. The above scenario will only rarely, if ever, occur.

The solution to this dilemma is to find a way to combine the effort of two or more people. The idea is to combine the strengths of the two personality types.

The aim of this wiki is to set out a number of guidelines. These guidelines form a common ground between the left-brain and right-brain worlds. Through them, left-brainers can efficiently communicate ideas and meaning that otherwise would go unnoticed.

By following these guidelines, software developers can make the scripts they create more flexible and easier to use for graphics designers.

By knowing about these guidelines, graphics designers can use scripts, and confidently modify existing scripts to make them fit their needs.

But what about plug-ins and extensions?

This part of the wiki will only cover one of the possible approaches to extensibility: scripting with ExtendScript.

The reason why? Pokeability. Let me explain.

If a script a pokeable, it can easily be modified (poked) even by a person with little or no knowledge of the scripting language used.

When a proper pokeable script is opened in a text editor, it is self-explanatory, the areas that are open for tweaking are obvious, and tweaking can be done easily without fear of breaking the script.

ExtendScripts can be built and modified without need for additional tools: all that is needed is provided with the Creative Suite.

Things like plug-ins, extensions, C++, ActionScript, CS Extension Builder... are not covered in this wiki. These things are not very pokeable. They are much more ‘software-developer’-oriented, and go way beyond what most graphics designers would be comfortable with. They also often rely on specialized tools for building and testing.

ExtendScripts are always somewhat pokeable by nature, but by paying attention to it, pokeability can be improved. This wiki is about how to make scripts originating from a left-brained person more pokeable by other people, even if they are not a software developer.