Tuesday, May 8, 2018

Prof. James Morris: "One Last Lecture"

The most important opportunity in my career was when Prof. Bob Sproull, then at Xerox PARC, suggested that I should join the Andrew Project (paper) then just starting at Carnegie-Mellon and run by Prof. James (Jim) Morris. The two years I spent working with Jim and the incredibly talented team he assembled (James Gosling, Mahadev Satyanarayanan, Nathaniel Borenstein, ...) changed my life.

Jim's final lecture at CMU is full of his trademark insights and humor, covering the five mostly CMU computing pioneers who influenced his career. You should watch the whole hour-long video, but below the fold I have transcribed a few tastes:

Alan Perlis, pioneer of programming languages and winner of the first ACM Turing Award:

  • [13:05] "I said to myself 'if this doofus [Alan Perlis] is a big cheese in computing there can't be that much competition. I mean, especially compared to physics with Einsteins and Newtons. I think this is a good career move. So I decided to become a computer scientist."
  • [16:20] "[Alan Perlis] invented what is still talked about here at Carnegie-Mellon, the reasonable person principle. It basically says 'there are so many situations, we can't have rules to cover every situation, so everybody, faculty and students, should do what they think is reasonable and we'll worry about the consequences later'. And its worked out quite well, because if you start making rules with computer guys, good luck! They going to figure out ways around the rules anyway."
  • [20:39] "Alan [Perlis] was unique as a computer scientist. He understood that programming was where the action was. All the other pioneers of computer science were sort of applying their existing skills to computers, ... they were things like digital engineers, and mathematicians, and psychologists ... Perlis decided that software, which was a completely new thing, was a world-transforming technology. He once said to a group of people "you guys are talking like a bunch of mountaineers trying to find out the most efficient way to climb Mt. Everest. But what we really need is a way to transport thousands of people to the top of hundreds of mountains every day. So that's why he invented and worked on programming languages, because that actually gave access to many people to computers rather than just a priesthood of specialists."

Bob Taylor, founder of Xerox PARC's Computer Science Lab:

  • [26:30] "[Bob Taylor] insisted that, if you were arguing with somebody, you had to give a comprehensive description of what they were thinking and why they believed what they believed. If you couldn't do that you weren't allowed to argue with them."
  • [27:42] "Xerox arranged to spread [Altos] around. They gave systems, a bunch of the computers, print servers, and file servers and Ethernets. They gave them to MIT, Stanford and Carnegie-Mellon. ... True to form, MIT seemed to ignore them, Stanford commercialized them and turned them into a company called Sun Microsystems, and CMU people just loved playing with them and did lots of interesting experiments on them and sort of began to say we'd like a system like that too."
  • [29:30] "He received a couple of awards. The Institute of Electrical and Electronic Engineers Von Neumann Award was given to him, as well as the Presidential Medal of Freedom. Both of these, he had to go to Washington to pick these medals up and he refused to go. In fact, in the case of the Presidential Medal of Freedom he said - well, Bill Clinton, when he's out here visiting his daughter Chelsea at Stanford, he can drop it off at my house."

Allen Newell, pioneer of AI and ACM Turing Award winner:

  • [34:40] "He was a nice guy, but when it came to intellectual matters, he took no prisoners. He wanted things to be right, he wanted to argue about things, he was a real scientist that way, and his attitude has percolated through CMU over the years."
  • [35:23] "Being competitive, the people at CMU and Newell said 'We have to do something really big about making computers ubiquitous on campus. Lets have a personal computer system, sort of like the Alto, but lets have that for the entire campus'. So he went to President Cyert and convinced him to do that, and then he convinced the rest of the University that it was a good idea. Cyert went out and got an incredibly big contract with IBM to underwrite the whole thing. So this [Andrew] project was ready to go."
  • [37:47] "The first problem we had was a huge battle over what the computer should look like that the students were going to use. In the first month I was working Steve Jobs showed up in his hooded sweatshirt with this Macintosh that hasn't even been announced yet - the SuperBowl announcement was coming later that month. So he's showing us, up in a hotel room in downtown Pittsburgh, he's showing us this thing and he's saying 'look, you can edit text, you can draw pictures'. Well, for people who'd used this Alto thing, that was not interesting. It might have impressed some Universities but it ... was obvious to me that this Macintosh was a watered-down Alto in a plastic box. So I asked about networking. Steve said 'Big Brother wants networking. I'm not going to provide any networking'."
  • [38:42] But in any case, Macintoshes were not going to fly on something that was an IBM-funded project. At the same time, IBM of course wanted us to do the IBM PC. ... I had accumulated a huge number of brilliant graduating Ph.D. students from the Computer Science department to work on this project. They all wanted to use the Unix systems on Sun Microsystems boxes. Hoo, boy, this was a quandary. So I went to Alan Newell for some help. He gave me some prescient advice. He said 'The most important thing to get right is the network.' And that turned out to be completely true. The part of the system that we did, called the Andrew File System, which Satya was one of the inventors of, is still running thirty years later, which is amazing for a piece of software. It received a national award for being a great piece of software. That was our network part. The rest of the parts of Andrew are long gone. And the devices have changed from desktop to laptops to smartphones to the Internet of Things. So that was fantastic advice."

Raj Reddy, pioneer of speech recognition and ACM Turing Award winner:

  • [46:25] "Raj's approach seems to be if there's somebody who is really dedicated to a big, important goal, I'm going to support them, no matter how eccentric they are. And believe me, I won't name names, but there have been a number of very eccentric people."
  • [47:55] "Raj became the dean and he was a great one. ... He was a lot like Perlis in the sense that, somebody wanted to do something, it seemed like a good idea and it wasn't obviously going to blow up the University, I used to say 'if its cash-flow positive and doesn't involve felonies, you can do it'."
  • [48:35] "One of the dean's jobs is to extract the maximum amount of money you can out of the central University. Unlike me, who used to walk around with a spreadsheet trying to prove things, Raj was just a master at this. First of all, better than any tax accountant, he could find loopholes in the University's accounting system which would cause more revenue to flow to our college."

Herb Simon, pioneer in human-computer interaction and ACM Turing Award winner:

  • [57:29] "He was kind of suspicious of people on the coasts who chased fame. ... He said 'I was never famous, but most famous people followed everything I did'."
  • [58:50] Jim puts up and reads Simon's Statement on AI vs. Humanity:
    The definition of man's uniqueness has always formed the kernel of his cosmological and ethical systems. With Copernicus and Galileo, he ceased to be the species located at the center of the universe, attended by sun and stars, With Darwin, he ceased to be the species created and specially endowed by God with soul and reason. With Freud, he ceased to be the species whose behavior was - potentially - governable by rational mind. As we begin to produce mechanisms that think and learn, he has ceased to be the species uniquely capable of complex, intelligent manipulation of his environment.

    I am confident that man will, as he has in the past, find a new way of describing his place in the universe - a way that will satisfy his needs for dignity andfor purpose. But it will be a way as different from the present one as was the Copernican from the Ptolemaic.
    Jim goes on to say "This phrase 'needs for dignity and purpose' haunts me today, as Americans face unemployment, opioid addiction and premature death. It makes you wonder about our artificial intelligence. One answer to this is, guys, we have to give up this thing about dignity. Go and change a few diapers, get over this dignity thing. But more seriously, I think its really ironic that here's this University, whose motto is 'My heart is in the work', and people here are working sixty and eighty hours a week in an attempt to eliminate all work."


[1:03:28] "Maybe the most fun time was working on the Andrew Project because there was just a fountain of money to support that thing." Looking back at Jim's recounting of the birth of Andrew illuminates several points:
  • Steve Jobs was both stupid and wrong, and yet perceptive when he said "Big Brother wants networking. I'm not going to provide any networking". Stupid because networking was the whole point of what the customer he wanted to buy Macintosh hardware was trying to do. Wrong because, as he rapidly found out, almost everyone who bought one needed networking, via either AppleTalk or a modem. But perceptive to see that the downside of networking was surveillance.
  • How right we were to insist on using Unix! It placed Andrew squarely in the future mainstream of computing. And how right we were to insist on networking using IP over Ethernet instead of IBM's SNA over Token Ring, or even Xerox's XNS over Ethernet. In hindsight, these decisions look obvious, but at the time they were contentious.
  • How right we were to insist not just on Unix, but on the virtual memory capabilities of Berkeley Unix. We realized that trying to fit a useful, networked software environment into 128KB on a Macintosh or 640KB on a PC would be a futile waste of time; by the time we would have made it all work CPUs would have had virtual memory and much more RAM.
IBM's PR people were desperate to show their project doing something on IBM hardware before they could announce the "Sun killer" PC/RT. So I had to spend perhaps the most frustrating time of my career struggling to get 4.2BSD and the Andrew software running reliably inside an IBM PC box so that they could show it off. The audience, presumably, would not know to ask what was inside the box!

Maxtor XT-1140 Photo: Ian Wilson
CC BY 2.5
It was a total kludge. BSD and Andrew were running on a National Semiconductor 16032 CPU on a board that plugged into the ISA bus and used the PC only as an I/O controller! Also in the box was a 5.25" Maxtor XT-1140 disk drive, with 140MB of storage. It caused some of the reliability problems, both because it ran too hot for the PC's fans, and because it wasn't designed to be used as intensively as BSD's virtual memory system used disk. The 16032 didn't help either. It seemed to have a Heisenbug in its MMU that may have been temperature-related. I spent many hours watching the box run Rog-O-Matic, the best hands-off CPU and VM stress test I could devise at the time, and waiting (never that long) for it to crash.

No comments: