« Reading List: Rubicon | Main | Reading List: Thank You for Smoking »
Sunday, October 14, 2007
Forty Years of Programming
I can't document the precise date, and the program is lost in the mists of time, but as best as I can recall, it was about forty years ago this week that I punched my first computer program onto cards and fed it into the card reader of the Case UNIVAC 1107. The program, whose purpose I have forgotten, was written in FORTRAN, which I had imbibed in one huge gulp from Daniel McCracken's book. They say that, out there for everybody, there's a book that will change your life if you're lucky enough to find it. This was the one for me, and I found it in the fall of 1967. Case Institute of Technology had a fantastically wise and prescient policy for undergraduate access to their computer facilities at the time: any student could sign up for an account which would provide up to one minute of computer time per job, with any number of jobs per day. Student job priority was below all other work, but turn-around was generally within five or ten minutes, with students feeding in their own cards and tearing their own output off the line printer. Young'uns who've grown up with gigahertz processors and gigabyte storage may find it difficult to imagine the impact of this upon larval proto-nerds who, just a decade after Sputnik, found themselves able to command a multi-million dollar machine occupying most of the first floor of a building, for whatever purpose popped into their minds, at least for a minute at a time! It was like suddenly finding yourself on that great space wheel in 2001, which wouldn't even reach the movie screen until the next year. In the Bronze Age of computing, intellectuals tended to look down upon computer programming as a “vocational skill”. I remember one of my high school teachers likening a summer course in programming to scholars in the Great Depression learning to drive bulldozers in order to to hedge their career prospects—far better to be an aerospace engineer and design the Mars exploration vessels of the mid-1970s and the colony ships of the eighties and nineties…sigh. What particularly attracted me to computing was that it was one of the few remaining areas of technology where an individual could create a complete product entirely on their own, limited only by knowledge, talent, and willingness to exert the effort required to get the job done. With the Apollo-era consensus that the future belonged to huge teams of interchangeable-part engineer modules, this was singularly refreshing. Further, while computers were hideously expensive (although Moore's Law soon took care of that), the computer was all you needed to play the software game: you could create a complete product without the multiple disparate skills required to field something tangible. To me, software was pure reason without the critique. Before the end of 1967, I'd pretty much decided that's how I wanted to spend my professional life. Worked for me. I've decided to use this anniversary as an excuse to list the principal platforms on which I've developed software over the decades.Years | Computer | Operating System | Language(s) |
---|---|---|---|
1967–1968 | UNIVAC 1107 | Exec III | FORTRAN, ALGOL, Assembler |
1968–1973 | UNIVAC 1108 | Exec IV, Exec-8 | Assembler |
1974–1975 | UNIVAC 1110 | Exec-8 | Assembler |
1976–1977 | Interdata 7/16 | Real-time Kernel* | Cross-assembler* |
1977–1982 | Marinchip 9900* | MDEX*, NOS/MT* | Assembler*, Pascal |
1982–1983 | 8080/8085/Z-80 | CP/M | PL/I-80 |
1983–1985 | 8088/8086/80286 | CP/M-86, MS-DOS | C |
1985–1989 | Sun 2/160, 3/260 (680x0) | SunOS | C |
1990–1994 | Sun SPARCstation | SunOS, Solaris | C |
1994–2001 | SGI Indigo² (MIPS R4400) Intel Pentium | IRIX Windows 3.1/95/2000 | C |
2001–2007 | Intel Pentium | Linux | C, Perl |
Posted at October 14, 2007 01:44