The issue with photoshop is scripting was tacked on after the fact and not part 
of it's original design.  Scripting in photoshop exists, but as an afterthought.
 
JavaScript, AppleScript, and VBscript are all supported, but their range of 
supported features and capabilities do not fully overlap.  Some features are 
only available in JavaScript, for example.  Depending on which language you 
choose, your options are limited.  for example, executing external commands 
from JavaScript is very difficult at best.  You can launch a command, but good 
luck getting any useful feedback what the command did and be able to integrate 
that into the guts of a larger procedure.  You usually have to hack around the 
problem by generating .bat files and dumping output to a file, then launch 
another process to read that file data and hope another operation either from 
photoshop or another application didn't overwrite that data in race condition 
(batch process, for example).
 
Python can be used for photoshop as a late bind, but it's not perfect either.  
Some notifications sent by photoshop don't make it to Python, and in cases 
where you have more than one version of photoshop installed, you have to be 
careful to bind to the correct version or else your code is talking to a 
corpse.  It's nice you can use wx or Qt for the UI, but since it doesn't 
communicate 1:1 with photoshop, it's of limited use.
 
The only language that can do everything supported in photoshop without having 
to resort to crazy hacks and workarounds is C++ (Pascal used to be able to make 
this claim).  The downside to that is you have to do a lot of the work yourself 
and the supplied learning materials are woefully out of date.  The most recent 
example I could find demonstrates how to build plugins using Visual Studio 2005 
(There are more recent examples that point to using Visual Studio 2008, but 
those tutorials are incomplete).  There are 25 supplied examples with source 
code, including the script listener, but much of the source code uses 
obsolete/deprecated features (such as ADM) sending a mixed signal to the 
learner how to develop plugins.  

What I surmised from all this is that if you want to develop a photoshop plugin 
with the fewest problems (compatibility, comprehensiveness, ...), you should 
write it in C++ and use Win32 dialogs for the UI (assuming your plugin is for 
the windows version of photoshop).  There is a tutorial on how to integrate 
MFC, but Adobe's own comments suggest not to do it.

Photoshop looks to be an application in transition.  A transition that will 
take many releases to complete.
 
 
Matt
 
 
 
 
>> Extendscript can access the hard drive as far as creating files and folders, 
>> writing and reading and deleting. Is that what you mean? A script log for 
>> both AE and PSD would be invaluable. I've submitted multiple feature 
>> requests for it. 
                                          

Reply via email to