A Comparison of the Gimp and Photoshop Mindsets
Several years ago, I was involved in developing an image-processing app that
was also to be made available as a Photoshop plug-in.
This was in the days of Photoshop 6.0. Back then, all the information you
needed to develop plug-ins was available for free from Adobe's website--
software developer kit (SDK), docs, sample code, everything.
In the latter part of the project, Photoshop 7.0 came out. Suddenly, you had
to sign an non-disclosure agreement before Adobe would give you permission
to obtain the SDK. To make it worse, all the SDKs for previous versions
disappeared from their website. To claim that "trade secrets" in the newer
version made the restrictions necessary might make some sense, but how could
you possibly justify applying that retroactively to downloads that had
previously been freely available?
Anyway, yesterday I was reading a few articles about Gimp. One was a tip
about how to create a "Michael Orton"-type effect. The others were
tutorials on how to write your own Gimp plug-ins.
Now, when you hear the term "plug-in", you're probably thinking about
something that has to be written in a language like C or C++, and needs to
be built in a special way, using special interfaces and libraries provided
in the SDK, so that it can be recognized by the host app. You can do this
with Gimp, but you don't have to: it turns out you can also write plug-ins
in a scripting language like Python. And you can do it in very little code--
I was able to implement the Michael Orton effect in just about three dozen
lines of code, complete with help text, a settings dialog, and the
appearance of the filter effect as a single step in your Undo/Redo history.
Photoshop has this feature called "automation", which is supposed to make it
easier for users to perform repetitive tasks. Sounds like it should be
something resembling a scripting language, only it's not, really: as far as
I can tell, it lacks looping and conditionals, so it can really only perform
a linear sequence of steps, and it cannot adapt to different situations.
Gimp doesn't have this feature, because it doesn't need it: just write your
repetitive sequence as a plug-in, because it's so easy to do. If you use
Python, it's not some cut-down Python built into Gimp; it's the full,
standard Python installed into your system, so your plug-in can do anything
any other Python script can do.
Just to make things easier, Gimp provides an interactive environment where
you can directly try out things: a Python "console" window where you can
type code snippets to see what their effect might be, and a "procedure
browser" to help you find all the calls that your plug-in can make to Gimp,
with descriptions of what they do. These features are not part of some
separate SDK; they're ones that come standard with Gimp.
To sum up, Photoshop has "plug-ins" and "automation", and nothing in-
between: "plug-ins" can do anything, but are restricted by nondisclosure,
because Adobe wants to use them as additional leverage to lock users into
its products. "Automation" is available to all its users, but is restricted
in what it can do.
In Gimp, on the other hand, the "plug-in" concept covers a whole range of
levels of adding enhancements, and there are no artificial boundaries
between the levels--you are free to use what suits.
That's the difference between a mindset that sees customers as revenue
sources to be managed and exploited, and one that views them as people to be
|All times are GMT. The time now is 10:14 AM.|
Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.