The history of JavaScript is almost as weird as the language itself. Over the last 25 years, it has exploded from a rushed prototype for Netscape to the world's most widely used programming language. Here's how it happened, I guess...
Let there be JavaScript
1990 - 1999. During this period, we see the birth of JavaScript and its standardization through ECMA to version 3 (ES3).
Christmas Day 1990. The world's first modern web browser, WorldWideWeb (later renamed to Nexus), is developed by Sir Tim Berners-Lee in Switzerland. Take it for a spin.
December 1991. The High Performance Computing Act is passed (Gore Bill). Al Gore is later hilariously misquoted as having "invented the Internet".
January 1993 The Mosaic Browser is developed by Marc Andreessen
and Eric Bina at the University of Illinois with funds from the Gore bill. It takes off as the first mainstream web browser 🚀.
Early 1995. Netscape (co-founded by Marc Andreessen) was growing rapidly to nearly 80% of the browser market share, but web designers needed a "glue" language to make their sites more dynamic. At first, they turned to Java, but realized something more dynamic and approachable was needed.
May 1995. Brendan Eich is recruited to put "Scheme in the browser", but was under pressure to produce a prototype quickly with the threat of Microsoft beating them to the punch.
Ten days later... He creates a language called Mocha. It has the syntax of Java, first-class functions like Scheme, dynamic types like Lisp, and prototypes like Self.
September 1995. It is renamed to LiveScript for marketing reasons.
December 1995. It is renamed to JavaScript for marketing reasons.
August 1996. Microsoft reverse engineers JavaScript and ships it with Internet Explorer 3, but calls it JScript for marketing legal reasons.
November 1996. Microsoft is crushing their competition with an internal culture of "embrace, extend, and exterminate", yikes 😬. Netscape submits documentation to standardize JavaScript with ECMA International.
June 1997. The first standardized version of JavaScript (ES1) is approved by the TC-39 committee as ECMA-262 or ECMAScript. It has many of the features we use in JS today, like first-class functions, objects, and prototypal inheritance.
June 1998. ES2 is standardized, mostly unchanged.
December 1999. ES3 is standardized, adding support for strict equality, exception handling, and more. It will stand for the next 10 years.
The Dark Ages
2000 - 2008. After the tech bubble bursts, JS experiences numerous setbacks and the failure of ES4.
March 2000. The tech bubble bursts.
Sometime later... A wide range of features are proposed for ES4, like classes, interfaces, optional types, and other mechanics aimed at large enterprise needs. Douglas Crockford from Yahoo raises concerns that the proposal is too complex and bloated, Microsoft agrees.
The TC-39 committee decides to develop ECMAScript 3.1 (the simple version) and ECMAScript 4 (the enterprise version) in parallel. Ultimately, this approach fails and ES4 never sees the light of day.
Meanwhile... Microsoft's Internet Explorer is dominating with approx 90% of the browser market share. They contribute to ECMAScript, but mostly play by their own rules, shipping new features for JS in their browser. Most notably, AJAX sets the stage for the single page applications of the future.
August 2006. John Resig creates JQuery. The library addresses extremely-frustrating issues related to cross-browser compatibility that existed at the time. It also provides a well-documented terse API that sets a new standard for the "developer experience". Today, it remains the most widely used JS library in terms of actual page loads.
September 2008. Google releases the Chrome Browser and open-sources its high-performance runtime, called the V8 engine. It opens the door to new possibilities...
The Renaissance
2009 - 2015. JavaScript goes fullstack and sees prolific growth in its dev ecosystem
May 2009. Ryan Dahl develops NodeJS with Google's V8 project. It is unique for its ability to run non-blocking code with an event loop on the server. It gives rise to the JavaScript Everywhere paradigm.
December 2009. Exactly 10 years after ES3 we finally see a new version of JavaScript - ES5. It adds a conservative set of new features based on ES3.1 like strict mode, accessors, and JSON.
October 2010. Both AngularJS and Backbone frameworks see their initial releases. They become extremely popular for different reasons - Angular was declarative and opinionated, while backbone was imperative and minimal. This marks the beginning of the modern single page application (SPA) and "framework churn".
May 2013. Facebook releases ReactJS. It sees rapid growth in the years ahead solidifies the declarative UI patterns used in many apps today.
Dozens of other frontend, backend, and fullstack frameworks emerge roughly around this time period, like Angular, Ember, Meteor, Sails, Vue, Svelte, Mithril, Knockout, Polymer, just to name a few.
Modern Times
2015 - present. A ton of new features land in ES6 changing the way modern JS devs write their code.
2015. ES6 brings a ton of new features to the language (many of which originated in the failed ES4), such as let/const, arrow functions, classes, promises, and more. It gives rise to transpilers like Babel and Typescript, so developers can write modern code, but still support legacy browsers that run ES5/3.
2016 ES7. We get minor changes, like Array.includes(). Most importantly, ECMA is now making small changes on an annual basis.
2017 ES8. We get Async Await!
2018 ES9. We get Rest/Spread syntax!
2019. ES10. More small, but useful updates have been finalized. Should be out this summer.
Where does JavaScript go from here? Will WASM replace JS? Will microfrontends make React obsolete? Will the new tech bubble burst?
Only time will tell, stay tuned for Part II in 2045!
Top comments (13)
"Most used" via "StackOverflow" is not (necessarily) most used. The StackOverflow survey is not a good representation and deriving such language/facts from it is also not good, scientific practise, unless you really think that 70 percent of all programmers are white westerners.
How about GitHub? JS has at least 2x more usage than #2 Python, and that doesn't even include TS. octoverse.github.com
No single stat is perfect, but the combined picture seems to point to JS
Github is also, unfortunately, not a perfect reflection. The issue with most of these sources is that they reflect mostly three things:
I am not saying that it's limited to that, but as I've worked in Enterprise software the first few years of my engineering life, I can absolutely tell you, with 100% certainty, that the majority of professional software is written in Java, C(++/#), PHP and Python, whereas the latter is more scientific than enterprise.
These enterprise software repositories are more likely to live on private repos, SVN and/or Microsoft TeamServer. They won't show up in these reports at all. This is one of the reasons you see such a difference between these surveys and the code indices such as TIOBE's
The JavaScript community is loud. It's young (in its developers ages), vibrant but most importantly very very loud. This makes it seem like it is popular, and it makes it sound like it's most used, but I don't think either of us can, with the two resources you've given, declare that, which is why I don't.
How does one’s mother language and country affect their programming language of choice? Or rather, prevent or hinder the adoption of JavaScript?
Out of curiosity, what years are we talking about?
Anyway, I won’t argue with your impression that JavaScript isn’t the most used language, but it’s just that: your impression. As far as facts check out, GitHub and StackOverflow are way more representative of the industry than your single case.
What would you say about npm, then? Being as large as the next 5 largest module registries combined, and 3.5x larger than Maven Central?
… which can version front-end and Node projects as well.
Is that your explanation of JavaScript’s allegedly apparent popularity? That doesn’t seem to have a solid leg to stand on, IMO.
EDIT:
I'm sorry if I've come across as overly assertive in this conversation. I feel passionately about the fact that many of the tools/surveys/etc that people use are not representative of the wider non-white-western world and it's frustrating to me when things like StackOverflow survey are used as if they are facts.
I should not have responded to the "fact" with my 100% certainty that is a "fact in disguise", when I can't back up that what I try to communicate with a simple single resource.
Instead, I think it's worth asking whether "Most used" on "StackOverflow" equals to most-used on a global scale and of different technologies. When reading the GitHub octoverse results, I ask myself, does this provide a good representation of global usage? Are all backgrounds covered? Do the survey demographics match that of the programming world?
I've left the rest of this comment intact -- but please read it with the above in mind.
/endofedit
It affects where you look for help and thus which surveys you might fill in or which statistics you contribute to. It also means that educational material might not be available in your native language.
2008-2012; I still communicate with the people I worked with then, but try to avoid Enterprise for this part of my life 😅😅
Please look exactly at what I said. All I said was that the surveys as given by the OP are not representative and can not be used to make a blanket statement that JavaScript is the most popular/used/xxx language. It is not a complete picture. I supported that statement, that the surveys are not representative, by giving anecdotal data. I then followed it up by saying that I am 100% certain the majority of software is not written in JavaScript. That is not an impression, but based on experience, indices, job offers.
Again, the facts as given are highly skewed and not representative. The TIOBE index among many is a far better indicator. It has to be said that this doesn't look at most lines written or perceived best language.
Don't forget that whilst you'll be given so many job offers for JS based jobs on GitHub and via StackOverlow, that is because you're in a bubble. I get weekly email digest from my industry in The Netherlands, Greater London and Paris, which are all bubbles, and the majority of offers is for .NET, Java and PHP with JS/TS coming in as a closed fourth. All data points to support the fact that these are all bubbles. If you look at my resume, it actually makes sense to hire me for JS jobs, yet those are not the majority of offers.
For example, you know how many microcontrollers there are in the world? They're in your fridge, your car, your coffee machine, your microwave, to name a few, and apart from a few hobbiest writing for them in different languages, they are 100% written in C. Not 50%, but 100%.
According to Hackerrank in 2016 It's Python, Java, C, C# and Ruby which dominate Fintech, among other industries, which exactly matches the e-mails I get for these industries in 2019. Again, not saying this means that they are more popular, but means that once you are outside of the GH/SO bubble, there is a different picture painted.
That's not the point. It's a likely explanation why the GitHub stats don't have those projects.
OSS and the use of packages and modules is, by my experience, far greater and better in the JS/TS ecosystem. Does that mean there is more JS written in quantity? No. Does that mean there is more JS maintained in quantity? No. Does that mean that people publish more JS packages, especially as OSS? Most certainly.
These statistics don't compare fire-and-forget packages, nor the fact that OSS feeds OSS, which is probably bigger in JS/TS land. I can find far fewer packages in OSS when devving in C# for example. This doesn't say anything about its popularity, but only about the OSS bubble of that language.
No, it's one of the explanations that people like the OP think that the SO and GH surveys are representative for the programming world.
I think there's an underlying misunderstanding in all this discussion. I don't think anyone ever thought GH or SO were perfect mirrors of the language usage of the industry. That would be gullible. But, you know, they're the best we have.
Knowing that nothing will even be a perfect statistic representation, should we flat out stop saying anything about it?
On GitHub, JavaScript is the most used language by a long shot.
On Stack Overflow, it's the most discussed, by a long shot.
Among package registries, npm is the largest. By a long shot.
I won't say that three clues make a proof, of course. But we're not talking about "JavaScript is 15% ahead of LanguageX", but rather an order of magnitude. I think it's pretty reasonable to draw conclusions, although without exact numbers.
Stack Overflow's co-founder Jeff Atwood, who is not a JavaScript developer (rather a .NET dev) stated his famous law in 2007: "Any application that can be written in JavaScript, will eventually be written in JavaScript." And in 2007 we didn't even have a lot of things that made JavaScript so popular: Chrome, Node.js, Angular, React, ...
Personally, I find Stack Overflow's usage quite interesting because - assuming no language/environment is significantly more difficult than another - it's about the struggles of everyday's users, and their direct experiences.
On the other hand, I feel you're playing as the devil's advocate here. Don't mistake me, it's often an important role, as it can lead to find trivial oversights. And yet, even with all your considerations, I fail to see how those aspects can mean an effective bias.
For example, the spoken language. Granted that most of the surveys and Q&A sites are in English, so developers who don't speak English (well) are less likely to use them, it still doesn't explain why this should affect the numbers. Does the English-speaking community lean towards JavaScript? If yes, how? And how much?
What about SVN and TS? Is there a reason to believe that private repositories contain, proportionally, less JavaScript than GitHub (at least the part that's public)?
Your reference to Hackerrank is indeed interesting, but: a) 2016 is three years ago, which could be considered a long time in IT, and b) interviews are influenced by the market's offer.
The application field, on the contrary, is definitely a factor. Of course the gaming industry will push for low-level, high performing languages such as C; and the scientific community is shifting towards Python thanks to its well-crafted libraries. I don't think anyone will even contest these points, as there are clear reasons.
But we're looking at the overall picture here.
Sorry for the lengthy post - but I want to let you know that, in the end, you actually made think and ponder 🖖
Given your response, yes I would never use either of those three statistics or the combination to make a blanket statement that X is the most popular because, as you state, we can't. I think it's misleading and uninformed.
We can say plenty using those three stats without making assumptions and call them as if they're facts :).
I can go into the specific questions you ask later, when I have the capability to give you an articulated response, but for now I'd would say: I'm glad I made you think about it, yes I am partially playing the devil's advocate because I wánt people to think about it and yes: I think there is far less JS comparatively on non-github svns, which ties in with less open source, less packaging and more enterprise and closed source software.
Do I think JS will keep growing? DEFINITELY! Will I use SO and GH as the source to determine that it's the most popular language? Personally I will never for the reasons I've mentioned so far, until I can be more certain that they are a good reflection of the programming world as a whole.
Also: thank you so much for taking the time and writing it like you did. ❤❤❤
Loved it ❤️
I'm currently writing a book about Deno, and I'm kinda stuck in the part of writing about the history of Javascript, since I've noticed that mostly of what's written about it on the internet comes in the form of either blogposts, or articles that don't include a complete view of the details and nuances that form the history of the language. However, your article and video seem to do the trick.
Do you think there's a chance I can use it to support my research process, and maybe to cite you as a source for the book? (You can find what i've been building on GitHub).
Saw it on my Youtube feed and gave it a watch. Very informative. Thanks.
A brief yet thorough introduction to the evolution of JavaScript. Just step into the field and found this to be a really nice learning resource. 👍
I was recommended this article as part of a beginners guide to JavaScript. I didn't think it was possible to be more confused than I was but here I am
Wow this is how js evolved good to know about its history.