In response to http://codeslinger.posterous.com/if-youre-using-nodejs-youre-doing-life-wrong
To address some of the points made
V8 is not server-class
This is an issue with node.js IF you don’t know what you are doing, if you have a 8 callbacks all nested, then you have a design problem or you are using the wrong language for the job.There are ways around the callback spaghetti that keep the code nice and neat. One of the biggest issues is the way we are used to thinking and working is drastically different than the way node works. Rather than execute things one at a time, it executes one thing after another without waiting for the results; so if you have
y might be equal to 1 before
x is equal to 2. This can be challenging, but it is one of the strengths of the platform if properly leveraged.
Non-blocking != fast != scalable
when they talk about node scalability, I really haven’t had the need to scale node or on any current projects forsee the need to, so at this time, I don’t know. However I know that some pretty big names out there are using it and I’m guessing they have looked at scalability.
Some of his points here are very valid, however I find close minded. The important thing to understand about it is that ruby and python (and php) have all had growing pains. PHP only got namespaces as of v5.3 if I am not mistaken.
In closing, Node.js is not perfect, hell it’s bloody awful at somethings, sometimes gives unpredictable results (http://www.destroyallsoftware.com/talks/wat for a good example) and the documentation is sketchy. I’m currently working on a number of projects using node.js, and if I where to document all the issues and bugs I’ve working through, this would be a much longer post (and somewhat embarrassing at times where a simple spelling mistake on my part had me cursing a blue streak at node). At times it does make me wonder if I’ve chosen the right language for the job, but when I look at the needs of the project, Node.js is a perfect fit for these applications.
For simple projects this is not a problem, for more complex projects, it means that, that it might take some time to get used to it, and figure out why stuff isn’t working. Once you get used to the way it works though, it’ll be clear sailing.
Subscribe via RSS