
“Node.js is one of the worst things to happen to the software industry” (2012) - neya
http://harmful.cat-v.org/software/node.js
======
sanxiyn
The main argument is that "of all the ways of doing concurrency, callbacks are
by far the worst". I tend to agree.

Now we have async/await, I think there is no problem.

~~~
konschubert
But it's funny, isn't it?

Callbacks were advertised as the reason why one should use node. They're a
foundation of JS.

Then they got covered up by promises. And now, with async await, we're back
full circle towards the style of a more linear programming language such as
python.

~~~
emilsedgh
Nobody loved node because of callbacks. Node was the only ecosystem where
everything was written with concurrency in mind.

~~~
dozzie
> Node was the only ecosystem where everything was written with concurrency in
> mind.

Yes, sure, if you ignore all the other programming languages, like Erlang,
which is older even than first hacked versions of JavaScript.

~~~
zamber
JS was drafted in a week.

Node is a band aid on top of a tech stack that webdev is stuck with.

Node was done with concurrency in mind, JS wasn't.

Compare apples to apples:

How does Erlang's ecosystem stack up when it comes to concurrency? How does it
compare to Node? Do you even care given your prejudices regarding JS?

------
oceanghost
Javascript is the Visual Basic of the 201x's.

Like Visual Basic-- it convinced people who otherwise had no idea what they
were doing that they were programmers.

It's fun for the rest of us CS/Math guys to sit back and watch you JS
programmers discover things we learned 40 years ago. :-)

~~~
hungerstrike
Yeah because CS/Math professionals have never use VB or JS. I'm quite sure
that many Wall Street quants and Fintechs who use VBA in Excel to do their job
today will find your statements hilarious.

Some of the worst code that I've ever seen has been written by hard maths
people.

> It's fun for the rest of us CS/Math guys to sit back and watch you JS
> programmers discover things we learned 40 years ago. :-)

Such as?

~~~
oceanghost
Concurrency.

But I think you're reading more into what I said than what was meant.

~~~
hungerstrike
I just don't think it's fair to say that "JS programmers are just discovering
concurrency".

Libuv, the I/O engine for Node.js is written in C and Node.js itself is a
mixture of C, C++ and JavaScript. Plenty of other "JS programmers" including
myself have also been programmers of C, C++, .NET and many other environments
all of which have well defined concurrency stories. None of these people fit
your profile.

> But I think you're reading more into what I said than what was meant.

Sorry, but this comment conveys no useful information to me. Your original
statements were quite explicit.

~~~
oceanghost
I expressed myself poorly. Please accept my apologies.

I did not mean everyone who writes JS is a bad programmer. That's not only a
dogmatic statement but demonstrably false.

However, people who shouldn't be programmers have to land somewhere and right
now its JS.-- just like VB was back in the day.

It's clear to me at least, that JS has been stretched beyond its abstraction
level. It's ripe for replacement, its just that attempts to replace it have
been closed solutions, so JS continues.

------
vikramkrishnan
I don't think node.js per se is the worst thing. However, the way it is used,
particularly what I believe to be a misguided attempt to do "full stack
development" is really terrible. And it is not the first time that we have
made this mistake. The whole Java on the client side blew up in our faces. If
bosses really understood that client side and server side are two different
problems with different mindsets and specializations we would not be in the
world of pain that we are

~~~
rektide
_" However, the way it is used, particularly what I believe to be a misguided
attempt to do "full stack development" is really terrible."_

I'm not sure what way you believe it is being used?

~~~
vikramkrishnan
I am referring to the following mental algorithm I see being used by managers
and some devs: 1\. My front end guy does JS 2\. My backend guy costs money 3\.
Let me remove 2 and get 1 to do both, it is all JS anyway; completely ignoring
that the way you build the two is fundamentally different, with different
mindsets. Language is just a small part of the equation. The claim that having
a single language on FE and BE will save cash is simplistic and misguided. It
is like saying since my kitchen utensils are built of stainless steel and
aircraft carriers are built of stainless steel, I will get Le Crueset to
manufacture my aircraft carriers

------
aerovistae
What morbid nonsense.

I don't think there's a single language or framework that I haven't heard this
about.

None of our tools are perfect, but great software has been written with all of
them anyway, and lots of people have enjoyed working with those tools along
the way.

If you don't like a tool, switch or build a better one. Don't write long
borderline-nihilistic blog posts about how everything is terrible and we're
all clueless.

~~~
noufalibrahim
That's generally true. However, when the creator of a popular
language/framework disses it himself, it carries a different kind of weight
that can't be easily dispelled by your argument.

~~~
cmroanirgo
It doesn't read that Ryan Dahl dissed it. He dissed every language and their
role in adding to the complexity of the thing that is called IT these days.
And he tried to make the focus about the user of the software: as it should
be!

"The only thing that matters in software is the experience of the user."

I agree.

------
zurfyx
"Of all the ways of doing concurrency, callbacks are by far the worst," Why?
Working with callbacks on a solo thread has proved to be more performant I/O
wise than threads.

"for any other problem anything else will be much better than Node.js, even
PHP."

Why?

While it might be true to certain extend (i.e. Node not being the right
solution for many cases), this article is just filled with baseless arguments.

~~~
vatotemking
The consistency of node's standard lib alone is a good reason to use node
instead of PHP.

------
z3t4
I hear the main complaint in Node.JS, and even in Go too, is that the error
handling is too verbose, eg you can not wipe all fail cases under the rug,
they will litter your code and stare annoyingly at you like "hey, you have not
handled me". And the code will fail spectacularly, while I guess some
developers rather have silent errors with the motto "what I can not see can
not hurt me". It gets unbearable for the CRUD app developers when each SQL
line needs to have it's own error handling and you have to think about in what
order and _when_ to send the SQL queries, where as in traditional "skin your
database" programming framework everything is done synchronously. But now we
have async/await and you can just await, await, await, and even "forget" about
the catch, or that everything is done asynchronously under the hood.

------
finchisko
Didn't read that, because title is enough for me. But usually people who hate
javascript are those who didn't learn and understand it properly. I mean very
basics, like concurrency model and event loop. I saw so many monstrosities in
production, like checking for result of some async call, with setTimeout. No
wonder, people who wrote that code, hate js.

------
chmaynard
Interesting. An entire website devoted to snark about software. Not very
nutritious, but it tastes great going down.

------
eljee
Critiques of Node.js like this are usually from people who can't keep a single
thread up and running. Can't count the number of otherwise intelligent ppl who
have told me "Node.js doesn't work". No. Your code doesn't work. Try again.

------
vatotemking
This article is outdated. Its 2017 and Im happy with my async and await.

------
codeaholicguy
Currently people love the Node ecosystem not the Node itself. So I don't know
why this article till here.

------
gitgud
The way this was written made me think it was a sarcastic rant. But I guess
they're serious...

------
chrisco255
Can you say clickbait?

------
sAbakumoff
These guys are utterly aggressive even by my standards!

------
milankovic
"Only a thought-provoking read is a good read."

Thanks for that :)

