Charles Simonyi — Microsoft Office Pioneer & 1985 Interview
Open Menu<br>Close Menu
Programmers At Work
Open Menu<br>Close Menu
Charles Simonyi
Charles Simonyi is still actively engaged with the world and continues to push the software envelop. He remains a deep thinker whether about how software is built or the latest venture into space. At Microsoft, he currently serves as a Technical Fellow and has taken his place as a legendary figure in computing, He made his way from Hungary where he was raised and eventually to Seattle. His life has been a great adventure and continues in that vein. Back when I first spoke with him for the book, he led the development teams of Microsoft's first application software, including early versions of Microsoft Office. Later he co-founded Intentional Software, a company focused on his concept of intentional programming which he believes is highly relevant to how developers may approach coding with AI agents.
See the Book: Programmers at Work
Excerpts from the 1985 Interview in the Book
“Almost everywhere in the microcomputer world, Charles Simonyi has made his mark, either by something he has accomplished or by influencing someone with whom he has worked. He’s a modest but spirited fellow, quick to smile and able to comment on just about any topic, computer related or not. During the two times we met with Charles, once over lunch and the other time in his office, the conversations ranged from the attributes of Microsoft Excel, to flying helicopters, to certain facets of modern poetry. His speech is distinguished by a Hungarian accent which has become Charles’ trademark both in speaking and programming. Clad almost daily in a uniform of weathered jeans jacket, shirt, and worn jeans, he retains the appearance of a Berkeley student during the sixties, but his breadth of knowledge, manner, and accomplishments exhibit a wealth of wisdom and experience.”
“SIMONYI: I think the Gier Algol program is still in my mind and influences my programming today. I always ask myself, “If this were part of the Algol compiler, how would they do it? It’s a very, very clever program. One notion that sticks in my mind is how they scanned the source code backwards. It turns out that in some cases, if you do things backwards, problems that previously appeared complex suddenly become very simple…Just by looking at a problem in a new way, what formerly might have been rather difficult to solve becomes easy to solve. The Algol compiler was absolutely full of wonderful tricks.”
Excerpt 1:
“SIMONYI: The Russian machine, for example, looked like a science-fiction computer because each flip-flop [the on-off device that stores one bit of information] in the machine had a little orange, old-fashioned gas discharge light. Hundreds of orange lights flickered behind glass doors and cabinets. The whole life of the machine pulsed right in front of your eyes.
The Danish computer was a beautiful piece of furniture. It was about the size of an antique wardrobe closet. The front of the computer had three teak doors. I once saw an American executive look at it in disbelief because it was paneled in teak. It even had a Danish-modern console. The whole machine had the intriguing smell of teak.
The Berkeley computer was quite large, about twenty feet long, six feet high, and two feet deep. It was hidden in a concrete vault that was painted completely black. The computer was a little like the monolith in the film 2001 A Space Odyssey because of the way it was placed inside the vault with spotlights shining on it.”
Excerpt 2:
“SIMONYI: The first step in programming is imagining. Just making it crystal clear in my mind what is going to happen. In this initial stage, I use paper and pencil. I just doodle, I don’t write code. I might draw a few boxes or a few arrows, but it’s just mostly doodles, because the real picture is in my mind. I like to imagine the structures that are being maintained, the structures that represent the reality I want to code. Once I have the structure fairly firm and clear in my mind, then I write the code. I sit down at my terminal—or with a piece of paper in the old days—and write it. It’s easy. I just write the different transformations, and I know what the results should be. The code for the most part writes itself, but it’s the data structures I maintain that are the key. They come first, and I keep them in my mind throughout the entire process.
INTERVIEWER: Is that the biggest step?
SIMONYI: Absolutely, that is the biggest step: The knowledge of the best algorithms is the science, and the imagining of the structure is the art. The details of algorithms—writing efficient lines of code to implement transformations on those structures—is the trade aspect of programming. Technically, this is called maintaining the invariances in the structures. Writing the code to maintain invariances is a relatively simple progression of craftsmanship, but it requires a lot of care and...