3 ms·
When I was making some Photoshop extensions [0], I slowly formed a general idea for how it works under the hood. Initially I was really excited to write some c
by AriaMinaei 8y ago
When I was making some Photoshop extensions [0], I slowly formed a general idea for how it works under the hood.
Initially I was really excited to write some code and give Photoshop some super powers. Especially I wanted to make a panel for automatic layout, and another for generative art.
But in the end I realised that Photoshop is just not designed to be extensible other than in some very specific ways (filters mostly).
I was also convinced that even Adobe probably has trouble putting in new features. This was surprising knowing that most of Photoshop's features don't interact with other features in any way (unlike a word processor or a 3D design suit like Maya). They can even develop the features in silos if they want to. But still, the extension APIs give some strong hints that the whole thing is tangled and unwieldy [1].
I did try to tame the thing [2] but the whole process was so unstable that after a few months of part time work, I just gave up. My conclusion was that if you want to have a design tool with super powers, you can't build it on top of Photoshop (or any of its competitors for that matter).
Anyway, this is where I shamelessly self-plug and say that I decided to start a company to build such a tool myself. Write to me [3] if you would like to learn more ;)
---
[0] This was one popular extension I wrote: http://gelobi.org/griddify http://gelobi.org/griddify
[1] I didn't care enough to document this, but I'm sure there are other extension developers who agree.
[2] https://github.com/AriaMinaei/photoshopjs-com/blob/25c320f8304a29ddddacd9b571c921354b15caf7/src/comInterface/Desc.coffee https://github.com/AriaMinaei/photoshopjs-com/blob/25c320f83...
[3] aria [at] theaterjs.com
- Retric 8y agoVery large projects like Photoshop need to be able to be worked on by mostly independent teams to cut down on communication overhead. How things work under the hood can end up very different from the API and that's a very good thing.
- AriaMinaei 8y ago> indecent teams I take it you meant independent teams? If so, I did acknowledge that. In fact, the whole interaction model in Photoshop allows it to be developed by independent teams that don't need to communicate much (this is at the expense of some major UX opportunities imho). > How things work under the hood can end up very different from the API I was lead to my conclusion despite knowing that.
- dvfjsdhgfv 8y agoGood luck! I had some limited success in extending InDesign, but only in the documented way. The debugging process is a PITA for more complex things though.
- AriaMinaei 8y agoHm, does ID also provide this COM interface? var idMk = charIDToTypeID( "Mk " ); var desc7 = new ActionDescriptor(); var idNw = charIDToTypeID( "Nw " ); ...