(11/30/20) a brief history of the interactive web

the purpose of the web was immersive self-education

Happy Monday everyone,

I love studying history. Not the history of wars and current events. Rather, I love the history of ideas, tools, and remarkable people.

Reading Mircea Eliade’s A History of Religious Ideas, I get a sense that I am part of a long lineage of mystical cavemen pondering the nature of existence.

Reading Tracy Kidder’s The Soul of a New Machine, I am similarly transported, this time sitting alongside the pioneers of computing exploring the edges of what it means to be human.

It is easy to forget to study history. We forget the larger goals and purpose of the movements that have swept us up.

So today, I’m going to do my best to briefly tell the history of the interactive Web. It’s a wee bit technical, but I hope the remarkable story underneath shines through.

I. Imagining a HyperMedia

This story begins in 1960 with Ted Nelson.

A self-described "tinpot Da Vinci" and "weirdo who thinks he's a titan," Nelson embarked on a journey to organize the vision of his overflowing mind. As a second-year graduate student, he planted the seed for what would become Project Xanadu.

Nelson wanted to build a machine-language program that would store, retrieve, change, and edit his manuscripts and notes. Such a program would dismantle the existing education system.

Nelson believed that computers would not only assist with the education process, but also dispense with the idea of one-way instruction.

Instead, the student would immerse himself in a self-directed sequence of lessons, a path that could branch off infinitely.

Over the course of several decades, Xanadu morphed from a grad student's project into a niche cultural phenomenon. It is now known as the first hypertext project, laying down the foundations and inspiration for the Internet and the multimedia nature of the browser.  

Nelson articulated his vision in his 1974 book Computer Lib / Dream Machines:

RESPONSIVE COMPUTER DISPLAY SYSTEMS
CAN, SHOULD AND WILL
RESTRUCTURE AND LIGHT UP
THE MENTAL LIFE OF MANKIND.

Nelson described a networked computer system that would react to user input. It would be a living breathing graph of documents: text, images, video, animations, comics, and every form of visual media in between. The components of this system could be composed together, pulled apart, and sequenced.

He wasn't the only one with these tantalizing visions. Doug Engelbart, Alan Kay, and many others were dreaming up the future.

Alas, Nelson and his contemporaries were ahead of their time. Xanadu never really took off. He admitted decades later:

"It seemed so simple and clear to me then. It still does. But like many beginning computerists, I mistook a clear view for a short distance."

II. Interactivity & The Rise of the Browser

The following several decades witnessed monumental advances in funding, hardware, operating systems, networking infrastructure and protocols, and production costs.

Computer scientists and artists seemed to operate in deep symbiosis. Output from one intrigued and served as inputs for the output of the other. And what began as a way for academics to share documents with each other became the World Wide Web in the late 1980s and early 1990s.

The big bang moment for the Web came with the release of the Mosaic browser, created by University of Illinois student Marc Andreessen.

While there had been other browsers before it, Mosaic changed the game by inlining images alongside text. Previous browsers dedicated separate windows for images.

Realizing Mosaic's future was tied to its primary funders (the National Center for Supercomputing Applications), Andreessen spun off  to create the Internet's first killer app ー Netscape Navigator aka "Mozilla" aka "Mosaic Killer."

Netscape Navigator exploded and arguably started the first rise of the Internet economy. Within a few months of its initial release in 1994, Netscape Navigator held roughly 75% of the browser market. Which led to nice features in Time Magazine like this:

Andreessen recognized very early on how importance user interactivity was going to be on this new Internet thing. Here's a key excerpt from a message he sent to the Netscape team back in 1994 (emphasis my own):

Michael Leventhal writes:

I believe the growing pains of HTML can only be resolved by evolving to the SGML architectural form concept [...]

Judging from my experiences in talking to real people in the real world, the fastest way to kill WWW will be to go more strongly down the SGML path.

I realize the above isn't an incredibly valuable contribution to the ongoing discussions; I haven't had time to type up my feelings in any detail yet, but at this point I think that dealing with SGML in general is a complete waste of time and that we'd currently be a lot further along if we weren't burdened by the SGML baggage we've inherited and are still carrying.

99.99% of the people I talk to want to put rich documents online, want control over what it looks like, and don't give a damn about semantic markup or distinctions between document structure and appearance AT ALL; the other 0.01% are still grappling with this whole keyboard-monitor-mouse concept.

- Marc

Documents must be rich. Their appearance must be customizable. Everything else should serve those goals.

Realizing the next iteration of Navigator needed to become more dynamic to user input, Netscape brought in Brendan Eich to write a scripting language that would be embedded in the browser.

There was a tight deadline to meet. Some executives thought it would be better to embed Java instead. The stakes were high, as Microsoft was building their own browser to compete with Navigator.

So Eich wrote a language called Mocha in 10 days. It was a mishmash of paradigms: Scheme's functionality, Self's object orientation, and Java's syntax. Months later, version 2 of Navigator launched with its brand-new embedded language, now named JavaScript.

The Web lit up with what began to resemble Nelson's HyperMedia.

III. The Emerging HyperMedia & The Birth of JavaScript

A lot happened between 1995 and now.

Microsoft reverse engineered JavaScript, called it JScript, and released it with their own browser, Internet Explorer. Netscape lost to Microsoft. AOL acquired Netscape. The Netscape Navigator spun off into what eventually became Firefox.

ECMA International began releasing specifications for a language called ECMAScript that standardized JavaScript, JScript, and other dialects.  W3C released the Document Object Model (DOM) spec, which defined an HTML document as a tree-based structure with a standardized API to interact with and manipulate the page.

Apple and Google both launched their own browsers, each bringing with them major advances in browser rendering engines (WebKit) and JavaScript runtimes (V8). Google Chrome ended up become the most widely adopted browser in the world.

Marc Andreessen was right. So were Ted Nelson and Engelbart and Kay and company. The Web needed to be dynamic; users demanded it.

It needed heightened reactivity and responsiveness. The better the browsers got at handling all that dynamic application behavior, the more end users expected and thus the more application developers wanted.

By 2004, all browsers included XMLHTTPRequest libraries in their implementations of JavaScript (err, ECMAScript). These soon evolved into cross-browser standardized AJAX, which permitted reactivity not just within the existing document, but also with remote hosts. Browsers could now talk to other computers.

Browser applications grew more and more asynchronous in their behavior. A page would load with static content; users would click around and engage with the app; the page would change appearance accordingly; the browser would make HTTP requests and rehydrate the page with relevant data.

Whether all this would catch on wasn't a sure thing at the time. Entrepreneur Justin Kan recently wrote that this actually came up as an issue during a Y Combinator funding interview:

But it ultimately became one of the defining features of this new, multimedia, constantly changing, dynamic Web.

JavaScript and the DOM were initially designed to handle pretty simple transformations of HTML content.

But on their own, JavaScript could not meet the demands of increasingly complex web applications. So over the past decade, we’ve seen the rise of UI libraries like jQuery, then Backbone, then React, Vue, Svelte, NextJs … the whole gang.

These tools have made it much easier for programmers to create highly interactive apps. When you use Uber or Airbnb or Facebook or Instagram, your experience is made possible by these advances.

But we’ve gone pretty far into the weeds here… Let’s zoom out.

IV. HyperMedia: Back to the Future

What's important to remember is that this entire ecosystem explosion serves Ted Nelson and friends' vision for the future.

They wanted a responsive web that lets us manipulate it to augment our minds, to self-educate, and to free ourselves from the shackles of rigid, dogmatic institutions. Or, at the very least, build some really cool shit.

Socially and technologically, we are at a very interesting inflection point. Many of the tools that Nelson & co imagined decades ago are becoming full-fledged realities.

Zoom allows you to connect real-time with people all over the world via video.

Slack allows you to message your peers and collaborate irrespective of location.

Roam Research allows you to jot down your ideas and easily connect them with your ideas and the ideas of others.

Stripe allows you to accept payments for whatever you wish to sell online.

With these primitives in place, we’re just beginning to scratch the surface of Nelson’s original aim for HyperMedia, which was immersive self-education.

Through this historical perspective, all the recent chaos regarding echo chambers and media polarization becomes a distraction. How do we hack through + tame this wilderness and get back to the original vision?

Interesting times we are living in.


Ammar