To What Extent Did Marc Andreessen Invent The Internet?

Anyone interested in beta-testing a new client (Windows, Mac, or X versions), please send email to:

[email protected]

Cheers, Marc

— Marc Andreessen, announcing Mosaic (later Netscape) in 1994

In the honor of Marc Andreessen’s birthday last Saturday, we thought it might be nice to take a look at his (surprisingly important) contributions to the Internet. All of these occurred long before he was a venture capitalist. He was a simple engineer working at the NCSA, and then became a founder of Netscape. It turns out his decisions before, and while, running Netscape would define the web.

The Image Tag

... 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 Andreessen, 1993

Marc Andreessen invented the <IMG> tag. Prior to his involvement, if you wanted to include an image in your HTML documents, you linked to it. When the user followed the link, the image would open in the image reader of their choice. This model followed the general theory of ‘Hyperlinks’, the idea that content should be linked together by links.

But Marc Andreessen had users, and they wanted embedded images.

I’d like to propose a new, optional HTML tag:

IMG

Required argument is SRC="url".

This names a bitmap or pixmap file for the browser to attempt to pull over the network and interpret as an image, to be embedded in the text at the point of the tag’s occurrence.

An example is:

<IMG SRC="file://foobar.com/foo/bar/blargh.xbm">

(There is no closing tag; this is just a standalone tag.)

This tag can be embedded in an anchor like anything else; when that happens, it becomes an icon that’s sensitive to activation just like a regular text anchor.

— Marc Andreessen 1993

Another proposal (by Tim Berners-Lee no less) instead specified that external resources should be embedded inside the link:

<a name=fig1 href="fghjkdfghj" REL="EMBED, PRESENT">Figure </a>

That solution certainly aligned better with the theoretical semantics of Hypermedia, but it didn’t solve the problem, and Marc continued with the <img> implementation.

The Creation of the URL Query Format

Marc Andreessen created the URL query format (?a=3&b=2).

Before his involvement, strings similar to query strings were used for searches only. If you included the <ISINDEX> tag on a page, the browser would add a search field to the page. Searches were made by adding the query to the page‘s URL and making a new request:

?dog+shampoo

But there was no way to use it (or to even create) general purpose forms. This is what Andreessen suggested:

How ‘bout neither? Furms [sic] submit queries; why not stick with the current query syntax? That is, ‘url?query’ ... with ‘query’ looking something like:

name=value&name=value&name=value

...with the ‘=’ and ‘&’ characters used as reserved characters (escaped as %xx in any of the name or value

As you can see, this is precisely the query syntax forms use today.

(We happen to have a post on the history of the query format coming out later this week, subscribe at the bottom of the page to be notified when it’s released.)

The Emacs HTML Syntax Highlighting

If you write HTML in the text editor Emacs, your syntax highlighting descends from a mode created by Marc Andreessen himself.

One of his first contributions on the www-talk mailing list is to ask if such a mode existed in 1992:

Anyone written code to construct HTML files in Emacs? I’m hacking something up; let me know if you’re interested....

Marc

You can still find references to his contributions in the Emacs source code today.

Things Netscape Did While He Ran It

SSL

Particularly in the dialup years, an Internet connection was not particularly secure. Anyone who cared to tap into the phone line could read everything you sent and retrieved. This is not a great environment to send web pages credit card numbers or a password.

Under Andreessen’s leadership, Kipp Hickman created SSL while working at Netscape. Andreessen personally announced the release in 1994 on the www-talk mailing list.

Those first SSL releases had some major flaws which would result in Netscape not actually releasing SSL at all until v2.0, and it wasn’t ‘secure’ until version 3.0 released in 1996. There’s no doubt that the ability to communicate securely over the Internet was a critical step to making any sort of ‘Internet business’ possible.

JavaScript

Marc Andreessen wasn’t always all that optimistic about web browsers executing code.

Having browsers execute code is very scary. Servers generally run (or should run -- no reason not to) as userid ‘nobody’, and as such can cause practically no damage to anything. In any case, server writers have much more knowledge about what’s going to happen and what could happen while writing a server than client users do while just randomly clicking hyperlinks. I don’t see as there’s any reason to think that client-side execution is safer.

Andreessen was able to hire Brendan Eich based on a promise of letting him implement Scheme in the browser. As often happens with corporate projects, this was quickly reframed to something a little more approachable. In the words of Eich:

The impetus was the belief on the part of at least Marc Andreessen and myself, along with Bill Joy of Sun, that HTML needed a “scripting language”, a programming language that was easy to use by amateurs and novices, where the code could be written directly in source form as part of the Web page markup. We aimed to provide a "glue language" for the Web designers and part time programmers who were building Web content from components such as images, plugins, and Java applets. We saw Java as the "component language" used by higher-priced programmers, where the glue programmers -- the Web page designers -- would assemble components and automate their interactions using JS.

It took him ten days to build the original interpreter, and about six months to build the DOM.

Marc Andreessen originally named JavaScript... “Mocha”. After Sun agreed to license the ‘Java’ trademark though (Bill Joy, founder of Sun, was a web pioneer and supporter himself), the name was quickly changed to link this new language with the quickly growing Java language. This would prove to be confusing to inexperienced programmers and your parents for decades to come.

The Divide

To my mind, there are two types of people who were involved in the creation of the web. The idealists got things started. People like Douglas Englebart (who envisioned Hyperlinks) and Tim Berners-Lee (who allowed them to exist on the Internet). After crafting the foundation, the idealists strove to create standards with which everyone could move deeper into their vision of the future. They invested their time creating tools which almost no one uses like URNs, RDFs, and the dreaded XHTML.

It was the pragmatists, like Marc Andreessen, who saw the web not as a Hypermedia experiment, but as a way people could build powerful things and solve real problems today. In the process, he created many things which don’t really align with the Hypermedia vision, and which created tremendous frustration for developers and standardizers alike. But it made it possible to do more on the web in a way that actually got adopted.

We don’t really know what the Internet would look like if something like RDF really took off. In my view though, the web never would have existed without the idealists, but you wouldn’t be reading this on the web without the pragmatists.


Bonus Video of Andreessen discussing the future of the web in 1994:

Like this post? Share it with your followers.

Sign up to get our next post delivered to your inbox.

Follow us to get our latest updates.