The mix-in revolution
How an ice cream innovator in Somerville influenced Lisp pioneers at the MIT AI Lab—and made a lasting mark on programming.

In the early 1970s, a team of engineers at MIT’s AI Lab launched a revolution in computer programming. Lisp, a family of programming languages the lab had begun developing in the 1950s, had a simple yet mathematically precise core that could be fully explained in just a few pages or half an hour at a blackboard. As dialects of Lisp proliferated in the ’70s, the AI Lab pioneered concepts that are now so fundamental programmers can’t imagine a usable computer language without them. For some of those engineers, Lisp was more than just a way to program; it was a way of life. So by the mid-’70s, Dan Weinreb, Howard Cannon, and their AI Lab colleagues had begun developing Lisp machines—specialized hardware devoted to executing Lisp instructions. As Weinreb would later recall, “We really did think Lisp would change the world the way ’60s-era people thought the world could be changed by ‘peace, love, and joy.’”
Little did they know that a proponent of peace, love, and joy was upending the world of ice cream just a few miles away. But that transformation would have a surprising influence on their work.

Not long after graduating from college in 1967, Steve Herrell, a conscientious objector to the war in Vietnam, arrived in Cambridge to fulfill his alternative assignment as a high school English teacher. It was a culinary hobby, though, that would create his legacy. Living in a group house near Porter Square, Herrell tinkered with the motor on a small-batch commercial ice cream freezer to slow it down, minimizing the amount of air that it churned into the ice cream as it froze. He fed the rich, creamy results to his friends as he perfected his recipes, and in 1973 he opened Steve’s Ice Cream in neighboring Somerville.
Steve’s was no typical ice cream parlor. As the Washington Post described it: “[Herrell] dragged in a player piano that ran on a vacuum cleaner motor, left boxes lying around, painted the place in bright colors, stood around cracking jokes, and started a revolution.” Toscanini’s founder Gus Rancatore, who got his start in the business by cleaning the floors at Steve’s, describes the vibe as “improvised hippie tree house.”
But Herrell’s biggest innovation was blended deep into his ice cream with two spatulas, moments before it was served. Ordinary though it seems today, Herrell was the first to let customers choose bits of candy, cookies, fruits, and more to be mixed with base flavors. Since Oreos were among the first options for what Steve’s called “mix-ins,” Herrell stakes a plausible claim as the inventor of cookies and cream ice cream.
Meanwhile, at the AI Lab Cannon was working on an object-oriented extension to Lisp for Lisp machines. With object-oriented programming, you can define a class, such as “Dog,” that specifies properties and actions common to all its members; then you can create objects of the class Dog representing individual instances of dogs that can perform the actions specified in the class (such as chasing an object of the class Cat). But dogs and cats are both mammals and share some properties common to all mammals, such as giving birth to live offspring. So we can define a class Mammal with those properties and specify that any object of Dog or Cat inherits the properties of Mammal too.

What was novel in Cannon’s work was how it handled multiple inheritance, a fundamental problem of object-oriented programming. In our example, just as dogs and cats are both mammals, they’re also both pets, so they inherit from a class Pet. And say that a property common to all pets is that they don’t give birth at all because they’re required to be spayed. But we have a problem—mammals are supposed to give birth to live offspring! Does an object of class Dog give birth or not? There’s nothing in our definitions that tells us whether Mammal or Pet takes priority, and we can’t neatly “order” them, because not all pets are mammals or vice versa. Cannon’s system was the first to offer a satisfactory resolution. It let programmers combine different classes, such as Mammal and Pet, without necessarily imposing a hierarchy, and it gave programmers a systematic way to specify how conflicting definitions from different classes of the same property should be resolved when creating an object.

This was hard work, of course, and computer engineers love an ice cream break as much as anybody else. Gerry Sussman ’68, PhD ’73, who co-invented a Lisp dialect called Scheme at the AI Lab and later joined the MIT faculty, confirms that he and his colleagues “certainly often went to Steve’s to get ice cream.”
But those trips to Steve’s didn’t just give the engineers a chance to clear their heads and indulge in some of the best ice cream around. They also provided a bit of inspiration. “I remember thinking that like mixing together various flavors, sometimes the combinations [of classes] worked and sometimes they didn’t,” Cannon recalls. “Mix-ins seemed very analogous to starting out with a ‘base’ class and then adding in other behaviors that complemented the base.” With this metaphor in mind, Cannon decided to call his programming language “Flavors.” And the key idea behind nonhierarchical composition of classes? “Mix-ins.” Through Cannon, MIT, and ice cream creativity, Herrell made his mark in the history of programming languages on a scale that most computer scientists can only aspire to.
The two types of mix-ins had strangely similar fates. Cannon, Weinreb, and others went on to found Symbolics to sell Lisp machines for personal and business computing, using the Flavors programming language to create a then-novel display system that let programmers build interfaces for different applications out of a common set of building blocks (mix-ins). The machines never really took off (though Symbolics achieved a claim to fame by registering the first dot-com domain on the internet, on March 15, 1985). Still, aspects of Cannon’s mix-ins were ultimately adopted by many mainstream programming languages. For instance, Java, TypeScript, Scala, and Rust have built-in features for mix-in behavior, and Python and JavaScript emulate it through common programming patterns.
Herrell’s mix-ins were no less influential. Rancatore put it this way in 2009: “Every college town in America soon had a pretty good ‘homemade’ ice cream store. A hundred flowers bloomed and Americans could get a dizzying variety of flavors, complete with mixed-in candy bars, fruits, and nuts. A few years ago Steve’s original ideas became the basis of several boring chains, including Marble Slab and Cold Stone Creamery.”

But Herrell tired of running a business and sold Steve’s (along with the rights to the term “mix-in”) in 1977 for $80,000. He told his workers he was going to raise goats in Western Massachusetts, where he reportedly tuned pianos until the three-year noncompete clause in his sale agreement expired. In 1980, he opened Herrell’s Ice Cream in Northampton, offering “smoosh-ins.” Herrell’s franchises would soon follow, including a now-defunct Allston store that blasted punk rock and created its own logo of an ice cream cone shaped like a skull.
Today, Steve’s no longer exists. But the original Northampton Herrell’s store still serves a steady stream of customers even on a midwinter evening, as befits a New England scoop shop.
Shardul Chiplunkar ’22 did a UROP at CSAIL and now researches programming languages as a graduate student in computer science at EPFL in Switzerland.
Keep Reading
Most Popular
Ethically sourced “spare” human bodies could revolutionize medicine
Human “bodyoids” could reduce animal testing, improve drug development, and alleviate organ shortages.
Everyone in AI is talking about Manus. We put it to the test.
The new general AI agent from China had some system crashes and server overload—but it’s highly intuitive and shows real promise for the future of AI helpers.
Anthropic can now track the bizarre inner workings of a large language model
What the firm found challenges some basic assumptions about how this technology really works.
An ancient man’s remains were hacked apart and kept in a garage
Why archaeologists are increasingly leaving historic sites untouched until we have less destructive technologies for studying them.
Stay connected
Get the latest updates from
MIT Technology Review
Discover special offers, top stories, upcoming events, and more.