Yesterday I was scavenging through some old projects of mine and I stumbled upon a video of a program I made in 2009. Here's the video on Youtube:
At that time I had quit my stable job in aerospace to make a sort of Trailblazer clone, my favourite game on my very first computer, a Commodore 16. By trying to bring the game to the 21st century I thought of adding curves and elevation so I implemented the track as a tessellated NURBS surface which was automatically generated from the control points drawn with a basic 2D editor. At this point the software was still a prototype but it was already usable.
Long story short, I never managed to finish the game as it took me too long and I ran out of money. It was a great learning experience though and after this my respect for indie (game) developers has grown tenfold.
This was all great fun but it's not the point of this post. The point is that I cannot run neither the editor not the game anymore.
I have all source code and assets but since I haven't archived the third-party libraries I was using the program doesn't run. I can probably find the old libraries I was using or adapt my code to the last version of these libraries. I could also archive them together with the project files so I could run it in the future (silly me not having done this before). But how far in the future ? I could save the libraries but how can I be sure that in 30 years the environment required to run the program will still be available ? Will Python still be available ? Will I be able to modify assets in Blender ?
This situation reminds me of an ex-collegue who was also an amateur photographer who decided to go back to analog photography as he wanted his photos to last through time and be visible to his grandchildren and their sons. He doesn't believe that JPEG images will be visible in 30 years. Well, nobody knows. I'm sure though that when a new and improved format will emerge (actually JPEG2000 has been available for a while but nobody seems to care, except for some folks working in satellite image processing) it will be possible to convert existing images to the new format. It will be a painful process and probably non professional users will never do it unless the software they use doesn't do it automatically for them.
If JPEG images will be supplanted, how will our legacy view our photos (assuming they have not been converted to a new format) ? Maybe one could include a standalone JPEG viewer along with the photos, but will the software run in 30 years ? I very much doubt.
I find it particularly disappointing that I won't be able to show my (future) children the software I've done in the past. A piece of music can last forever. Of course the medias (tapes, CDs, digital files) will obsolesce but I doubt music notation will ever fall in disuse. A painting can last hundreds of years, maybe thousands with the current conservation and restoration techniques. Constructions can last thousands of years. Words lasts hundreds or thousands of years.
Even if software is intrinsically eternal since it runs on a physical hardware it cannot last.
Music and words last because they are immediately accessible by our senses while software requires a translation medium (hardware) to interpret it so that we can access it.Can we make software that is directly accessible to our senses without an interpreter which is inevitably condemned to obsolence like modern computers ? Will this require ourselves be the hardware ?
If we were the hardware, we could probably easily pass software to our children. And if we could pass software, will we be able also to transfer knowledge ? Can we store all digital information we produce within ourselves ? Some people apparantly think so.
Biocomputers are getting closer, I wonder if it will be possible one day to have a software that will adapt automatically to the changes in its environment without requiring any human intervention. I guess at that point humans won't be needed anymore...