Home > Articles > Programming

An Interview with Watts Humphrey, Part 37: Language Trends, the Future, and Advice to Young People

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In this conclusion to the interview, Humphrey discusses why languages are going the wrong way, why really good programming work is a people business , and the most important piece of advice he has to share from his 60 years in the computer business.

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.

Like this article? We recommend

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 Pittsburgh, Noopur Davis, to help me get that part of the program done. It was way too complex.

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 Tampa here. The engineers were all abuzz with the Internet and how it was going to be used. And I was sort of, “How in the world would you use that?” I had no real concept of where it was going to go, in spite of all of my views at IBM and all that sort of thing.

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.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020