Media loves those romantic, emotionally appealing, stories of someone rediscovering their favourite lost toy or book from their youth. What if that favourite thing was the computer source code of a project you put your all into?
This story could win a geek’s heart. Jordan Mechner, writer of the early graphical computer game* Prince of Persia, gets sent a box by his Dad. In the box is a 5¼” floppy disk containing the original source code, something though he’d lost. A trans-continential flight over a weekend, others’ work on hardware setup to read the disk, ensue – it’s a saga.
Aside from the story itself, some of the technology appeals to me.
I can relate to the appeal of the source code, as I imagine all programmers could. You don’t just see that something worked, but how – the thinking and strategies that went into it. More than that, I once did a little coding in 6502 assembler** (and later in 6508, 8086, etc). Writing in assembler you build up things from a very low level, moving numbers (‘words’) in from RAM into the registers in the CPU, then ask the CPU to perform operations on the values in the registers and push the results back out to RAM. You’ve got this mental imagine of hardware at your mastery in a way that high-level programming languages don’t evoke. Today even work that is at least nominally closer to hardware, say using CUDA to get a graphics processor to parallel execute some task, is abstracted away from this intimate feel of moving individual words around inside the world of a computer.
There’s also his reference to paper backups. I still have mine, in my physical archive. Paper copies of the source codes from my undergraduate days and my Ph.D. thesis work. Although he refers to them as lasting longer than magnetic media, one catch is that the dye used in printing can fade – best to keep them out of the light (as I do). If you’ve got those old heavy cardboard folders that 132-column print-outs can be filed in, they help keep the light off the paper when lying closed on a desk.
Thanks to tu2thepoo for the link to Mechner’s blog!
* I’ve added ‘graphical’ because there were text-only games before the graphical ones – something younger folk might not realise. One in particular I used to play, the text interactive puzzle adventure Zork. These proceeded in interactive story fashion, with the gamer typing in simple English-like instructions to move around, pick up objects, look at them and so on. In fact, the class a head of me in computer science had to write a interactive text game. As far as I know the department decided not to do it again as some students were a little too dedicated to the task. (Our year-long project was to write a text-processor. Later editions of Zork had graphics.)
** Those that have never programmed in assembly language and want to explore, or those that just want a trip down memory lane, might try download the full text of Randell Hyde’s The Art of Assembly Language. (There’s also an on-line HTML version.) It‘s based around 80×86; those looking for the earlier 8-bit languages will want to look around more, e.g. at 6502.org.
Other geek stuff on Code for life: