← Back to context

Comment by Confusion

11 years ago

I would say that Photoshop is a toolbox of predefined tools. If using that is coding, then people are also coding when they choose and use a screwdriver, some sandpaper, a hammer and some glue in succession from their physical toolbox to get a job done. That the operations happen electronically and that they are implemented as complex mathematical transformations of pixels doesn't change that.

Excel isn't much different in my view: most people are only using a very limited set of predefined tools to get a job done. Often badly: it is well known that there are many bugs in important, company critical Excel sheets. Excel seems like coding because it is mostly used to perform the fundamental mathematical operations we all associate with coding. But if that is coding, then so is constructing a Rube-Goldberg machine for a specific task from the parts you happen to have available. A nice exercise in problem solving under constraints. Which certainly has something in common with coding. But that doesn't make it coding.

Using Photoshop is instructing a computer to perform a series of operations, necessarily fairly high level ones, but conceptually not that different from text-based coding. I agree it stretches the definition pretty thin: where's the control flow? Conditionals?, but are those things really foundational characteristics of programming languages or are they simply the equivalent 'predefined tools' that, say, C gives us?

Excel is much closer to traditional programming: it's basically a purely functional language (absent VBA), but instead of a linear description of the program in a text file, you're in effect embedding functional code inside a virtual machine's memory.

EDIT: I suppose an important question about Photoshop is, can you do computation in it?

Well, if you wanted to be absurdly pedantic, you could call instructions in an architecture predefined tools, or protons and electrons.

I don't think it matters if the tools are predefined - what matters is that they can be used together to build a system greater than the sum of it's parts.

  • Yes, and that is exactly what very rarely happens when people use Photoshop or Excel and happens in coding all the time. Which isn't strange, because the former two aren't intended for that, while the latter is.

    I think it can matter a lot whether the tools are predefined, because the exact nature of those predefined tools determines whether they are easily composed into something greater than the sum of its parts. You need iron ore, wood and a forge to construct a different hammer. Of course you can cobble something hammer-like together with the tools in your toolbox at home, but it won't be like the hammer forged afresh from more fundamental parts better suited for that purpose.