I would add only that the early proliferation of Javascript frameworks was not a bad thing. Not at all! Sure, libraries like Prototype turned out to be evolutionary dead ends, but:
We didn’t know that at the time. All we knew back then was that web programming was a tragic mess, and that we wanted to get away from the status quo as quickly as possible.
jQuery won in large part by adopting and refining the best ideas of the other frameworks. For example, you’ve probably never heard of Behavior.js, but here’s John Resig in late 2005, discovering from it how awesome pseudo selectors are and then thinking through ways to better present them to a general audience.
Without Prototype and frameworks like it, jQuery would never have existed. It still sucks that you had to port it, though; my sympathies for that.
Makes sense. But from a utility maximization standpoint, if I have some cool idea like pseudo selectors that I want to introduce to more people, I’d argue that I’d often be better off trying to improve the best-in-class tool (even if it’s initially just a fork/branch/etc.) than creating another competing tool.
In a sense, they did: everybody wrote Javascript frameworks, instead of writing new languages which compiled to Javascript.
But all kidding aside, it’s hard to predict in advance which cool-sounding ideas are actually cool, and it’s very hard to maintain a best-in-class tool if you’re willing to merge concepts that haven’t been battle-tested elsewhere. This is another reason jQuery won: its plugin system gave it a way to cultivate ideas that could be awesome but that weren’t yet ready for the big show.
I would add only that the early proliferation of Javascript frameworks was not a bad thing. Not at all! Sure, libraries like Prototype turned out to be evolutionary dead ends, but:
We didn’t know that at the time. All we knew back then was that web programming was a tragic mess, and that we wanted to get away from the status quo as quickly as possible.
jQuery won in large part by adopting and refining the best ideas of the other frameworks. For example, you’ve probably never heard of Behavior.js, but here’s John Resig in late 2005, discovering from it how awesome pseudo selectors are and then thinking through ways to better present them to a general audience.
Without Prototype and frameworks like it, jQuery would never have existed. It still sucks that you had to port it, though; my sympathies for that.
Makes sense. But from a utility maximization standpoint, if I have some cool idea like pseudo selectors that I want to introduce to more people, I’d argue that I’d often be better off trying to improve the best-in-class tool (even if it’s initially just a fork/branch/etc.) than creating another competing tool.
In a sense, they did: everybody wrote Javascript frameworks, instead of writing new languages which compiled to Javascript.
But all kidding aside, it’s hard to predict in advance which cool-sounding ideas are actually cool, and it’s very hard to maintain a best-in-class tool if you’re willing to merge concepts that haven’t been battle-tested elsewhere. This is another reason jQuery won: its plugin system gave it a way to cultivate ideas that could be awesome but that weren’t yet ready for the big show.