5 ms·
“Node.js is one of the worst things to happen to the software industry” (2012)
- sAbakumoff 9y agoThese guys are utterly aggressive even by my standards!
- sanxiyn 9y agoThe 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 9y agoBut 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 9y agoNobody loved node because of callbacks. Node was the only ecosystem where everything was written with concurrency in mind.
- dozzie 9y ago> 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 9y agoJS 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?
- hungerstrike 9y ago> Callbacks were advertised as the reason why one should use node. They're a foundation of JS. Where can I see that advertisement? I'm pretty sure that the main selling point of Node.js is and always has been that you can easily share code with the browser.
- deleted 9y ago[deleted]
- abritinthebay 9y agoIt wasn’t that callbacks we’re a selling point, it’s that asynchronous execution was. Callback were just the way of doing that in JS. Now we have Promises + Async/Await as sugar around what is basically the same pattern ie - cb(err, result) is not that different than .catch(err).then(result) but it’s much nicer to develop with. Of course now you can do the same in imperative try/catch for with await so yes, we’re back to similar syntax but a whole lot change under the hood and provided a much more performant concurrent model
- milankovic 9y ago"Only a thought-provoking read is a good read." Thanks for that :)
- oceanghost 9y agoJavascript 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. :-)
- jazoom 9y agoMaybe one day we'll be as awesome as you
- patates 9y agoAccording to the article, the node.js community hates itself. They are lucky as it seems as soon as they join the "rest of you", no one will hate them anymore.
- abritinthebay 9y agoGiven the number of CS/Math guys who don’t understand the basics of prototypical object systems and try to make every OOP system fit into the C++ model... I wouldn’t throw stones there. Most of the concepts in JS date back to Scheme and the Actor Pattern languages of the 70s & 80s. In other words: you really don’t know what you’re talking about.
- hungerstrike 9y agoYeah 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 9y agoConcurrency. But I think you're reading more into what I said than what was meant.
- aerovistae 9y agoWhat 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.
- Guthur 9y agoWhy not? Is there something wrong with expressing an opinion about a programming language. You've just expressed a similar opinion about their right to expression.
- patates 9y agoIt pushes too hard, it's not balanced nor it is fair. There are articles which generally criticize js that I've bookmarked, but this is mostly expressing emotion not so much opinion.
- noufalibrahim 9y agoThat'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 9y agoIt 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.
- vixen99 9y agoReading a critical blog post, even nihilistic ones (if they are) is not obligatory. Switch reading matter and stop telling others what not to write.
- rootw0rm 9y agoI've played around with JS a bit. Worked on a little game engine. Knowledge of it comes in handy for playing around with other people's websites. But it's still evil and I hate it.
- chrisco255 9y agoCan you say clickbait?
- finchisko 9y agoDidn'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.
- zurfyx 9y ago"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 9y agoThe consistency of node's standard lib alone is a good reason to use node instead of PHP.
- vatotemking 9y agoThis article is outdated. Its 2017 and Im happy with my async and await.
- z3t4 9y agoI 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.
- gitgud 9y agoThe way this was written made me think it was a sarcastic rant. But I guess they're serious...
- codeaholicguy 9y agoCurrently people love the Node ecosystem not the Node itself. So I don't know why this article till here.
- vikramkrishnan 9y agoI 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 9y ago"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 9y agoI 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
- chmaynard 9y agoInteresting. An entire website devoted to snark about software. Not very nutritious, but it tastes great going down.
- eljee 9y agoCritiques 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.