I heard this idea years ago (and naturally, can’t remember where), but it’s been in my mind ever since: programming is performance art. I’m not talking about the act of programming per se (although that could also be considered a performance), but that the result of programming is performance art.
Chances are, the things you and I program today won’t exist as programs in even just a few years. OS APIs, platforms, dev tools, even hardware, all continuously change, so much so that today’s apps will soon enough start to rot. It’s hard to use a piece of software unchanged for more than 5 years; more than 10 is almost impossible.
Software is not a medium that preserves itself. Old software is best preserved in writing, pictures, and movies (media whose own digital formats are still subject to rot, but it seems at least less so), but rarely can you directly execute the software itself. You can watch a video of Doug Engelbart’s oNLine System but you can’t play with the software itself (thankfully you can play with a Xerox PARC Smalltalk system, though).
The main way to prevent software from rotting, it seems, is to maintain it: update it so that it continues to work as the platforms supporting them change underneath. In this sense, though, it’s not the same software you started with, as it’s continuously changing. You can’t stand in the same river twice, they say.
It seems this is the way software is meant to be: a thing that exists, for a time. Software is not a book or a painting, software is a Broadway matinée or a parade. It may happen more than once, it may go by the same name, but every time it’s different.