A sizable amount of my working life has been spent processing large quantities of text: generating it, reformatting it, parsing it, displaying it. Over the years, my approach to this sort of thing has evolved…

1990: I will write a program in Commodore BASIC to do the work, but I’ll rewrite the critical routines in 6502 assembler for efficiency. Also, the program will play a song.

1993: This PC clone runs at 40 MHz! Screw efficiency, I’ll write the whole program in GW-BASIC. But I won’t actually finish, because I’ll be too busy playing Wing Commander.

1996: I will build an inferential KR system (in Lisp, natch) that will inductively determine the best method for processing these files. It will take three days to run on a NeXT cube, but it will get the job done and explain every step of its reasoning. It will then figure out where that pesky Wumpus has been hiding before going insane and throwing Frank out the airlock.

1998: I will write a code generator (using only C preprocessor directives) that produces programs to process each text file. Then I will give this generator to an army of untrained coders who will use it without actually knowing what it does. We will then spend eight weeks testing the system before actually processing any text, but we’ll document all our procedures so that we can get our CMM Level 2 certification.

2001: I will build an N-tier Web Service framework that encodes the text to be processed within XML-RPC messages. These requests will be routed through a central hub and dispatched to a cluster of servers; the responses will be reassembled within the hub and sent back to my workstation, but the messages will be lost when the jar containing the EJB implementors gets lost by the deployment team. Besides I won’t be able to read the text anyway, because I’ve lost the public key that it’s been encrypted with.

2003: I will pair with another programmer to develop a RESTian application in Python that encourages the community to create my text for me, and gathers all their feedback into a single RSS feed that is then spliced into a templating system that formats the results for display in a blog. But I won’t be able to put it into production until I figure out why these unit tests are failing.

2005: You know what? Screw it. I’m just going to tack together a couple of macros in Vim to get it done.