4 ms·
I have been programming computers since 1988, so I have seen a lot of things come and go. Not often has there been a just relationship between quality and popu
by worik 6y ago
I have been programming computers since 1988, so I have seen a lot of things come and go. Not often has there been a just relationship between quality and popularity.
Never has that been so stark as with Node.js. So many mistakes, mistakes that have been made before. Such a mind boggling lack of purpose. There has never been a need for Node.js - except to play with the cool kids that programme Javascript on the client, server, on any &&^^*!! thing!
I still do not see the need for Javascript anywhere but in a browser, and with Webassembly, most of the impressive things done in the browser do not need Javascript any more.
So my preference is for Javascript to quietly die out in a dignified exit stage left. But I am not always completely correct. So if you must, then use Deno. Node.js is simply awful. Deno is only useless. A vast improvement.
- cztomsik 6y agoDo you have an actual experience with nodejs/deno? There are many (server-side) things where javascript is not a good choice but "smart-proxies" or micro-service-orchestration kinds of things are definitely super-easy to do in nodejs. I've also done many languages, like really, and I don't know any better for this task. What's your choice BTW?
- aikah 6y agoOften the worth of a language comes from its ecosystem. Node.js for now has perhaps the biggest ecosystem in history of computer languages and since Javascript is supported natively by browsers, well it makes the number of developers knowing Javascript quite substantial. It's no worse than Python, Perl or others.
- int_19h 6y agoI would argue that much of the Node ecosystem suffers from the same flaw as "millions of apps" advertised by Apple and Google on their mobile platform: most of it is useless one-liners, or abandonware. Now, when you filter it all out, it's still not any worse than Python etc - but it's not any better, either.
- jorisd 6y agoThe third slide of Ryan Dahl's 2009 JSConf.eu presentation (https://www.youtube.com/watch?v=ztspvPYybIY https://www.youtube.com/watch?v=ztspvPYybIY) covers most of the reasons for why it was made: "I/O needs to be done differently". Evented I/O via event loops wasn't really that much of a thing back then, and many server-side web frameworks were simply sitting idle whilst waiting on I/O. Node changed this, and thereby enabled a kind of concurrency that was easy to achieve and there by default, often without the programmer really realizing it, because they didn't have to do anything too special to get it done other than write JavaScript with callbacks. I don't think JavaScript was really the point of it. (EDIT: but JavaScript having functions as a first-class citizen, and closures, makes it a very good candidate for something that leverages event loops for this kind of thing)
- smt1 6y agoI'd say v8 being nicely engineered and happening to be a JS engine made it natural as well
- neximo64 6y agoAnd yet it is the most popular programming language in the world.. So maybe you're not exactly right. In the end it's not about what coders need it's what they want.
- int_19h 6y agoIt's the most popular PL because it ships in every browser out there, and so you have to use it to do any front-end work. It doesn't really say anything about the quality of the language or its ecosystem.
- neximo64 6y agoI agree with you its quality but what i'm saying is that didn't matter. And to counter on the browser bit, Rust/Go/C/etc can be compiled into Webassembly and yet its not thriving. Similarly on the backends Javascript is thriving too.
- int_19h 6y agowasm is still a very niche thing in terms of scenarios that it can cover. Things will be very different once there's a full-fledged native wasm browser API that is at least equivalent in power to what JS gets today. On the backends, it seems that the only reason why JS even made a foothold there is because it was on the front-end first, and because it had its performance optimized there (V8 etc) first. Node specifically pitched "same language for both front-end and back-end" back in the day. JS is kind of like C - it just has an immense first mover advantage by now, to the point where it's very hard to move forward from it. I hope wasm will be the holy grail in that regard... eventually.
- sintaxi 6y agoNode wasn't about bringing JS to the server. The purpose of Node was to bring asynchronous I/O to the web - and it absolutely crushed it.