Only the first two are JavaScript projects (but do deserve a mention IMHO). The rest are more generally 'web platform' projects, but I think a thorough timeline covering the web platform more generally would be very neat/useful.
I think Coffeescript is more related to the modern JS flow (with all the transpiling) that Rome is trying to consolidate. But I don't think it's the OG, if memory serves Objective-J was first.
Backbone especially because it seemed so obvious to so many people that there needed to be an object-oriented "MVC" framework in the browser, and only over 5-10 years of experiencing the sharp edges and missing pieces did unorthodox alternatives (Flux etc) seem interesting.
For those that are disappointed at the omissions in the timeline:
> Disclaimer
> We could have mentioned a lot of other projects:
> [lines omitted]
> ...but we had to make choices to keep this timeline compact.
> The 2 main constraints were:
> We wanted 20 projects because we are in 2020
> We wanted at least one project for every year between 2010 and 2020.
Reasoning kind of dumb, since this could have been a much more impactful post, but glad they laid out their reasoning. They missed some major precursors to the web we know to day -- Node Webkit existed before Electron IIRC, there's stuff like MooTools, Ember has been around basically forever (and SproutCore before that), Backbone isn't mentioned, KnockoutJS started the MVVM craze IIRC. In more recent time, they left out Parcel which is by far the easiest bundler I've ever used, JSPM & SystemJS were left out as well.
I wonder if there's a better timeline out there for the history of JS tooling.
Given the disclaimer at the end, they predicted people would be unsatisfied with the omissions... They were right
I think Backbone is a really big omission, specially because it credits Angular for the popularity of the SPA and in doing so practically erases Jeremy Ashkenas and his awesome contributions from Javascript history. I would argue you can trace modern JS to Backbone, Underscore and CoffeeScript.
> I would argue you can trace modern JS to Backbone, Underscore and CoffeeScript.
Absolutely any list that omits these three technologies is fundamentally flawed. React was originally created to replace the "View" component of Backbone.
I had the exact same reaction. Sticking Angular in there with no mention of Backbone is revisionist history. Backbone was everywhere. ES6 doesn't coalesce without Coffeescript either. Firebug is another glaring omission. What about npm? Chromium? MDN? ECMA2015? querySelector/modern DOM APIs?
As someone who has been writing javascript for over a decade, I find this list to be really disingenuous. Putting projects like Rome, Snowpack, and Deno alongside jQuery is almost laughable. They certainly have large potential upside, but they have yet to have any significant tangible impact on the Javascript community. I'm all for them and will continue to support their development, but why not mention the projects that had genuine historic impact. Does angular really belong here twice? I'm not sure it belongs even once.
I suppose it shouldn't bug me this much.. it's just a list. But given everything the developers of these projects have given me, I'd like to see them get the credit they deserve.
Still looking for stuff to replace Wordpress and jQuery in this area. This trend is cool but requires a technical hurdle way bigger than before with lots of tradeof (backward compatibility/easy introduction to programming/performances on frontend).
It should be noted though that Rome is not a project by Facebook. It's by Sebastian McKenzie (@sebmck), who started working on it as a side project while working in Facebook. But he's working in Discord now. And the project is totally owned by him.
A low key ad for Rome imo. I thought the title was a metaphor for the JavaScript empire into its current state not the name of a new library. Nonetheless seems worth checking out
Still though, it casts a very wide net. I'm super fond of simplifying things and having fewer dependencies (one reason why I prefer TypeScript over Babel), but I'm not sure why I would want my test runner to ever care about formatting code, or why I would want my Markdown formatter to ever worry about bundling JavaScript files.
I think tying an opinionated linter/code style tool to the rest of the tools is going to limit adoption. While people point to gofmt/prettier as examples of opinionated tools winning, Eslint (fully configurable) is still more popular by downloads than prettier (slightly configurable) and both are way more so than standard (not at all configurable).
I'm not so sure that's a bad thing. I've never heard of it until now and just by looking at the Getting Started guide, I'm kind of excited about it: https://romefrontend.dev/#getting-started
No, Rome is a tool chain that is supposed to replace your separate tools for linting, building & testing.
So you might use it with your React app to get rid of eslint, webpack & jest (at some point, it's not there yet).
Svelte however is an entirely new framework which is fundamentally different from react/vue/angular in some very interesting ways (which I won't get in to here).
I feel even a list of the 5 most impactful js projects should include Firebug.
Firebug played a huge role in removing the shroud around javascript and making it approachable to a lot of people, helping them introspect others code, and improving their own code quality. After it, javascript became a beast you could tame rather than a source of endless frustration.
Yes! But I think you had to have lived through the process of developing javascript programs without any developer tools to really appreciate Firebug and how indebted we all are to Joe Hewitt. And also, we should mention Chris Pederick's Web Developer Toolbar.
It didn't only remove the shroud that made it difficult to work with for beginners, it made an incredible difference in terms of being able to use JavaScript for serious application development. When Firebug showed up, the JavaScript development tools were basically where under 1,000-dollar, pre-Turbo C development tools were on the PC, except slower, too. That didn't stop anyone from writing complex JavaScript programs, of course, but it was extremely useful in getting people to take it seriously, and in making people in established organizations trust it for complex UI work.
I don't have words to say how dreadful JS development was before that. Debugging was extraordinarily limited by default, and we all had bits and pieces of debugging functionality pieced together from a variety of projects, most of which were glorified "debug by printf" hooks which sometimes interfered with the real application logic, and you ended up having to debug your debug code instead of whatever was actually broken.
Ugh. Was the author of this article in the field since 2006? From the look of this list, I'd wager not. Almost resembles a cherry pick of Google results. Listing VSCode without listing it's precursor and source of inspiration (Atom) nor the platform which enabled VSCode to be a thing (Electron) is mind-bottling¹. We're going to list Snowpack (new last year) but omit Rollup (hey, Webpack made it and it drives three other projects listed there), which is what drives Snowpack?
Should've been called "Some old school stuff I heard about and shiny projects with lots of Github stars." Sloppy click-bait work, this.
These posts and subsequent comments always prove me to that the wide world of JavaScript has so much more to offer than I could ever imagine. I've only used a very small subset of tools, I really wish there was an easier place to visualize all the available tools and what they accomplish. I don't know what I don't know so it is hard to even begin.
For those into trivia, MooTools curiously popped up again a couple of years ago when the 'flatten' method was being discussed and it was suggested that it be called 'smoosh' to avoid breaking MooTools apps(!) https://github.com/tc39/proposal-flatMap/pull/56
The article omits some major influential JS projects over the years that folks have already pointed out (Backbone, Coffeescript, Underscore -- and I'd add Require.js, as a commonplace early AMD loader before ES modules were a thing).
And then it also lists 2 projects that, frankly, I've never heard of (and I try to keep pace) and speaks of them in suspiciously-glowing terms, speculating about them being significant in the future.
Fine, you can't always know today what will have had the biggest impact in 5 years, but the result is that this reads like a really bad "puff piece" ad for those two projects.
It's like when you see blog posts from some SaaS company about "best practices for <industry>", and the first few tips are either obvious or wrong, and the last few tips are "buy our product!"
Not a web dev. Don't know much about Javascript itself.
MathJax might be the most significant JS project ever. It enabled something that couldn't really be done before it came along, displaying complicated equations in a readable manner.
Ace deserves at least an honorable mention. I was able to add a full-blown text editor to a CGI app with little effort. I'm pretty sure it's been around longer than VS Code and it's been used in more major projects.
This list shows how out-of-date I am with frontend webdev. I last did frontend stuff with Spring MVC and JSPs!! Yeah it's been over a decade. I was also using table-driven UI element placement still and hadn't fully switched over to CSS. I'll get there someday...
> Babel #13
> First called `5to6`, the compiler Babel helped make the
> ES6 version of JavaScript popular and was a key part of
> React success.
It was called "6to5" for reasons that should be obvious.
But it's also just an irrelevant factoid on a timeline that at first seems to be a history of influential JS projects over the past 15 years, but in reality just takes some projects that are well-known today and kind of arbitrarily arranges them.
This is Michael the author, thank you all for your feedback!
This timeline was like a game, trying to find a balance between projects that made the history and bets for the future.
The disclaimer explains some of the rules but of course the result is not perfect.
I should have added that all projects mentioned are GitHub projects tracked by Best of JS app (the app I created in 2015)
I totally agree about the importance of Firebug that I discovered in 2005 or 2006.
Being able to debug JavaScript was such a liberation!
JavaScript was no more just a toy language.
I also agree about some projects should have been mentioned, at least in the disclaimer, mainly Backbone and its friend Underscore because at the beginning of 2010s, it was a kind of standard to build clean apps in the browser, using a MVC pattern.
In addition of the Rising Stars projects https://risingstars.js.org/ that provides an overview by year, this timeline was the first attempt to provide a big picture about the landscape of the 10 last years, I will try to create something more thorough soon.
How about Enyo the predecessor of React? If there was no Enyo there would be no React since a team member on Facebook was originally inspired by it ... https://en.m.wikipedia.org/wiki/Enyo_(software)
How about PhoneGap? A Javascript library that allowed you to write native mobile apps for the first time.
reply