WRITTEN BY: NATE CALDWELL
Encapsulating the scope of Professor Gerald Sussman’s work is a daunting task. Prof. Sussman has left an indelible mark on both computer science and MIT. His involvement in artificial intelligence research at MIT started in 1964, and his work since then has spanned telescope design to mathematics. In the most recent CSAIL Alliances podcast, he outlined the importance of a breadth of research topics, “It’s important for anybody who's going to build stuff that's complicated to be inspired by the problem domains around them. You know, if it weren't for physics, there would be hardly any mathematics” said Sussman.
Prof. Sussman also spoke of the influence biology has on his computer science research, while further elaborating on the important distinction between inspiration and mimicry: “Mimicry is actually a bad idea. You don't want to make an airplane flap its wings like birds. It's very different, but being inspired by the fact that there are birds or bats gives you some insight into what it takes to make something that flies. It is helpful to understand that after about 70 years of programming universal computers we are still beginners. For example, the human genome is only about a Gigabyte (3 billion base pairs, each is 2 bits). But it is the instructions to build a very reliable and complex machine—a human—from a single cell. And it is flexible; with only small changes you get a rabbit rather than a human! We don’t yet know how to program that way.”
With his wealth of experience, Sussman also had thoughts on what industry and academia could learn from each other. “The most important things that industry could learn from academia is that putting more people on a project doesn't make the project run any faster.” Sussman elaborated further, “the normal way people try to insulate themselves from turnover of their employees is by having lots of redundant people, they hire more people than necessary and put them on a project. And what they're doing is they're trying to insulate themselves. They think of the programmers as interchangeable parts that you could lose one and you could put another one in. That’s just not a viable strategy for any creative activity.”
Prof. Sussman has long been concerned with building programming tools that will last. He feels the need to rush products to market can often be shortsighted, and lead to greater problems down the road. He noted how consumers will often use products that are suboptimal simply because that’s what they learned first, hence the rush to put products out. To ensure quality in his work, Sussman employs “additive programming” to reduce brittleness and oversight. The concept is outlined in his book Software Design for Flexibility: How to Avoid Programming Yourself into a Corner: He said, “our goal in this book is to investigate how to construct computational systems so that they can be easily adapted to changing requirements. One should not have to modify a working program. One should be able to add to it to implement new functionality or to adjust old functions for new requirements. We call this “additive programming.” We explore techniques to add functionality to an existing program without breaking it.”
Sussman also noted that bugs can play an important role in developing a lasting system: “Bugs are necessary. They're a consequence of the fundamental problem-solving process of engineering. You want to build some complicated system; you start with an approximate plan, to construct the system combining certain parts. You try it and it doesn't quite work: there is a bug. The next step is to debug the plan. Perhaps it is necessary to adjust the interfaces among the selected parts. If the design had to work from the beginning, you wouldn't be able to make something very complicated. This is not just a problem of engineering: a poet has to work hard to debug a plan for a good poem.”
Prof. Sussman also addressed one of the greatest questions facing computer science researchers wishing to make their programs less brittle, the role of AI. He feels that the answers to what AI has the potential to do are still open ended. He said, “AI is the part of computer science we don't know how to do. That's always what it is.” He notes how in the 1960s there wasn’t consensus as to whether a computer could ever beat a human at chess, a task deemed easy by today’s standards. Sussman drew comparisons between AI and Philosophy, noting that as something becomes better understood it stops being philosophy and becomes science. “As something becomes well understood, it stops being AI,” Sussman continues, “eventually there will be very smart machines, and I’m pleased about that. I’d like machines to be smart.”