An Interview with Watts Humphrey, Part 37: Language Trends, the Future, and Advice to Young People
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.
Language Trends
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.
The Future
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.
What’s Next
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.