Notes on a technical history of the internet
This is primarily about the history of the internet as per the technical advancements, investments and decisions that drove the way it functions. Note that this is not a new concept and I heavily lent on various sources for information which can be found in the references section, although I have judiciously curated this list as to what I believe is most relevant.
~1960s - The beginning
People experiment with larger networks
Computers are large, expensive and slow. They're used for engineering or science and at this point it's more likely to have one computer serving multiple people than having multiple computers. This is a process called time-sharing and it means that computing resources can be utilised by people with their own terminals as if they did have their own computer.
However groups did build their own networks to facilitate communication. Since they were adhoc with their own system of handling data there had to be a common protocol for intercommunication between the different networks. This internetwork came to be shortened as the internet.
May 1974 - The TCP specification
The internet gets a way to send data (somewhat) reliably
- Reliable - messages get to where they should
- Ordered - messages arrive in the correct order
- Error-checked - if there are slight discrepancies in the messages they will be found
November 1983 - Domain Name System
The system for giving names to IP addresses
12 March 1989 - Information Management, a Proposal
Tim Berners-Lee details a way to organise information at CERN in a proposal.
Managing information was a problem Tim Berners-Lee was thinking about while working at CERN. The proposal introduces a bunch of historic things such as noting that the organisation is an interconnected "web". It details why hypertext is a useful application to the information management problem. It uses the term "browser" for a program that accesses the server. Most of the principles as detailed in the document are still applicable to the web today.
It's interesting to think of how things might have gone differently. Alternative histories are difficult to imagine since we have so much hindsight of seeing the ways things did transpire and there's so much chaos in the world that small changes could have caused differences in many ways. No doubt something would have formed if it wasn't the world wide web. However from the proposal:
There will always be a large number of information management systems... However, we will lose out if we try to constrain them, as we will exclude systems and hamper the evolution of hypertext in general.
I do wonder if the web has essentially monopolised the system of the internet. It has been extended to fit every purpose; maybe we would be better off having different systems for different purposes?
01 April 1991 - Gopher
An internet protocol that competes with the web
Even though they were coming out at around the same time, the Gopher protocol is seen as a pre-web internet system. Looking at it now, it looks archaic but so did HTTP at one point.
Gopher servers still exist today, although there aren't many of them and the protocol hasn't changed much. There's also alternative protocols such as Gemini
15 December 1994 - Netscape Navigator
A significant browser enters the fray.
18 September 1995 - Javascript
The web gets a scripting language
The people at Netscape realise that Microsoft are going to ship some kind of VBScript in their Internet Explorer browser and also realise that a scripting language of their own would be a really powerful feature that would be compelling for developers and users. Unfortunately the language they decided on wasn't entirely driven by practical considerations but also commercial ones as Netscape had started a deal with Sun Microsystems meaning that they wanted a language similar to Sun's Java but more suited to the web and thus mostly from Brendon Eich, JavaScript was born.
Flash forward 30 years and JavaScript is one of the most popular programming languages in the world. It's used in many, many places far beyond the browser. It powers applicaions, servers and more. It is extended to support far more than just the small scripting it was initially intended for; people even create other programming languages that compile to JavaScript so that they can run on the web.
17 December 1996 - CSS
The web gets a way to style elements
One advantage of HTML is that it declares the meaning rather than just pixels on the screen which means that users can display the content in whatever way they want, indeed one of the original browsers was a line mode browser and was very simple. You can view a simulation of it by CERN here
However, people want more than just text and images clumsily laid out next to each other without any colours. Therefore there needed to be a way for a developer to declare the way they want their page to look. If the user wanted to have their own styling then they should be able to as well. The language for achieving this was CSS or cascading style sheets. It's cascading because the styles cascade down the document and is the language for laying out and styling elements.
12 November 2002 - JSON
The web gets a data interchange format
XML had been the standard way to structure data, it was what HTML was based on and seemed to be everywhere. However it did have some flaws. One was that it was too complex, another that it was too verbose so Douglas Crockford created a minimal format based on Javascript called JSON or JavaScript Object Notation.
Sometimes its minimalism hurts it in some departments. For example when it's used as a configuration language it really should have comments and it often allows trailing commas. But as a simple, human-readable data format it works great, especially since it's easy to use with Javascript, the programming language of the web.
4 June 2004 - WhatWG
The browsers get frustrated with W3C and form their own group
29 June 2007 - iPhone
The web goes to the phone.
2 September 2008 - Google Chrome
The browser wars were back and this time it was Google wanting to take over the browser market. The benefits of this to them are enormous since they can serve Google as the default search engine and also push the web towards a direction more amenable to their interests which are many since they want to make and support complex web applications such as Google Docs/Excel, whereas someone like Microsoft might prefer to keep Microsoft Office/Excel the main application people use.
With Google Chrome, they focus heavily on performance, keeping memory usage low. They make Javascript run faster with the V8 Javascript engine. With all these features as well as heavy promotion on their dominant search engine, Chrome comes to be the biggest browser in the space.
July 2017 - Flash dies
Adobe's Flash finally is killed off
Flash was added as plugins to the browser and during the early 2000s was a pivotal part of the web, especially as part of games, animations and applications. However just as Java applets were once killed off, so was Adobe Flash. Probably the key point was Apple refusing to have Flash on their iPhones for a few reasons explained in this document written by Steve Jobs in 2010 Ultimately it was killed off but you can still view old Flash content through emulators such as Ruffle
This saga shows how even though backwards compatibility is one of the web's principles, it doesn't come above some of the others. The security issues and propriety nature meant that Flash was doomed even though it did help to define what web applications could be.