Hi everyone,
I am starting a small series of posts about the history of the web and the JavaScript language. The goal is to provide context and understanding to the modern jungle of web development tools and frameworks — how they came to be and why we use them.
So, ever wondered how the Web actually works and how it came to be? Why we use bundlers in JavaScript? or why meta-frameworks is a thing?
Then this is for you. Hope you’ll enjoy it!
Part 1: How and why the web was created.
Part 2: How JavaScript became what it is today. Read to understand the complex landscape of JavaScript frameworks and tools.
Part 3: CSS, pre-processors and UI frameworks.
Part 4: A guide for choosing a Frontend framework.
A brief history of the web
There were three circumstances that resulted in the creation of the Web. First, research on networking and package-based transmission had reached a state where the TCP/IP stack had been formed and we saw the early stages of the internet being built. Secondly, for some time there had been ongoing research on Hypertext, which is the ability to display digital documents and link between them via hyperlinks . Thirdly, there was a need for a system for organizing and keeping track of documents at CERN, since they were loosing track of useful documents when projects completed and researchers left.
The main person behind the web was Tim Berner-Lee, and the time of its conception was at the end of the 1980’s. Tim, who worked at CERN at the time, had now had several experiences that gave him the idea for the web. In 1980, he had worked at CERN on a software system called ENQUIRE, made for organizing and accessing documents as Hypertext. He had then left CERN to work at John Poole's Image Computer Systems, where he learned about computer networking. He was now back at CERN for a fellowship, and had a simple idea that would change the world: to combine networking concepts with Hypertext documents to create a distributed document system. This idea evolved into the system he called the World Wide Web (WWW). [1]
I just had to take the hypertext idea and connect it to the TCP and DNS ideas and — ta-da!— the World Wide Web.
— Tim Berner-Lee
WWW had the following components:
HyperText Markup Language (HTML). A language for writing HyperText documents that the browser could render to display the document graphically. These documents were also known as web pages, since they were accessed through the “web”.
HyperText Transport Protocol (HTTP). HTTP is built on top of the TCP/IP stack and the internet, and is used to communicate between a browser and the web server. The browser would send a HTTP request for a document (a web page formatted as HTML) that is located on the web server, and the server would respond, using HTTP, with a message that contained the HTML for the web page. While TCP provides addressing (IP and port) and reliability (resending and congestion control), HTTP provides headers and request formats designed specifically for the web (GET, POST, PUT, DELETE, cookies, response statuses, etc.), as well as running on default TCP ports.
The web server. A software that listens to incoming HTTP requests on the network and handling them in a standardized way. The purpose of a web server is to handle a request and producing a response, which is generally a payload containing an HTML page, if the request is made properly.
The browser. The access portal to the web. The browser is a software that translates a user entered web address or a click on a link, to a request to the web server, and which then renders the HTML response graphically to the user as a web page.
The URI. The formatting of addresses to resources on the web: www.somedomain.com/someresource
One of the first browsers were violaWWW, initially released in 1991/1992, and was the recommended browser at CERN [2]. Even this early browser had features like bookmarks and forward/backward browsing.
The first version of the Web (HTML, HTTP, Browser, Web server) was released outside CERN in 1991, and within the next two years, about 50 websites had been created [3]. In 1993, CERN made the Web protocol and and code available for free, which enabled widespread use. Within less than a year, another browser called Mosaic was released, and thousands of websites had been created. There was now a large amount of web servers getting connected into the internet, creating the web of servers that Tim envisioned.
Up to this point, web pages were static once loaded, and the styling you could do was minimal. It was limiting, and developers wanted a way to style their web pages and use dynamic behavior, thus JavaScript (JS) and Cascading Style Sheets (CSS) was born in 1995 and 1996, respectively. JS for creating dynamic interaction with the website, and CSS to style them. These two languages were also, like HTML, made specifically to be rendered in the browser, and could not run elsewhere.
You now had three languages to use for developing web pages: HTML for the structure and content of the web page, JavaScript for creating dynamic content and interactivity, and CSS for styling.
And that is where we will stop today. We have only just started with JS, and in the next few posts I will write more about JS and why it evolved to all the various tools and frameworks we use to develop JavaScript applications today.
Thanks for reading!
— Eric
PS. What did you like about this post? What did you not like? Please let me know in the comments or by replying to the newsletter by email.
References:
[1] https://www.w3.org/People/Berners-Lee/Kids.html
[2] http://www.viola.org/
[3] https://www.w3.org/2012/08/history-of-the-web/origins.htm#c7p1
This was interesting!