
The abundance of JavaScript libraries - velmu
http://joonaspajunen.com/the-abundance-of-javascript-libraries
======
georgemcbay
Probably 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
Completely 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
> _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
> 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
> _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.

------
pavlov
JavaScript 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
> 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
Capitalism 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
> 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.

~~~
nostrademons
It works on a level outside the JS library ecosystem: if people are judging
potential new employees by their GitHub profiles, and that is resulting in
people publishing all sorts of crap on GitHub to make themselves more
employable, then eventually the reputational value of having published a JS
library will go to zero (possibly even negative). Instead, employers will look
for better indications of programmer quality, perhaps "Does anybody _use_ your
library?" Eventually some of the savvier programmers will realize that,
they'll work on targeting real needs more deeply and really solving them well,
and the huge mass of mediocre JS libraries will be replaced by a few good
ones.

------
ddw
I 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?

~~~
bpodgursky
In Java or C++, there's a reasonable expectation that common popular libraries
will keep getting updated for quite a while after you start using them...
mindshare doesn't hemorrhage rapidly.

Not remotely true with JavaScript. Something which got 2k stars on gitub this
year might be on the way out in a year, and you'll be stuck figuring out
whether it still works with the new version of d3.js, or on the newest
Chrome... and if it doesn't you have to either move on or fix it yourself.

~~~
lugg
Javascript developers need to make a transition like php and others have to
module based apps, where you import just the libraries you need.

With things like require its not like it would be difficult to role your own
framework like you can with php and composer (+all the symfony / laravel
modules)

~~~
dhritzkiv
That's what using Browserify with CommonJS modules accomplishes, and has wide
adoption. ES6 also specifies a module system, but it remains to be seen how
that gets used or when it becomes the norm.

------
egfx
What 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
Couple 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_
Given 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.

