The Dream Machine
The Dream Machine is a Stripe Press books that covers early computing, the creation of the internet, and how computers transitioned from being mechanical devices to the ubiquitous machines that we can find on every desk and in every pocket. It tells the story of JCR Licklider, a man obsessed with human-computer interaction, who helped drive forward the vision for the modern day internet.
Reading the book re-kindled my love for exploration, basic science, and how exciting it is to be "in the center of the action" of a rapidly evolving field. It's truly remarkable how much progress a small group of people can make.
More than anything The Dream Machine is a fantastic reminder of what rapid innovation feels like.
What follows are a handful of notes of interest.
The book starts by covering Licklider's childhood. Similar to the ideas presented in Childhoods of Exceptional People, Lick's father would ask his family a nightly dinner table question: what did you do today that was educational, altruistic, or in some way benefitted someone else.
Giving good answers to this question inspired you to not only recall what you'd done during the day, but to spend more time doing those things during the day. I'm inclined to borrow this question myself!
Lick also had a another commonality with Von Neumann: his parents were constantly bringing artists and unusual people (students, professors, intellectuals) into the home. They promoted a free exchange of ideas, and allowed their children to see what excellence looks like on many different dimensions.
Computers as a physical thing - It's hard to remember that computers originally actual physical devices. Rather than using bits and transistors, you could model the same sorts of inputs and outputs with gears and pneumatic devices. It's no coincidence that the field rapidly advanced after most of the work was able to be done digitally.
Separating programs was a revolutionary idea - instead of having the computer be a 'purpose-built' device for one particular job, the idea to encode programs in memory was revolutionary. It's an idea that we take for granted now, but really was one of the things that opened up computing more broadly in a big way. Allowing programs to be represented digitally was also huge (because they could be transferred).
Goal - operate - check progress loops - the early cognitive science and computer programmers thought of AI as needing a goal, a set of plans to execute on that goal, and a way to check the progress against that goal as you operate. It's funny that this is almost exactly the approach I took with Battlecode at MIT. It's a good idea that continues to live as a model for the way humans operate.
Time-sharing was revolutionary - time-sharing was one of those ideas that was both contentious and revolutionary at the same time. It allowed multiple people to responsively interact with computers. There's an interesting question here: what are you optimizing for: computer time or people time? With batch processing, it is computers that are the expensive resource, you optimize throughput by crafting a program in advance and running it end-to-end upon that batch. But with time-sharing, it's people-time which is expensive. It's much better to have a program that runs slightly slower, but is immediately responsive to new ideas as the user has them
This makes me re-consider other areas... where do we treat human time as valuable? vs not valuable? Where could programs be 'instantly' responsive and give you decent results vs waiting for the 'complete answer'?
Individual computers which rent out their compilers - there was an interesting 'alternative path' where each town would have a central supercomputer, with remote terminals to everyone who lived there. The town could rent out time on their compilers to other towns. It reminds me of crypto / bitcoin, though not really called that by name.
LISP beginnings and bottoms-up vs tops-down - At one point, the dominant programming language of the day was COBOL. COBOL was procedural, you'd write procedures... that would call other procedures... that would call other procedures. It worked in a very 'tops-down' manner. McCarthy's idea that everything should be a function that you can combine. Instead of taking a "tops-down" programming approach where you have to know everything at once, you take a 'bottoms-up' approach, combining from various prices. That's how LISP (and it's millions of parentheses) was born. You start from a small subset of keywords, and build up any number of functions and data-structures from there.
AI was a big deal, even then - everyone had grand aspirations for AI, in the same way that we do today. Lick dreamed of 'human computer symbiosis'. There was a lot of demand for intelligent assistants who you could converse with and would do your bidding... but these goals fell far short of the hope for where we might get to. Instead, the big advances were around computing speed, graphics, and netwroking.
The forking road of computing - Many decisions that we think of as being the foundation of computer science really just made by a couple of guys in a room it's kind of crazy how these arbitrary decisions just became the basis for all of modern computing. Ideas like the mouse, ethernet, and the BIOS could've easily ended up with some other implementation, they just became the default because they were cheap and easy to use!
It's not just programmers and engineers - One of the most striking parts of the book is understanding what amazing results great administrators will unlock. The most effective programs at ARPA were managed because they were able to take really really smart scientists and apply them to some sort of problem and make sure that they could have enough funding and have support enough resources to actually get it done. It sounds simple, but the 'clearing of roadblocks' felt like a superpower of ARPA's.
The Internet rapidly spread ideas in a way that hadn't been seen before - before the ARPANET individuals that MIT wouldn't necessarily know individuals at Stanford, but the fact that the two of them were able to communicate on a daily basis, meant that they could shortly become aware of one another's work. It's almost hard to imagine research in this era, given now that we have arXiv and all of the advantage of email.
Communities ruled the day - There's numerous mentions of demos at various computer conferences. There's Doug Engelbart's, mother of all demos. There's the joint computer conference, the homebrew computing club, and all of these in person meet ups I feel like we moved away from some of those, especially in pandemic, but even from the Macworlds of the 1990s, instead it's cool seeing new communities form around interest areas like AI.
Fueled by passion, not money - There's very little mention of 'comp' or people making one decision or another for money reasons. It's a bit refreshing to have a culture where people just work on whatever they want. I think startups have shifted a lot more towards 'how do I become ultra-wealthy?' rather than 'I really want to tinker on this one particular problem'.
Compounding technology adds to more than the sum of its parts. Innovations in hardware led to newer software led to newer hardware. Ethernet / networks, inputs: mouse, display: graphics. All of it was exploding at once. It's easy to see how these pieces of tech added to one another to be much more than the sum of their parts.
Centralized vs de-centralized. It's sort of remarkable that to put a website up on the internet, you don't need anything other than to buy a domain name and host it somewhere. Contrast that with setting up a business: you need to incorporate, file taxes, the whole lot. It's crazy! The internet could've easily taken a different direction, but instead the folks at ARPA intentionally structured registrars so that they would
Economics ruled the day. There's a few mentions to Moore's law, but it really is striking how much the 'winners' of the computing revolution were: cheap, fast, and easy to configure and install.
It's easy to forget the wonder of having a device in your pocket that can look up any piece of information instantly, communicate with people thousands of miles away, and help you live, plan, and think more effectively.