Walter Bright is a renowned computer programmer and an expert on compiler technology. In addition to being the first person to create a native C++ compiler, he is the inventor and principal architect of the D programming language.
He joins us on campus tomorrow evening to give a lecture presentation on the benefits of programming in D, a relatively new language that is quickly gaining traction among professional programmers and high-tech companies.
In anticipation of his visit, we reached out to Bright with some questions about his background in programming and his early experiences in writing computer games, including Empire — a popular war and strategy game he developed in the 1970s. The following text has been edited for length and clarity.
DIT: Let’s start with the question you probably get asked all the time. What made you set out to create D?
WB: After building compilers for Pascal, C, C++, and Java, I had a lot of ideas about how programming languages should work. I was tired of being just another programmer complaining about the existing languages and wanted to do something positive. I had the time and everything I needed to make a new language, so I had no excuses.
DIT: Why the need for another programming language?
WB: Probably for the same reason car companies keep coming out with better designs and airframe manufacturers keep designing new airframes. There are new ideas all the time in how programming languages should work, and older ideas that become obsolete or discredited. New ideas tend to be difficult to fit naturally into existing languages, and legacy compatibility prevents one from going too far in adopting new ideas. Eventually, it becomes time to create a new language.
DIT: How would you describe your current involvement in the D programming community?
WB: There are a lot of contributors to the D language and tools. My role, along with Andrei Alexandrescu, is to keep things organized and coordinated and moving towards our community vision for the language. We try to do things by consensus, but when that doesn’t work, it’s my job to be the buck-stops-here guy and make a decision. My role is also to set the tone of the community.
DIT: What are your long-term goals for the language and its user community?
WB: The goals for the language are to have the people who use it be thrilled by how easy it is to get their programs written, how well those programs run, and how bug free they are. We aim to make D the best language in the world at that. Of course, none of that is possible without the D community, and we are united in those goals. Most of the user community works on D as volunteers, meaning they are so enthusiastic about D they’re willing to invest their own valuable time in it. This puts a heavy responsibility on me and Andrei to make sure their efforts are justified.
I learned how to program writing Empire. It’s full of every mistake a programmer makes.”
DIT: What are some of your earliest memories of computers?
WB: My brother received a Digi-Comp I computer as a gift. I was fascinated by it, but I just could not make sense out of the instructions. He later also received a Digi-Comp II, which used marbles to perform binary arithmetic. That I could understand, and I was entranced with how marbles rolling down chutes could add numbers.
My father was in the Air Force, and he once took me to work and brought me into the computer room. The programmers there had programmed the machine to play music using simple tones. I didn’t believe it and accused them of having a tape recorder in the machine. They chuckled at this, took the cover off of it (it was the size of a couple refrigerators), and showed me the electronics boards. I was completely baffled how the machine worked. This was in 1969 or so.
DIT: What was it that drew you into the field of programming?
WB: Initially, it was playing simple computer games in BASIC. I soon tired of that and started writing my own games, which was far, far more fun than playing them. It’s also quite satisfying when other people enjoy playing a game you’ve created.
DIT: What do you remember about your experience working on Empire and the challenges you encountered at the time?
WB: I learned how to program writing Empire. It’s full of every mistake a programmer makes. Many of my friends would look over the code and make suggestions of techniques I could use to make it better, like a table lookup rather than random logic. I also learned object-oriented programming (OOP) from reading the Fortran source code to ADVENT, although I never heard the term OOP until maybe 10 years later.
I can’t play chess without thinking about how to write a program to play chess for me.”
The hardest thing was inventing a computer strategy to play the other side in Empire. I had nothing to guide me, and no game like it existed, so it’s all original. I’d write out the algorithms on paper in a spiral notebook.
DIT: Do you still enjoy playing computer games?
WB: Not exactly. I enjoy writing them, which is like getting to play god. I sometimes play Empire but always wind up redesigning the computer AI in my mind instead of playing the actual game. Sometimes I’ll play a video game for a little while, but I tend to see how the game is programmed rather than entering the ‘zone.’ I can’t play chess without thinking about how to write a program to play chess for me.
Of course, writing a compiler can be much like writing a game — the goal is to generate better code than your competitors!
DIT: From your work on compilers to inventing a new programming language, you’ve tackled some pretty big challenges over the course of your career. Is there anything in computer science that still intimidates you?
WB: I don’t know how to do mathematical proofs of algorithms. I can look at an algorithm and see that it must converge but do not know how to write a formal proof of that.
Mr. Bright will be presenting at 5 p.m. on Friday in the Plato auditorium. His visit is part of an ongoing guest lecture series being hosted by the DigiPen Student Senate.