Title: I don't mean to troll. It's rather an honest question. My thought is based on some assumptions of course, so feel free to launch an attack starting there.<p>1 - Javascript is not fundamentally easier to code in than Java. I wouldn't make that statement with Ruby for example, but I've done lots of all 3.<p>2 - when writing servers, you actually care about performance.  Nodejs is fine, but there are (including Java) solutions that hands down beat it by several factors. And that's on a single or (shudder) multiple cores.<p>The coding paradigm of node.js is not novel, it lives in Netty (among other places).  The reports of having 100k connections is great but again, any server in C or Java written correctly should be able to do the same thing (asynchronous I/O with proper VM/kernel tuning).<p>I am a big fan of trading performance for programming productivity when appropriate. That's the entire point of things like Rails. But developers enter those at the application layer with strong intent of scaling to handle load "if they get popular" with the trade-off of faster development.<p>But if you are writing at the node.js layer, you're writing a server. The V8 js engine changed everything and even made this possible, but dynamic languages are at an inherent disadvantage to statically-typed languages in terms of performance (node.js vs other solutions, and JS vs. Java benchmarks are easy to find)<p>Choosing node.js over netty (again, for example) simply seems like a choice of "cool factor" over performance. Unlike comparing Rails vs. Java for a web app (where I, if able, would choose the former) the coding productivity claims are dubious.
Upvote: