Hacker News new | ask | show | jobs
by fat0wl 4166 days ago
i understand your point about history but disagree with your conclusion...

at this point its not like Adobe would have to re-architect the system cuz im sure when you click & use a tool it is not going "uhhh photoshop system, man, could you like look into this screen & blur stuff" it is calling a well-defined method with an x/y param. They just need to alias those methods from a simple command shell

2 comments

Photoshop does have a Javascript scripting system and IDE (ExtendScript Toolkit) that exposes many of its features.

Unfortunately its pretty slow and clunky, and it doesn't let you draw programmatically or anything like that.

I used it to create a texture/sprite atlas maker for game development[1], and to do batch image composition for animation frames in my last game project[2].

I tried to use it to create animated image processing effects, but I ended up having to use Processing, after reimplementing a bunch of Photoshop features in Java.

[1] http://richardjdare.com/blog/2012/11/atlasmaker-0-7-make-tex... [2] http://richardjdare.com/blog/2013/03/toxin-advanced-sprite-t...

Alan Kay talks about a text justification bug in MicroSoft Word that's been around for 30 years. [1] PhotoShop is many many millions of lines of code, making an API that covers all of it is unlikely, and at best it is practical to make some subset of its procedures available from a command line.

In contrast, an AutoCad drawing is serializable to a text file of AutoCad commands.

At the core of the software architecture, it's analogous to REST versus SOAP soaked in kerosene with three decades of software evolution piled on top. Nobody loves AutoCad's DXF with deep abiding passion, but nobody would take "DXF is not my favorite file format" [2] rants in the source code seriously.

The point from AutoCad's <Point:> command is the same point that everything else is built on. It's bottom up. So in the end, a full blown command language for Photoshop would need a <Pixel:> command. And everything else, all the way up, would need to rely on calls to <:Pixel>. That's the level of granularity required to implement a command API like AutoCad's.

That's the joy of AutoCad's command line. It's programming with a REPL. Photoshop doesn't have one at its core.

[1]: https://www.youtube.com/watch?v=ubaX1Smg6pY&=

[2]: https://code.google.com/p/xee/source/browse/XeePhotoshopLoad...