• Back into the future or the history of JavaScript language

JavaScript is one of the most popular programming languages in the world. It is multi-paradigm, standardized, open, has a dynamic nature, tight integration with the DOM and therefore used as a standard language of the Web, purposed to make webpages interactive and provide online programs. Naturally, it has an abundant history, particularly because this language went a long way since its creation to the places it never even meant to be. And following the innovations of JavaScript in our previous articles, here we wanted to take a few minutes and look back on when and how it had all begun.

The idea of Internet

The Internet was first known as ARPANET (named after the Advanced Research Project Agency). The idea proposed in 1962 saw light in 1969 when four main computers in four research headquarters in SouthWest USA were linked, it's four years after the first successful connection of two computers over the telephone system. After that when it was 1972 many universities computers across the USA had been connected. At the same time the development of email, telnet and newsgroup protocols was in action. In 70s-80s many of the other Internet protocols were created. Like this the ARPANET became the Internet. It was a network of university and military computers connected by many other computers communicating using the TCP/IP protocol that had replaced the original NCP protocol.

In 1989 a British computer scientist - Tim Berners-Lee - proposed the World Wide Web (the retrieval of hyperlinked documents by using the HTTP protocol) to publish and share research with the 12 nations of the high-energy physics community. And in 1990 he actually created the first browser - "WorldWideWeb" - released in 1991. This browser became a worldwide tool to transmit the text based information by using the HTTP protocol.

In 1993 the National Center for Supercomputing Applications (NCSA) created the NCSA mosaic browser which became the first one to allow to use plain text along with the inline images, color and hyperlinks, and also ran in a graphical interface environment. It played an important part in expending the grows of the young World Wide Web.

In 1994 a Mosaic Communications company was founded and started to create Mosaic Netscape browser, the first version of which was released later that year. Soon after it became the main browser for the Internet in the 90s. It was renamed as Netscape Navigator to avoid trademark ownership problems with the NCSA. So, like that the company became Netscape Communications.

A glue language

When the World Wide Web was created all web pages were static and there was no way to interact with them. The ability to interact with a web page, make it to respond, required the addition of the "instructional" programming language and it needed to be able to run on the same computer as the browser displaying the page.

The founder of the Netscape Communications company, Marc Andreessen, understood that the Web had to become more dynamic and that the HTML needed a "glue language", so that it could be used not only by the sophisticated developers, but also designers and non-programmers to assemble components such as images, animations, plugins and other forms of small automation. And then Mocha was conceived.

This was also the time when when Brendan Eich was employed in 1995 to embed the Scheme programming language into the Netscape Navigator. But at that time Internet Explorer was the other very popular browser and to compete with Microsoft for the user adaption of the Web platforms Netscape Communications joined forces with Sun Microsystems. The idea became to include Sun's programming language - Java - into the Netscape Navigator. And a working prototypes was demandable as soon as possible, because the pressure of picking one language was getting bigger and bigger. So, in 10 days of May 1995 Eich wrote one. The official name for the language became LiveScript, but it was later renamed as JavaScript for the marketing purposes and because its core script syntax closely resemble Java. It was presented as a scripting language for small client-side tasks in the browser. Anyone using Netscape could interact with pages that made use of this language.

In this line of events the competing browser had to come up with the working implementation of JavaScript. So, Microsoft created Jscript with slight differences in implementation and some DOM functions. Its first version was released in August 1996 included with Internet Explorer 3.0.

Java into ECMA

ECMA (European Computer Manufacturers Association) standardisation became the first big change for JavaScript in November 1996. It was an important step that opened the language to a wider audience. This resulted in the birth of a new official name - ECMAScript in June 1997.

The modifications continued. In June 1998 ECMAScript 2 was released to fix inconsistencies between ECMA and ISO standard for JS and soon after in December 1999 ECMAScript 3 with the first essential changes, like: regular expressions, formatting for numeric output, exceptions and the try/catch blocks, the do-while block, the in and instanceof operators, much better error handling, and more built-in functions for strings and arrays. This version of ECMAScript was supported by all major browser at the time and became a baseline for many libraries.

Work on the next ECMAScript started in 2000 and was led by Waldemar Horwat. But also strong differences in the committee, formed by Adobe, Mozilla, Opera and Microsoft, started to appear and the release had been constantly pushed further away to the point that the work on in stopped completely and resumed only years after. As a result ECMAScript 4 took almost eight years of development and never even saw a light of day. Instead the work was concentrated on ECMAScript 3.1 and the programming language called ActionScript was based on an early draft for ECMAScript 4.

A lot of other things happened in parallel, but in 2009 work on ECMAScript 3.1 was finally finished and it was released as ECMAScript 5 which became the most supported version of JS. It included such updates as: trailing commas in array and object literals, reserved words as property names, immutable global objects, getter/setters, new Object methods, new Array methods, String.prototype.trim and property access, strict mode, function bind, JSON , new Date methods, and other minor changes.

The ECMAScript Harmony proposal became a foundation for future JS implementations.

ECMAScript 5.1 was released in June 2011 to fully align with the third edition of the ISO/IEC 16262 international standard.

In June 2015 ECMAScript 2015 was created. It added new syntax for writing complex applications but defined them semantically. Among other new features were Python-style generators and generator expressions, iterators and for/of loops, collections, promises, arrow functions, number and math enhancements, binary data, typed arrays, reflection, and so on.

ECMAScript 2016 was finalised in June 2016 and included Array.prototype.includes, and the exponentiation operator (**).

In June 2017 the 8th edition (ECMAScript 2017) with await/async, which works using generators and promises, and other new features was released.

Wrapping up

So, as you can see, JavaScript's road was long and not an easy one. A lot of mistakes were made, but also a huge amount of work was put into this language by people who believed in it. JavaScript went through many modifications, changed many names, but survived its competitors and continue to thrive.

Welcome to CheckiO - games for coders where you can improve your codings skills.

The main idea behind these games is to give you the opportunity to learn by exchanging experience with the rest of the community. Every day we are trying to find interesting solutions for you to help you become a better coder.

Join the Game