What I Worked on (2021)

oumua_don171 pts0 comments

What I Worked On -->

February 2021

Before college the two main things I worked on, outside of school,<br>were writing and programming. I didn't write essays. I wrote what<br>beginning writers were supposed to write then, and probably still<br>are: short stories. My stories were awful. They had hardly any plot,<br>just characters with strong feelings, which I imagined made them<br>deep.

The first programs I tried writing were on the IBM 1401 that our<br>school district used for what was then called "data processing."<br>This was in 9th grade, so I was 13 or 14. The school district's<br>1401 happened to be in the basement of our junior high school, and<br>my friend Rich Draves and I got permission to use it. It was like<br>a mini Bond villain's lair down there, with all these alien-looking<br>machines � CPU, disk drives, printer, card reader � sitting up<br>on a raised floor under bright fluorescent lights.

The language we used was an early version of Fortran. You had to<br>type programs on punch cards, then stack them in the card reader<br>and press a button to load the program into memory and run it. The<br>result would ordinarily be to print something on the spectacularly<br>loud printer.

I was puzzled by the 1401. I couldn't figure out what to do with<br>it. And in retrospect there's not much I could have done with it.<br>The only form of input to programs was data stored on punched cards,<br>and I didn't have any data stored on punched cards. The only other<br>option was to do things that didn't rely on any input, like calculate<br>approximations of pi, but I didn't know enough math to do anything<br>interesting of that type. So I'm not surprised I can't remember any<br>programs I wrote, because they can't have done much. My clearest<br>memory is of the moment I learned it was possible for programs not<br>to terminate, when one of mine didn't. On a machine without<br>time-sharing, this was a social as well as a technical error, as<br>the data center manager's expression made clear.

With microcomputers, everything changed. Now you could have a<br>computer sitting right in front of you, on a desk, that could respond<br>to your keystrokes as it was running instead of just churning through<br>a stack of punch cards and then stopping.<br>[1]

The first of my friends to get a microcomputer built it himself.<br>It was sold as a kit by Heathkit. I remember vividly how impressed<br>and envious I felt watching him sitting in front of it, typing<br>programs right into the computer.

Computers were expensive in those days and it took me years of<br>nagging before I convinced my father to buy one, a TRS-80, in about<br>1980. The gold standard then was the Apple II, but a TRS-80 was<br>good enough. This was when I really started programming. I wrote<br>simple games, a program to predict how high my model rockets would<br>fly, and a word processor that my father used to write at least one<br>book. There was only room in memory for about 2 pages of text, so<br>he'd write 2 pages at a time and then print them out, but it was a<br>lot better than a typewriter.

Though I liked programming, I didn't plan to study it in college.<br>In college I was going to study philosophy, which sounded much more<br>powerful. It seemed, to my naive high school self, to be the study<br>of the ultimate truths, compared to which the things studied in<br>other fields would be mere domain knowledge. What I discovered when<br>I got to college was that the other fields took up so much of the<br>space of ideas that there wasn't much left for these supposed<br>ultimate truths. All that seemed left for philosophy were edge cases<br>that people in other fields felt could safely be ignored.

I couldn't have put this into words when I was 18. All I knew at<br>the time was that I kept taking philosophy courses and they kept<br>being boring. So I decided to switch to AI.

AI was in the air in the mid 1980s, but there were two things<br>especially that made me want to work on it: a novel by Heinlein<br>called The Moon is a Harsh Mistress, which featured an intelligent<br>computer called Mike, and a PBS documentary that showed Terry<br>Winograd using SHRDLU. I haven't tried rereading The Moon is a Harsh<br>Mistress, so I don't know how well it has aged, but when I read it<br>I was drawn entirely into its world. It seemed only a matter of<br>time before we'd have Mike, and when I saw Winograd using SHRDLU,<br>it seemed like that time would be a few years at most. All you had<br>to do was teach SHRDLU more words.

There weren't any classes in AI at Cornell then, not even graduate<br>classes, so I started trying to teach myself. Which meant learning<br>Lisp, since in those days Lisp was regarded as the language of AI.<br>The commonly used programming languages then were pretty primitive,<br>and programmers' ideas correspondingly so. The default language at<br>Cornell was a Pascal-like language called PL/I, and the situation<br>was similar elsewhere. Learning Lisp expanded my concept of a program<br>so fast that it was years before I started to have a sense of where<br>the new limits were. This was more like it; this was what I had<br>expected college to do....

didn programs college school like time

Related Articles