6 ms·
The abundance of JavaScript libraries
- georgemcbay 11y agoProbably a controversial opinion to post here (not in that I think it is unique, but rather that I think there will be a divide in people who agree strongly and those who disagree strongly), but I view the JavaScript framework/library situation as a damning indictment of how terrible the language is. A constant churn of attempts to build a solid foundation upon a bed of leaky sand, each ultimately failing because no matter how well they were engineered you can't get past the whole sand problem... and maybe the whole sand problem will solve itself by other means, but only at a very geological rate due to all of the committee politics surrounding browsers these days. IOW, JavaScript is going to be great next year. Just like it was going to have been each year for the past 10 years or so.
- orangecat 11y agoCompletely agree, and I say this having written mostly JavaScript professionally for the last several years. It's sad to think of the millions of engineer-hours spent trying to make JS usable for today's applications. IOW, JavaScript is going to be great next year. Just like it was going to have been each year for the past 10 years or so. ES6 might actually be ok, in the sense of "about as good as Python 2.3".
- coldtea 11y ago>IOW, JavaScript is going to be great next year. Just like it was going to have been each year for the past 10 years or so. Well, ES6 wasn't available "the past 10 years or so", whereas it will be next year, and recent 6-to-5 transpilers make it a backwards compatible option too. >ES6 might actually be ok, in the sense of "about as good as Python 2.3". Well, it's more ubiquitus that Python, more dynamic, more modern (if you include ES6 features), tied to a more powerful environment (the web), and beats the shit out of Python regarding execution speed.
- ForHackernews 11y ago> Well, it's more... None of these things are features of the language itself (except arguably "more modern", whatever that means). They're all byproducts of the fact that JS is the only language that runs in a browser. JavaScript has basically succeeded dramatically in spite of itself by piggybacking on the runaway success of the web/browsers.
- coldtea 11y ago>They're all byproducts of the fact that JS is the only language that runs in a browser. So? The end result is the same, Javascript has these attributes and Python doesn't.
- agumonkey 11y agoI was under the impression that all dynamic languages were converging around a similar set of core principles. - builtin type literal - closures and fp idioms - generators - asynchrony - comprehensions
- smrtinsert 11y agoclosures are a horrible anitpatterb imo. abritrary anonymous state potentially from anywhere in your application - how can that be a deairable goal.
- agumonkey 11y agoIt's simple anonymous encapsulation. I'm fond of FP idioms so I may be biased but most of the time I'd take closure based combinators over Objects.
- sk5t 11y agoWell said. In many ways picking a direction with JS is as bad as choosing an ORM... big upfront costs, a brief honeymoon, followed by eventual remorse, and finally more costs to transition to the next thing. Sometimes the smartest move is to avoid playing the game.
- raingrove 11y agoTrue. In JS land, someone is reinventing module management, object/class model, property bindings, event handling, async helpers, and FP helpers every day.
- ttty 11y agoIf they didn't many of the best libs wouldn't' exits today.
- Hobotron1 11y agoHating on JavaScript seems like a waste of energy anymore- just use GWT (or something similar) and get on with your life.
- lhnz 11y agoCan you define this leaky sand or is just bullshit? There is definitely a lot of churn, but slowly but surely you are seeing certain functional programming approaches winning out. And the language is progressing so much faster than similar dynamic languages like Python.
- brandonmenc 11y ago> the language is progressing so much faster than Because it was a haphazard design. A lot of the progress is just Javascript catching up to thoughtfully designed languages like Python. That's a good and necessary thing, but the fact remains.
- lhnz 11y agoPython ground to a halt around the time Python 3 was released and last time I looked it was still barely progressing. Meanwhile JavaScript has ES6, ES7, TypeScript, npm, Ramda.js. It's long past 'catching up'. It's a healthy ecosystem.
- brandonmenc 11y ago> JavaScript has ES6, ES7, TypeScript, npm, Ramda.js. It's long past 'catching up' Javascript is definitely making great progress, but npm thrown in as an example of how it's "long past catching up?" That's like, bare-minimum required functionality. I'm not trying to attack, but when JS evangelists cite something like npm as a zap-pow feature, skeptics roll their eyes - especially when they've been using pip/rubygems/cpan for a decade or two. Edit: I realize now you were probably citing npm more as evidence of JS having arrived with a healthy ecosystem (true) than as evidence it's leapfrogged others.
- vectorpush 11y agoI think we see so much churn in JavaScript because we've forced the weight of the entire client side web onto the back of a single language. JavaScript must satiate the technical needs of all organizations across every consumer facing device and operating system. Like all languages, JavaScript has its weaknesses, so its not surprising that we find JavaScript to be a less than optimal solution for certain types of problems, but since JavaScript is generally the only option available for scripting logic in the browser, it's pretty natural that we see an explosion of libraries and frameworks to compensate for the fact that the JavaScript hammer is the only tool that exists in the client web universe.
- petjuh 11y agoThat's what I've been wondering - why don't the browsers add a few more scripting languages, like python? If IE didn't exist, Chrome and Firefox could do it, just for fun, they're very open to new features.
- georgemcbay 11y agoThese days I'd be far less surprised to see Microsoft and Google co-implement something with regards to new scripting language support than I would be to see Mozilla get involved. Mozilla is basically cultish about JavaScript's place as the One True Web Language.
- ddw 11y agoI still don't understand these "too many frameworks" articles. Is there some power out there that I don't know about that is forcing devs to use the latest framework? We're still allowed to use what we want, no matter how new or old it is, right?
- JustSomeNobody 11y ago"Is there some power out there that I don't know about that is forcing devs to use the latest framework?" Yes, It's called the Internet. People read articles about how X is the best. thing. evar. And this is perpetuated through many blog posts and, well, a lot of developers actually believe it.
- ddw 11y agoIf these JavaScript developers are so gullible to the newest thing it says more about them than the hype cycle. It's not just that the language sucks in some ways but that the users of it possess so little engineering rigor that they complain about TOO MANY options.
- edwinnathaniel 11y agoIt's no longer "if". It has becoming a reality slowly...
- fapjacks 11y agoLet me just put here a notation about the vast majority of JS programmers that are not complaining about all the libraries/options. And there are whiny, bitchy people using other languages, too. It's easy to generalize, so I understand the impulse.
- ddw 11y agoYou're right, I am unfairly generalizing. Not everyone thinks this way. But I read more of these articles regarding JS than any other language.
- pavlov 11y agoJavaScript libraries are a bit like office politics for front-end web developers -- basically something that feels like work and "advances your career", while in truth it's just a way to avoid doing the real work with actual customers.
- FlannelPancake 11y ago> libraries are a bit like office politics for front-end web developers -- basically something that feels like work and "advances your career", while in truth it's just a way to avoid doing the real work with actual customers. That's pretty scary, if true. That sounds very analogous to academic research and the "publish or perish" state of affairs in academia today. Office politics often will advance your career in any sizable organization. That's why people engage in it. If publishing libraries is an extension of that, then we should be worried about the precedent that's setting for software development as a whole (because it'd be silly to assume that this remains siloed to front-end developers).
- nostrademons 11y agoCapitalism is actually a pretty efficient antidote to that. The way it works is that as a field ossifies into one where everyone is focused on looking good rather than actually being good, the potential financial returns to defecting from the consensus social order and doing something different increase. At some point, someone's bound to say "The emperor has no clothes!", do something that people actually want, and make out like a bandit.
- FlannelPancake 11y ago> Capitalism is actually a pretty efficient antidote to that. Ehh I'm not really sure how that applies here, especially since the market of "javascript libraries" is probably about as free as you can get (in many senses of the word). There isn't much going on in the way of financial return in that market, probably because people are seeing the benefit of implicit financial return (via the "office politicking" we're discussing here) and banking on that. In which case, I'm not sure how capitalism will help.
- egfx 11y agoWhat I'm amazed by is not the amount of javascript libraries (the more the better IMO) but the amount of under utilized ones. There are tons of awesome JS libraries, experiments and basically web toys out there without a real home.
- rdudekul 11y agoCouple of learnings got crystallized for me from reading the post: 1) Learn to focus on the actual ideas and patterns behind languages, libraries, methodologies & concepts, instead of implementations 2) Observe how libraries, languages, methodologies & concepts get adopted & perhaps later rejected
- _greim_ 11y agoGiven that browsers, Node, and JavaScript are all rapidly evolving, lots of churn in the library and framework space is what I'd expect to see happening, and I'd argue should happen. The problem is bigger than just the rate of churn. It's that at the same time there are lots of newcomers into the field and they don't have time to sit down and thoroughly learn the tech from the ground up. Instead, they're thrown into a JR development role and told to swim or sink. Many do swim and learn the tech in the process, but only by "weathering the storm" so to speak.