How Javascript is made?
Javascript is the language that powers the web together with HTML and CSS. According to Stack Overflow Survey 2022, Javascript is the most commonly used programming language. And has been like that for ten years in a row. It is a solid reign. Who decides and writes the future of the most commonly used programming language? To understand that, we will deep into a brief story of Javascript.
The Origins of JavaScript
“Ten days of hard work and poor sleep” is how Brendan Eich defines the days he worked to create Mocha. That was the first name of the project, then it was renamed “Livescript”. And finally, at the end of 1995, the language was renamed “Javascript”. The name would cause confusion between Javascript and a trendy language by the time: Java. A confusion that remains to these days.
Javascript was created in the demand to make the browser more dynamic. In Brendan Eich owns words:
Other alternatives tried to compete with Javascrit, like Java applets. But Javascript was the clear winner by its simplicity.
It was so successful that Microsoft copied it one year after in the JScript project. That move showed that if the web wanted to continue to develop, Javascript would need a standardization between browsers. Otherwise, every browser would have it owns “Javacsript” and to build a website that works for all browser would be much more expensive - slowing down the growth of web, something that none of the big players wanted.
Standardization of JavaScript: Ecma, TC39, and ECMAScript
So at the end of 1996, Netscape goes to Genova looking for Ecma International. Ecma International was and still is a non-profit organization for the standardization of information and communication systems. Ecma works as a neutral actor that could intermediate the big players interested in the language, like Netscape and Microsoft at the time. That is how Javascript arrived at Ecma and it remains there still today. Now let’s take a look at how things work currently.
Inside Ecma there is a Technical Committee that is responsible to write and release new versions of Javascript. The Technical Committee is called TC39 (39 has no special meaning besides being the 39 committees inside Ecma). They actually write specifications to ECMAScript (another name for Javascript) in a document called ECMA-262. And it has some more attributions which you can check here.
TC39 is organized in a flat way - meaning there is no hierarchy between members - and takes decisions over consensus. Who organize the agenda and lead the meetings are the elected co-chairs. In July 2022, these co-chairs are from Bloomberg, Igalia, and Microsoft. We will hear more about Igalia soon.
Any company can participate in the TC39, it has only to join Ecma and pay the annual fee member which goes from 0 to 70.000 Swiss francs depending on the level of participation and the kind of company trying to join.
How to present a new feature to be implemented in Javascript?
TC39 has a five-step process that covers from the first proposition until inclusion in the ECMAScript standard. The five stages are:
STAGE 0: STRAWPERSON
Any discussion, idea, or proposal that has not been submitted formally is at that stage. Only TC39 delegates or registered members at Ecma can propose one of these.
STAGE 1: FORMAL PROPOSAL
The idea being discussed is finally formalized and enters stage 1. To be formalized it needs to have a description of the problem it is addressing and the general shape of the solution proposed. Also a high-level description of the API and the algorithms involved in the solution.
STAGE 2: DRAFT
In this stage, is expected that the proposition have a first version on the spec version. It is allowed to have holes as TODOs and placeholders, but all major components on the specifications must be addressed.
STAGE 3: COMPLETE
In this stage, the solution is fully described and nothing can be added anymore except for any fix that is found to be needed.
STAGE 4: FINAL
The proposition will be included in the next Ecma standard release.
To see more details you can check the official doc or this blog text.
An example of a new proposition going through this process is “A Proposal For Type Syntax in JavaScript” that is currently in Stage 1 since March 2022. Maybe when you are reading this text, it is already implemented! You can check the status here. This is a proposition led by Microsoft engineers and derives from Typescript experience developed by them.
But who writes Javascript?
Igalia Logo (Source)
So now we know how Javascript was created, why is it in the browser, and how it got into Ecma. We also know how Ecma defines new features to Javascript (or ECMAScript if you rather). But who writes these new features, and who makes the implementation so that works in the browsers? Or in the Node.js runtime? There are many companies responsible for that depending on the browser, but there is one company responsible for many implementations in the most used browser (Chrome, Firefox, and Safari) and the Node project: it is the open source consultancy, Igalia.
Igalia probably does not have the spotlight that Mozilla, Google, or Apple has, but if your website is running an edge Javascript feature - it is probably using an implementation done by Igalia. Igalia is a “free software consultancy” in their own words. They are involved in big open source projects like Chromium (created by Google), Webkit (created by Apple), Mozilla’s Servo, and V8 (Javascript engine used by Node and Google Chrome) naming a few.
You can check more on their website.
Back to our initial question: How Javascript is made?
As expected, the process of making the most commonly used programming language in the world is complex and involves many players. From the stage, 0 proposals to your favorite Javascript runtime is a long walk. But if we are looking for a company doing a great part of the dirty implementation job today, Igalia is definite a name to keep.
This text was highly inspired by Tejas Kumar’s video
References:
- TC39 and its contributions to ECMAScript
- 2022 Developer Survey - Stackoverflow
- How JavaScript is made, and why JavaScript is the way it is today: Let's talk ECMA, TC39, and Igalia
- A Brief History of JavaScript, talk by Brendan Eich (creator of JavaScript)
- Mocha -> LiveScript -> JavaScript
- TC39
- Will there be a suggested file suffix for es4?
- TC39 management