Hacker News new | past | comments | ask | show | jobs | submit login

I'm not sure I agree with you about Photoshop. Perhaps (probably) there are photoshop macros or pipelines that are closer to programming, but most people use Photoshop purely in an interactive mode. They enter commands directly, and the logic stays in the users' heads, not in the computer.

Photoshop is more like a REPL tied to an image-processing library than it is a programming language.




A Photoshop "program" would consist of the composition of image layers, adjustment layers, blend modes, styles, masks, text blocks, shapes, paths, and so on. You "run the program" when exporting to a bitmap format.

It probably doesn't help to think about it that way when using Photoshop, but it might be a useful mental model for developing Photoshop, or as an example of how a general visual programming language UI might work. Importantly, Photoshop does not give you a bunch of little boxes with arrows crisscrossing everywhere like all the clumsy and disappointing visual programming experiments I've seen.

Maybe "visual programming" is like "AI". Whenever you make something that actually works, it goes by some other name.


Sometimes the boxes-and-lines metaphor for creative design is what you want... professional video products work like this:

https://www.blackmagicdesign.com/ca/products/fusion

It's like After Effects meets Simulink.


Maybe. But by that standard, using a Xerox machine is programming because you can layer some pieces of paper and transparencies together and then copy it onto an image on a single sheet.

I think to be programming, there has to be some kind "logic" (conditionals, mathematical functions, loops, etc.) embedded in the structure (cf. https://en.wikipedia.org/wiki/Jacquard_loom) and I'm not sure Photoshop qualifies.


To me, the defining feature is automation. A "programmable" system is one where smaller actions can be composed into larger ones and saved for invocation later (by name, in response to some event, etc). I don't know much about photoshop, but judging from what people have said, it seems to meet this definition.

I will concede that "programming," in the sense of "I've been programming for the last couple hours" or "He isn't very good at programming" implies the use of a Turing complete language. Photoshop would probably fail here, along with more programmer-y things like writing html.


I have read elsewhere that programming is giving the computer instructions. So clicking the close button on a window or typing into a word processor is technically programming (although it is not coding). My search-fu was unable to find that though.


I don't think I would consider the arrangement of paper to be a program because it doesn't change the way the machine itself operates (though perhaps one could argue it does at the level of photons and toner molecules--or that a computer just blindly "goes through the motions" with its inputs as much as a copier does with its paper input). But inputting the number of copies, darkness, collation, etc. surely counts as programming in the familiar sense.


Re: pipelines, you can feed external data into a Photoshop doc [1]

[1]: https://helpx.adobe.com/photoshop/using/creating-data-driven...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: