If You're Using Node.js, You're Doing Life Wrong
This morning, on a conference mailing list, I made some disparaging remarks about Node.js (the title of this post, in fact). A couple people asked me why I felt that way. Rather than respond individually, I’ll just list my reasons here:
V8 is not server-class
At my current place, we have a Web crawler where some portions are leveraging Chrome/V8. Take a guess which component absolutely dominates the bug count and issue list? Not to mention the fact that its balls-ass slower than some straight un-optimized Scala. We’re looking to get rid of it completely ASAFP.
Callback spaghetti is about the last pattern with which you’d ever want to write anything
Non-blocking != fast != scalable
This is probably the most annoying point for me. First of all, scalability has very little to do with raw speed. Just because you’re fast does not mean you’re scalable. You know what’s fast? MySQL. You know what’s not scalable by itself? MySQL. The hype around Node.js on this issue makes me want to punch faces. Furthermore, Node.js isn’t even that fast. You can do much better with Scala and its a much nicer language, to boot. Oh, and nevermind about those extra CPUs you bought: you won’t be needing those. Events and non-blocking are instantaneous, so you can do everything on a single core, right?