This interview was provided courtesy of the Computer History Museum. See the entire interview.
We were saddened to hear of the recent passing of Watts on October 28th. Many of us had the privilege of working with him on his books for Addison-Wesley. He will be missed.
Booch: Let’s turn to languages. What’s your take on the state of computer languages? You spoke about computer architectures, but the other side of that’s a software piece. What are your thoughts on it?
Humphrey: I believe languages have been going the wrong way. I think it’s kind of hard to describe, but if you just take a look at, for instance.NET, and you take a look and all of these big systems that are essentially automated, they put an awful lot of capability in them. Have you ever written a program with.NET?
Booch: I have not had the pleasure of doing so.
Humphrey: Well, it’s not easy
to learn, I’ll tell you. I struggled with it. Basically every program you
write, you’re learning from scratch. You’ve got to go in and find out what does
this mean, and what can you find that does this? Remember
I mentioned earlier where you had the FAA program when Amdahl and some people
took 40 percent off the size and running time of some programs? And they did
that because they really had a deep understanding of the language that people
were writing in. My problem is, that kind of deep
understanding, the ability to think creatively in the language in which you’re
working, allows people to do really extraordinary work. When
you get these languages that are so really complex. I mean, to use.NET
you have got to deal with a database system, and I just wasn’t willing to
bother. I mean, I’d go into [Microsoft] NetMeeting and
get one of the ladies up in
My concern is that the language really should be the interface between the programmer and the system, and it should provide the capability for people to use efficiently and accurately, without error, to describe what they want to do with the system. And my concern is the languages today are not designed based on understanding what is efficient for people, what things cause errors. I mean, I don’t know anybody who’s got good data on what are the things that make a program erroneous, and can we do anything with the language to fix that? I mean, there are dangling pointers. Why the heck do we have to screw around with dangling pointers and buffer overflows?
There are lots of issues. Over 50 percent of all of web vulnerabilities are due to buffer overflow. Why do we have those? There’s no earthly reason that any language system would permit you to write programs that have a buffer overflow. So my sense is there are a whole lot of things in really thoughtfully designing a language as a translator between human beings and machines. But we haven’t gotten there. The language ought to be designed in order to understand the error propensities of people, and what are the things that make them have trouble and waste their time, and that cause errors, and that are hard to test? And there are a whole range of things.
What surprises me is the whole thrust on designing languages is how do we make something that’s richer and richer? It’s a technology focus. We’re not thinking about people. So that’s where I think the whole language business is way off-kilter. It’s not thinking about the people that have to write programs and what it will take for them to become truly skillful and to produce error-free work. And I think we can do it, if we really focus on making the languages really convenient for people.
Booch: Why don’t you talk about the rise of all the scripting languages? Perl, PHP, Ruby -- those kinds of things.
Humphrey: Unfortunately, I haven’t used them. I’ve heard that people love them, but I just never had the time to sit down and learn them. I basically taught myself all the languages that I’ve used. I never took a course in a programming language, except the very first one I did at MIT. That’s where I met Barbara. They taught me a very simple assembly language. But on the other hand, I’ve never taken a language course, and I really haven’t had time. So I would have really liked to have learned Perl and some of the others, but I’ve never really had the time to do it. So I really can’t answer that. Does that address some of the issues I’m talking about today?
Booch: Absolutely, yes. That very much does. Perl, PHP, Python, Ruby -- those are all the things where people are programming at the edge of the web, if you view the web as the platform. This is an interview about you. We can talk about my opinions about them once we turn off the recording.
Humphrey: Well, that’s my loss. I’m sorry I’ve never had a chance to fiddle with them, and it’s probably something that I would have done well to do with the PSP, but I never actually did.
Booch: Well, I think I’ve covered all the topics but one, and that’s just having had such a colorful history and having been involved in so many different things. I’m just curious as to how you might recap your experiences and ask questions on what you see that has changed vastly in the years of your career, what’s stayed the same, and what do you view the future in the computing business to be? And then the last question I’d offer is what advice would you give to someone interested in the computing field?
Humphrey: Well, on the “what’s changed and what’s the same” question, that’s all about people. I’ve seen an enormous amount that has, quote, changed. People view it as changed, in terms of languages and the whole structure of our systems and how we design and build things. But quite frankly, it’s the same story that I’ve seen for 50 years. We’re basically trying to work with higher-level constructs -- richer and richer constructs so we can compose our product. We’ve been on that path all along, and that basically comes back to what I’m saying about languages, that I think we’ve been down that path without really looking at all sides of it.
So one, I think we’ve got a whole portion of technology that is, unfortunately, going down a track without thinking about how people will use this stuff. I see, for example, in the whole academic community. I looked at the computer science curriculum, and to a great extent, the software engineering curriculum. There’s very little in there about people. I get a lot of reaction that the most important single thing you can do in producing good programs is to get good people. And I think we somehow view people as once you get them, they’re immutable. People are very flexible. I’ve seen people who weren’t performing very well turn into stars. Absolutely extraordinary. With the right motivation and the right guidance, and frequently you’ve got to push them hard. I’ve taken people and sat them down and said, “Look. You’re either going to start looking for another job, or you’re going to have to start doing the following.”
Most of them shape up, and it’s amazing. We get some really good performers out of people that have those various personal problems and stuff like that. So what I see is an awful lot of that, where our community has gotten so techie, that it really is losing touch with the real problem. The computing problem we all deal with is a human problem. How do we actually take ill-defined problems and reduce them to such a precise format or form so that they can be executed automatically by computers?
So we’ve got to deal with users; we’ve got to deal with our co-workers, and involving the people. This is what’s sort of frustrating to me about the whole computer science community. Academics don’t seem to have any interest in people. They’re all focusing on their techie stuff, and I think it’s quite limited. It can take you just so far. They’ve done a lot. I mean, it’s good stuff. I’m not against the technology improvements. But I think we’ve really got to take a much broader view. So that’s sort of one thing I’ve seen that has not changed. It’s sort of been steady all along, with a view of this field as a highly techie one without really looking at the human interaction parts of it.
And I think that’s why we’re having a lot of trouble getting new people into the field. This comes back to your question about what I’d tell people. I see young ladies, for instance, they don’t want to go to work in a corner and just hack away. And I don’t think they appreciate the degree to which really good programming work is a people business. You’re heavily involved with other teams, with users; you’re negotiating. The techie part of sitting down, writing code and designing is a really small part of the engineer’s job on most TSP teams. There’s an awful lot of negotiation and involvement and help and discussion and that sort of thing. So I think that’s the issue. I think there’s a misunderstanding, and the whole academic community has to much better understand and prepare people for the kind of interactive careers the software business really is.
So that’s where I
think we’ve got to move forward. Certainly an enormous amount has changed. I
must admit, I was embarrassed to say when I first heard and was beginning to
get familiar with the Internet, I remember going to a conference. I was a
keynote speaker. It was a UNISYS conference in
So that was an enormous change, and I was really quite surprised at how it took off, and it was a real eye-opener. I mean, the continuing growth of technology, I don’t think any of us ever visualized the unbelievable development of the technology in this field. It’s continued for as long as I’ve been in the field. That’s damn-near 60 years. It’s just hard to believe. You literally can’t imagine what’s going to happen down the road, and I was in the position trying to imagine the future when I was at IBM on corporate staff.
So I think back to what we were thinking about then, and I was thinking about what is an intelligent workstation? And I said it’s one that runs MVS. My contention was the minimum computer size ought to be a megabyte. Well, I was so far on the conservative side, even though everybody thought I was a radical. It’s kind of amazing. So there’s a lot of excitement ahead, and I don’t see technology slowing down. I see it continuing to grow.
Advice to Young People
When people come into this field, I think computing is probably the most exciting field you can ever get into. It’s an underlying technology to every field we’ve got in science and technology and for just about everything we do in business and the arts. So I think it’s a great place to be. I think increasingly, people in the computing business who are really familiar with it and knowledgeable in it are going to be in a very powerful position for opportunities down the road. But I think that depends on the degree to which they connect that and begin to build people skills in parallel. That’s crucial.
There’s one other thing I would say here. Maybe it’s sort of in closing, and that’s sort of a general piece of advice to people, and that is try to keep yourself out of your decisions. I think I mentioned some of the things I got involved in. By and large, as I’ve looked back in my career, as to the things that I’ve done and the decisions I’ve made and the actions I’ve taken which turned out in retrospect to be mistakes, are almost without exception -- I can’t think of any exception, actually -- decisions I made that at the back of my mind I was worried about what’s in it for me. Am I going to get ahead? Am I going to get visibility? Is somebody going to see me? Will I get that promotion? When that’s in the equation, we tend to make very bad decisions. So trying to make objective decisions is extremely important.
I guess I’d say one other thing, and that is luck is extremely important in this business, but I don’t believe that unprepared people are lucky. I think when you’re prepared and when you know what you’re doing and you’ve got a good foundation, it’s amazing how often luck shows up. You get these breaks. Something happens. So we want to count on good luck, but we need to be prepared for bad luck. My experience has been that when you’re prepared for things to go badly, they usually don’t. So it’s been a marvelous career, and I’ve been very fortunate to be at the right place at the right time for an awful lot of stuff in this business, and it’s been a wonderful 60 years.
Booch: So what are you going to do in the next 60?
Humphrey: As I think I may have mentioned, I’ve got three books on the plate, and I’m having fun with playing the piano. The thing I’m really doing, and what I’m really focusing on, is how can I help our team and the people we’re working with in this industry really begin to recognize and take advantage of what we’ve got here, which is why I’ve got some papers and things I want to write to try to get some of this out there and to get more visibility, or at least more understanding of what the benefits are of what we’re doing. And I think we’ve been able to do a lot of that to date.
I want to put together an article for Harvard Business Review I’ve got planned here. I got a proposal about ready. They’re very hard to get into, so I’m hoping I can get them to be willing to take an article. So I’ll be trying that to see if we can get that in there, because we need to get a lot of this message out in front of executives. What I’m talking about here is basically empowering people to manage themselves. It’s the whole knowledge-working business that I don’t think executives understand. The great difficulty of this -- and it’s a real problem we face -- is that you describe briefly what it is you’re doing. You try to give a two- or three-minute elevator speech to somebody, and their immediate reaction is, “Oh, we do that already.” Just about every executive you talk to, you talk about empowering their people and letting them manage themselves, that’s what executives do. “Oh yeah, we do that.” And the fact that they really don’t is extremely hard to get across.
So getting that out and getting that message understood is a challenge I’ve struggled with, and whether I can actually do it or not is something I’m going to try to work at, but that’s my immediate challenge to try and get that story out. Of course I’ve another challenge. I’m trying to get better at the piano, which I’m enjoying. That’s where we are.
Booch: Very well. So are there any other parting comments, anything we’ve not covered that you’d like to inject into the record?
Humphrey: I can’t think of anything. Barbara? No, she doesn’t have any comments. I would like to close by saying I just so enormously appreciate your participation in this, and you’ve been a great interviewer, and I thoroughly enjoyed our -- I would guess would probably had about 17, 18 hours of interviews.
Booch: I’ll end by saying it’s been a great privilege for me, and thank you for doing this.
This concludes the interview. See the entire interview here.