The First Age of Web Development
Tags: webdev, javascript, frontend
Published: 2021-01-01 21:36:29

---
title: The First Age of Web Development
series: From Classicism to Metamodernism — A Short History of Web Development
published: true
description: This article covers the First Age of Web Development, from the invention of the web in 1990 to the First Browser War
tags: webdev, javascript, frontend
cover_image: https://i.pinimg.com/originals/4f/8b/ed/4f8beddce0eb03808a88045f752e23a0.jpg
---

_Cover image: A sketch of primate origins from Charles Darwin's notebook, dated 21 April 1868_

The First Age of web development spans from the invention of the web in 1990 to the [First Browser War][first-browser-war] and the domination of Microsoft Internet Explorer in 1998.

[first-browser-war]: https://en.wikipedia.org/wiki/Browser_wars#First_Browser_War_(1995%E2%80%932001)

## The Early Days

In the beginning, the Internet was just a bunch of institutional servers with various single-purpose protocols, FTP and Gopher being among the most popular ones. Then on November 12, 1990, Tim Berners-Lee and Robert Cailliau wrote [the proposal that started the Web revolution][www-proposal]. Their vision was articulated around a system of hypermedia pages (HTML) linked together by globally unique identifiers (URI) and communicating with a universal protocol (HTTP). The first web browser, aptly named [WorldWideWeb][www], was both a client and a WYSIWYG editor, following its creators’ vision of hypermedia systems as complete authoring tools. The Web was born. And incredibly enough, 30 years after its inception, not only does it still work with the same design principles, but it managed to retain compatibility all along. The greatest testament of its universality is that [the very first page ever written][www-project] is still online and accessible by today’s web clients.

Milestones:

- [HTTP 0.9][http-0.9] (1991)
- HTML "1.0" (c. 1991)
- [URL][url] (1991-1994)

Emblematic software:

- [NeXTSTEP]
- Unix/X11 systems
- [CERN httpd][httpd]
- [Lynx Browser][lynx]
- [NCSA Mosaic][mosaic]

### The Early Web model

The Early Web is simple and "pure". Web sites are just a bunch of static hypertext pages written in plain HTML. Web servers are mostly filesystem gateways, serving plain HTML files to web clients. Anyone can write a web page with a text editor. Anyone can access web pages from anywhere using either line-mode or graphical "browsers". The web is simple and accessible for both content producers and consumers. No coding skills are required. Life is easy.

Core value: minimalism

Key features:

- Pure hypertext content
- Semantic markup
- Static pages
- Static servers

<!-- References -->

[www-proposal]: https://www.w3.org/Proposal.html
[www-project]: http://info.cern.ch/hypertext/WWW/TheProject.html
[www]: https://en.wikipedia.org/wiki/WorldWideWeb
[http-0.9]: https://tools.ietf.org/html/rfc1945
[url]: https://tools.ietf.org/html/rfc1738
[nextstep]: https://en.wikipedia.org/wiki/NeXTSTEP
[httpd]: https://en.wikipedia.org/wiki/CERN_httpd
[lynx]: https://en.wikipedia.org/wiki/Lynx_(web_browser)
[mosaic]: https://en.wikipedia.org/wiki/Mosaic_(web_browser)

## The Classical Period

The Early Web era was simple but austere. Content was institutional and academic. But soon, people began to create their own content to express their personal interests outside of the workplace. And hence began the era of the Personal Home Pages (an acronym that gave birth to the [PHP] language) that would soon spread across the web and outnumber the institutional pages with new user-created content. Graphical browsers started to take off and began driving the evolution of the web to fulfil the thirst for richer content. Mosaic then Netscape started introducing new HTML elements to display images and bring color to the black-gray-blue pages of the Early Web. It was the age of the "Best viewed with Netscape" banners. In the meantime, Web servers became more complex and started offering the possibility to execute code on the server-side to produce dynamic content.

Milestones:

- [HTTP/1.0][http-1.0] (1995)
- [HTML 2.0][html-2.0] (1995-1997): tables, images, image maps, POST-based form submission with file uploads
- HTTP/1.1 ([1997][http-1.1-1997]-[1999][http-1.1-1999])
- Proprietary extensions for visual markup
- [CGI][cgi] (1997)

Emblematic software:

- [PHP]
- [Apache HTTP Server][apache]
- [Netscape Navigator][netscape-navigator]
- [Geocities]
- [Yahoo!][yahoo]

<!-- References -->

[http-1.0]: https://tools.ietf.org/html/rfc1945
[html-2.0]: https://www.w3.org/MarkUp/html-spec/
[http-1.1-1997]: https://tools.ietf.org/html/rfc2068
[http-1.1-1999]: https://tools.ietf.org/html/rfc2616
[cgi]: https://en.wikipedia.org/wiki/Common_Gateway_Interface
[php]: https://en.wikipedia.org/wiki/Php
[apache]: https://en.wikipedia.org/wiki/Apache_HTTP_Server
[netscape-navigator]: https://en.wikipedia.org/wiki/Netscape_Navigator
[geocities]: https://en.wikipedia.org/wiki/Yahoo!_GeoCities
[yahoo]: https://en.wikipedia.org/wiki/Yahoo!

### The Classical Web model

The Classical Web makes rich content creation accessible. Web pages are written with a simple text editor, previewed locally on the user’s browser of choice, and then transferred to a hosting service using FTP. Static content is still easy to produce, but nice-looking pages require some design skills, and dynamic content requires basic coding skills with template engine syntaxes. Web servers can execute [CGI] shell scripts or template engines that generate dynamic content to the clients. Server-side technologies are the realm of software developers, whose goal is to keep the life of content creators as simple as possible.

Core value: simplicity

Key features:

- Rich hypermedia content
- Presentational markup
- Dynamic page templates
- Server-side page generation
- Stateless server-side engines

## The Post-Classical Period

The Classical Web introduced dynamic server-generated content, however web pages were still static, non-interactive documents. At this time, people started to envision a future for the web as a universal operating system/application platform. Rich hypermedia documents had to become interactive applications. To accomplish this goal, the web platform needed a scripting language on the frontend. In 1995, the release of Netscape Navigator 2.0 introduced Livescript, soon to be renamed [JavaScript], and people began to inject life to their home pages, such as collapsable table of contents, event handlers or alert boxes. One year later Microsoft released Internet Explorer 3.0 with its own [JScript] implementation and limited support for the new [CSS1 standard][css1]. Those were the days of intense competition and unleashed innovation on the browser market.

In 1995, the same year as Javascript, Sun Microsystem introduced the Java Language. Sun had their own vision of what distributed computing should be: Java everywhere, from mobile terminals to desktop applications and mainframe servers. The "write once, run anywhere" promise was a direct competitor to the emerging universal web platform. On the client-side, the [HotJava] browser and its [Java Applets][java-applet] provided a viable, mature and consistent alternative to dynamic web pages for online distribution of desktop-like applications (to the point that Netscape stole the name for their own LiveScript language). On the server-side, the Java Web Server and its [Servlets][java-servlet] opened the era of Web application servers.

Milestones:

- [JavaScript][javascript] (1995)
- [CSS][css] [Level 1][css1] (1996)
- [ECMA-262][ecma-262] (1997)
- [DOM Level 0][dom0] (1995-1997)
- [Java Applets][java-applet] (1996)
- [Java Servlets][java-servlet] (1996)
- [XML][xml] (1998)
- [Acid1][acid1] (1999)

Emblematic software:

- [Netscape Navigator][netscape-navigator] 2.0-3.0
- [Microsoft Internet Explorer 3.0][ie3]
- [Microsoft Internet Information Server][iis] with [ASP]
- [Sun HotJava Browser][hotjava]
- Sun Java Web Server

<!-- References -->

[javascript]: https://en.wikipedia.org/wiki/JavaScript
[jscript]: https://en.wikipedia.org/wiki/JScript
[css]: https://en.wikipedia.org/wiki/CSS
[css1]: https://www.w3.org/TR/CSS1/
[ecma-262]: https://www.ecma-international.org/publications/standards/Ecma-262.htm
[dom0]: https://www.w3.org/TR/DOM-Level-2-HTML/glossary.html#dt-DOM-Level-0
[java-applet]: https://en.wikipedia.org/wiki/Java_applet
[java-servlet]: https://en.wikipedia.org/wiki/Jakarta_Servlet
[xml]: https://en.wikipedia.org/wiki/XML
[acid1]: https://en.wikipedia.org/wiki/Acid1
[ie3]: https://en.wikipedia.org/wiki/Internet_Explorer_3
[iis]: https://en.wikipedia.org/wiki/Internet_Information_Services
[asp]: https://en.wikipedia.org/wiki/Active_Server_Pages
[hotjava]: https://en.wikipedia.org/wiki/HotJava

### The Post-Classical Web model

The Post-Classical Web is a universal application platform. Visually speaking, web pages mimic regular desktop applications. They don’t display content but application state, and only provide basic interactivity whereas the application logic is implemented in full-featured languages on the server-side. Web pages live in the [presentation layer of a classic 2- or 3-tier distributed application][3tier-architecture]. The Post-Classical Web is the first model where the frontend/backend dichotomy starts to make sense; the frontend is a web designer’s job whereas the backend is a software developer’s job.

Core value: interactivity

Key features:

- Dynamic pages with HTML event handlers
- Stateful application servers
- Backend frameworks

<!-- References -->

[3tier-architecture]: https://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture