Bill Gates
Bill Gates rose to fame in the 1980s and remains an important figure in the world today as a philanthropic leader, an author and thinker, and as a technologist. His list of accomplishments and contributions is long.
With the publication of his recent memoir, Source Code, I heard him interviewed on some podcasts. When asked about AI and its impact, I recall him posing the question, “What happens in society when intelligence becomes free?” Gates sees the rise of AI as part of the same arc that turned mainframe corporate computers into personal tools. "What we're doing now [in artificial intelligence] is kind of an extension of the digital revolution.”
You can find the seeds of these ideas and his approach to design and coding in the interview I did in 1986 with Bill for Programmers at Work. At the time, I worked at Microsoft and Bill Gates and a few others helped me draw up the list of who I might talk with for the book. Microsoft was small in 1985, with 160 programmers on staff and just 800 or so total employees. There were plenty of revolutionary ideas being discussed in the hallways and pursued back then; but none of us could foresee where it would all lead or when it would come to fruition. AI was a hot topic in 1985 yet it took many decades to really manifest.
Excerpts from the 1985 Interview in the Book
“As chief executive officer of Microsoft, William H. (Bill) Gates is considered one of the driving forces behind today’s personal computing and office automation industry. Gates started his career in computer software at a young age. Both Gates and Microsoft co-founder, Paul Allen, worked as programming consultants while attending high school in Seattle, Washington. In 1974, Gates, then an undergraduate at Harvard University, worked with Allen to develop a BASIC programming language for the first commercial microcomputer, the MITS Altair. After the successful completion of this project, the two formed Microsoft to develop and market software for the emerging microcomputer marketplace.
Microsoft has set standards for the software industry in languages, operating systems, and application software. Gates has provided the vision for the company’s new product ideas and technologies. He also provides hands-on guidance to the technology groups that develop new products, devoting his time to reviewing and refining the software that Microsoft sells.
Gates is a native of the Seattle, Washington, area and resides there today. He was born in 1955.”
“INTERVIEWER: What do you think is in store for software? Are we just going to keep doing another great word processor or another great spreadsheet? Or will computers branch out into areas we don’t even dream of today?
GATES: We’re just moving down the spectrum of more and more thinking on the part of the computer. I’ve coined the term “softer software.” That refers to a program that molds itself to the user’s needs and the user’s interests over time. There are going to be more great word processors and spreadsheets, and we’ll use networking and graphics and new architectures. And there’ll be massive storage with compact disks (CDs), where you can store encyclopedias. What’s going to really be different is rule-based programming. It’s different, because instead of just writing the program and saying: “If this happens, do this, and if this happens, do this,” which is the way programs work now, you’ll write rules, and then you have this little reasoning engine that looks at the current set of facts and the rules. Then it tries to derive new facts and act appropriately. For example, the program might have rules about gravity, and if something falls off the table, the program knows that if it’s glass, it might break. So the program generates results in a very non-obvious fashion, compared to normal-type programming. This is the technique on which so-called expert systems are built[…]
INTERVIEWER: What do you consider your greatest achievement ever in programming?
GATES: I’d have to say BASIC for the 8080, because of the effect it’s had, and because of how appropriate it was at the time, and because we managed to get it so small. It was the original program we wrote when we decided to start Microsoft. Three of us knew that original program by heart. We got a chance to completely rewrite it one summer down in Albuquerque, and I thought we could save a few bytes and tighten things up. We just tuned the program very, very carefully, and ended up with a 4K BASIC interpreter. When you know a program that well, you feel that nobody can look at the code and say, “There’s a better way to do this.” That feeling’s really nice, and the fact that the program was used on a lot of machines makes it an exciting program to have written.
INTERVIEWER: When you were writing BASIC, did you have any idea it would be as successful as it was?
GATES: No, No way. …No great programmer is sitting there saying, “I’m going to make a bunch of money,” or “I’m going to sell a hundred thousand copies.” Because that kind of thought gives you no guidance about the problems. A great programmer is thinking: Should I rewrite this whole subroutine so that four people, instead of three, could call it? Should I make this program 10 percent faster? Should I really think through what the common case in here is so I know how to order this check? If you’re a great programmer, you make all the routines depend on each other, so little mistakes can really hurt you. That’s why you have to have such fine judgment, and be willing to back up and change things.
Before I sit down to code something, most of the instructions have already run through my head. It’s not all laid out perfectly, and I do find myself making changes, but all the good ideas have occurred to me before I actually write the program. And if there is a bug in the thing, I feel pretty bad, because if there’s one bug, it says your mental simulation is imperfect. And once your mental simulation is imperfect, there might be thousands of bugs in the program. I really hate it when I watch some people program and I don’t see them thinking.”
Interview Excerpt:
Hand written by Gates, this shows his design for the low memory storage layout for BASIC.
Software Notes, handwritten by Bill Gates. As Gates explains "These routines show some pretty Incredible tricks -- really squeezing things to the utmost." You can see more note pages and samples of BASIC Source code in the book’s appendix.