Reimagining Apple's bauhaus OSJul 12, 2021
Once upon a time, Apple developed an operating system in Lisp for handheld devices. Actually, it developed two of them. I worked on the second one; Matthew Maclaurin named it bauhaus.
How Apple came to develop Lisp OSes for a secret handheld-computer project is an interesting story, but I won’t get into it here. For now, I’m more interested in imagining what it would be like to do it again.
I worked harder on bauhaus than on any project before or since. For a couple of years, I was putting in about a hundred hours a week. To be fair, I wasn’t the only one doing that. A bunch of people were trying really hard to make Newton a thing. Also, to be fair, nobody told me I had to work so hard. It was all me, driving myself hard, trying to make something happen.
It didn’t work out in the end. bauhaus didn’t take the world by storm, and neither did the slightly more-mainstream OS that Apple eventually shipped for the device. Our product design did not hit the sweet spot.
Still, bauhaus remains one of the most educational and inspiring things I’ve ever been involved with. We had pretty much a clean slate to imagine whatever computing environment we liked, and great tools to use in building it. Our work didn’t produce a successful product, but it did produce something really interesting–so interesting that every so often I think about what it would be like to work on something like that again.
I was always a bit of an OS geek. I arrived at Apple with a curiosity about operating systems and the design of user interfaces. I took advantage of Apple’s software library and its competitive intelligence lab to fool with a wide variety of different machines and systems. Operating-system design and UI design seemed like a wide-open canvas for experimentation to me.
I messed with the Xerox Alto and Star and Medley. I wangled a couple of Symbolics Lisp Machines for my office at Apple. I monkeyed with a zillion flavors of Linux and Oberon and Plan 9 and Inferno and BeOS and Nextstep and NeWS and who knows what-all else.
Joining Newton and working on bauhaus is where I got to try building it for myself, for real. I found that I liked it very much.
I didn’t lose my taste for experimenting with OSes and UIs after bauhaus was canceled. I just didn’t have a day job building experimental OSes anymore. I still installed and used weird oddball OSes and tried to think about alternative approaches to building working environments for computer users.
And once in a while, I imagine building something like it again, this time on my own dime, with freely-available tools and the perspective of a few more decades of software development.
Probably approximately nobody but me would be interested in such a thing, but sometimes that’s enough. I’ve built various things at various times that nobody else cared about. Occasionally other people care about them after I got them built.
So what would a new system inspired by the same kind of ideas as bauhaus look like?
Like bauhaus, I’d lean on a C kernel. I’d have a great advantage, though: instead of a homegrown experimental kernel never used or tested by anyone else, I could use Linux.
Like bauhaus, I’d also rely on some existing graphics foundation. Unlike bauhaus, I wouldn’t have to write it from scratch. There’s already a rich array of graphics components that work with Linux; I’d just have to decide which to adopt.
Like bauhaus, I’d want to build the userland in Lisp. Unlike bauhaus, I’d have no need to design a special dialect of Lisp to deliver into a constrained hardware environment. Nowadays I can run sbcl on cheap Linux-capable hardware and have ample room for pretty much anything I want to do.
So with the Linux kernel, some suitable graphics stack, and a good free Common Lisp compiler, the world’s pretty much my oyster. I can do what I like. I can make a Lisp userland with a different approach to application software and storage and event handling and all the other delicious alternatives that we experimented with in the Newton group. I don’t have to do anything the way we did it before. I can try out other ideas that I’ve seen or thought of since those days.
Maybe. Maybe not. I keep thinking about it. It’s tempting to consider. bauhaus is one of the best things I’ve ever worked on, in a variety of ways. Maybe if I could make something in the same spirit, but make it free and open source, it could be even better and more interesting.
On the other hand, it’s not like I have a shortage of things to work on already. It seems like every year for the past decade I’ve identified something to stop doing. Perhaps it’s because I don’t have as much energy as I did thirty years ago. Perhaps it’s because nowadays I tend to want to take more time and care with the things I do choose to work on.
I dunno. Maybe I’ll stick sbcl and a Linux kernel in a VM and see what happens.