My Dream Computer
The State of Modern "Personal" Computing
Every day, when I use my laptop computer, I am both amazed at what I can do and how amazing my 4k display looks, but also I feel sadness, like I have lost something. My personal computer is so complex, I have no hope of understanding fully how it works, from the CPU, to the OS, to the graphics and sound, to the applications. And I feel like I am constantly fighting bit rot, changing interfaces, surveillance, and bloat. My computer is no longer personal, it's more like a modern mainframe capable of amazing things mostly outside my understanding and control.
The very first issue of the People's Computer Company newsletter from October 1972 (when I turned three!) had the following declaration on its cover:
Computers are mostly used against people instead of for people, used to control people instead of to free them. Time to change all that -- we need a ... PEOPLE'S COMPUTER COMPANY
This quote, and the inspiration of the values of education, play, freedom, and exploration that the founders of the People's Computer Company espoused is the inspiration for the People's Computer Club, which hopes to have the same values.
What is a Personal Computer?
To me, a computer is truly personal if it embodies the following values:
- Can reasonably be understood fully by a single person (CPU to applications)
- Hardware that is easily obtainable and with replaceable parts with no hidden functionality or proprietary blobs of driver code
- Open-source system software and a full suite of open source development/creative software
- Self-hosted -- the software that runs on the computer should be able to be developed and built on the computer itself
- Can be a "daily driver" for creative pursuits: art, music, writing, games, and learning. But being able to load Facebook and your bank website are not goals!
- Can be a "daily driver" for communication: email, chat, downloads, blogs, etc.
- NOT expandable... the goal is simplicity, not having to support multiple graphics, audio, and network cards, different RAM, etc.
The Push and the Pull
Personal computing has been pulled forward by the increasing power of hardware. But it has also been pushed by users to do more. And the things I can do creatively on my modern personal computer are incredible. Having real-time ray-tracing at 60 frames a second on an HD display, fully symphonic sound, and self-hosted AI that I can talk to as if they were human are things I only dreamed about when I was a kid. But with that power comes complexity, overwhelm, and a loss of understanding.
It will be easy to succumb to feature creep, to adding "just a little more", or making the computer expandable. What if we use a more powerful CPU? Or add more graphics capability? It will be a delicate dance to balance being able to be a "daily driver" while still being able to be fully understood by a single person. I think it's possible, though, because we have been there.
The Golden Era of Personal Computing
There was a time when a personal computer could be understood by a single person. Many of those computers came with books fully describing both the hardware and the operating system of the computer. Games that were written by one person could fully exploit the graphics, sound, and computing power of the system. Software wasn't created by tens or hundreds of developers, it could be one or two. Software development was self-hosted.
I could be talking about the 8-bit era of the Commodore 64, Atari 800, and Apple II. Those were computers that I grew up with. But when I look back at the era where I was the most creatively productive, and felt both like I could understand the computer fully but also didn't feel limited by it, it wasn't the 8-bit era. Mind you, I programmed a BBS in BASIC for my Commodore 64, wrote games, and used a word processor for writing stories. But the games, programming environment, and the OS were quite constrained.
No, when I think about the era where I understood the computer fully and played games and worked on software that were written by single developers or small teams, but was amazingly creatively productive, it was the era starting with my Amiga and ending with my Pentium PC compatible. And that is the era that My Dream Computer will be targeting.
The Idea of "Permacomputing"
One value that naturally falls out from the values above is the idea of permacomputing. A carpenter from 200 years ago can go into a hardware store and find tools that they would be familiar with. We don't look at hammers and saws and say we need to change them. But with personal computers, we look at open source projects that haven't had commits for a year or more as "old", "stale", "not good", and our personal computers that are more than five years old seem to not run as well -- they are slower, some software no longer works, etc. I run into cases daily where software starts rotting because of the rapid pace of change of not only hardware, but also operating systems and underlying libraries. Fighting bit rot should not be a profession.
My dream computer therefore will have hardware set in stone. Unchanging except if for some reason a particular part can no longer be found. I hope to choose hardware, however, that will have a long shelf life. You can, after all, still buy 6502 processors. And for software, I would like to have the operating system complete enough that it could be placed in ROM, for nearly instant-on capability. And software and libraries, once written, will be celebrated when they reach a point where they don't have to be changed -- that they are feature complete, and bug free. And because both the underlying hardware and OS will be stable as well, this should be possible.
But permacomputing encompasses not just the hardware, but also the software and the data. Software should be stable, taking the best practices and standards we have discovered over the last 50 years of computing and aggressively use them. Data, as much as possible, should not be locked into proprietary formats, but rather be text. UTF-8 should replace ASCII as the standard set of characters used in the text files, as it is the most inclusive, while still being usable, and being backwards-compatible with ASCII. Where binary formats must exist, they should be fully documented with open source creation and extraction tools available.
The Broader Benefits of This Dream Computer
There is no doubt that we're giving up things with this approach. This computer isn't a replacement for a modern smartphone or laptop. But I hope the benefits far outweigh those losses, to the point where my laptop and smartphone are only used when absolutely necessary. Some of the benefits of this dream computer include:
- Less waste. I still use the same hammer I used 30 years ago, and I have tools in my toolbox that came from my Dad, who used them in some cases 50 years ago. But we have five year old laptops getting thrown into e-waste containers.
- Less distraction. Modern computing's power has given us a world of instant communication, instant distraction, and instant dopamine hits. We constantly fight our modern devices to keep us focused and creative. That fight leaves us tired and unproductive, while enriching corporations. I love the idea behind Detroit's own Freewrite, for example.
- Less overwhelm. We become paralyzed when there are too many choices. Constraints actually boost creativity. Limitations free our minds to create. There is a reason for the popularity of platforms like the PICO-8, for example.
- More mastery. There is a lot of focus on limitations as an booster of creativity, but I think what most discussions of constraints and limitations miss is that it allows us to reasonably strive towards personal mastery. My step-grandfather was a masterful wood carver, and both my Mom and Aunt were accomplished pianists. But with no limitations, we never feel accomplished as there is always another thing to learn. Computers today are so complex, we can never master them, and they are so powerful we rarely feel good about our progress, as it seems too insignificant compared to all the capability we have at our fingertips. The first design principle of Smalltalk is Personal Mastery, and stated:
if a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.
I'm really looking forward to eventually having a computer like this to use, and to commune with others who would love a computer like this as well. But most of all, I'm looking forward to taking this journey, and I hope you will join me along the way.