Come on, let's stop the Node.js ridiculous hype already.
1. It's JavaScript!
JavaScript is a terrible language. The fact that you need to read "JavaScript: The GOod Parts" in order to use the damn thing is an indicator of that.
I don't care that it's supposedly "lispy."
2. Code re-use at every level
Does any project actually do this? Is there any sort of front-end library that actually works both in Node and in the browser? It seems like more of a pipe dream to me. An awesome idea, for sure, but never actually implemented in practice.
3. Strong, responsive and enthusiastic community
This is moot if there aren't good libraries available. There are, but other platforms have far better ones available and I wouldn't count this as a plus for Node.
Maybe you're talking about Reddit or HN headlines, though.
4. Large productivity gains in HTML & CSS using Jade & Stylus
Never used them, but finding a library or framework that works for you is awesome.
5. Wealth of hosting options: No.de, Joyent’s SmartMachine, Heroku, Nodejitsu
You can say the same thing about PHP too. That doesn't make it a good reason to use it.
I too hate Javascript, but mostly because it is not a language suited to go above a few houndred lines of code -- it is awesome to quickly add some interaction to a website.
That said, Node.js is really well designed. I just wish it was done with some other less dynamic language.
re: #1 - JavaScript is a very accessible language, and as such, there is a TON of bad code and examples. The fact that people write bad code doesn't make it a bad language, that is your opinion of the language and you are entitled to that but I would argue that opinion. Many people write high-quality code using JavaScript every day, and it can be a very elegant language.
With PHP and PostgreSQL we could scale up, but it felt really hard and gave us many sleepless nights. Using Node.js with a MongoDB backend scaling up is quick and easy; but because Node can handle more traffic, you don’t need to as quickly.
It's interesting to read an experience where Node's performance largely pays off when building traditional sites. I've often read that Node's performance really only pays off when building realtime apps. Maybe I misinterpreted, perhaps it was meant more as the large set of features provided by frameworks like Rails/Django transcend Node's performance boost?
In short, even "traditional" apps now actually have to do quite a lot of IO, and the ability to cram a large number of requests into a single process can have a dramatic increase in efficiency. If your ruby/php applications are memory bound, you might see a huge increase in availability by switching to node (or any shared-memory concurrency model).
There is no Rails equivalent in node, and in general I would say the community is focused on writing code at a slightly lower level than the high level frameworks you might be used to. But if you feel like you've internalized the RESTful MCV design, you may find the performance increase worth the lack of handrails.
Aren't Drupal and Node at vastly different levels of abstraction? I gather that Drupal is vaguely akin to a souped-up WordPress while Node is a fairly low-level server.
Did you start writing lower-level code, or are you using some sort of extensive stack on top of Node?
Exactly the same move here. We created ~2 dozen drupal sites and went to node.js in early 2011. There was about 4-5 months of learning curve, where we almost went back to drupal. The low level of abstraction in node.js resulted in some loss of productivity during that time. But over that time we stitched together sufficient little pieces of CMS capability that we have now fully recovered. And the benefits of working with node.js and javascript over php is pretty huge.
Our only regret now is not having moved to node.js sooner.
Having worked quite a bit in the Drupal world, since 4.6, I demand more info :)
Node and Drupal are completely different beasts. Did you write a new system built on Node, that duplicates what you get with Drupal?
Is any of your code public, so others can look into it?
[+] [-] peterhunt|14 years ago|reply
1. It's JavaScript! JavaScript is a terrible language. The fact that you need to read "JavaScript: The GOod Parts" in order to use the damn thing is an indicator of that.
I don't care that it's supposedly "lispy."
2. Code re-use at every level
Does any project actually do this? Is there any sort of front-end library that actually works both in Node and in the browser? It seems like more of a pipe dream to me. An awesome idea, for sure, but never actually implemented in practice.
3. Strong, responsive and enthusiastic community
This is moot if there aren't good libraries available. There are, but other platforms have far better ones available and I wouldn't count this as a plus for Node.
Maybe you're talking about Reddit or HN headlines, though.
4. Large productivity gains in HTML & CSS using Jade & Stylus
Never used them, but finding a library or framework that works for you is awesome.
5. Wealth of hosting options: No.de, Joyent’s SmartMachine, Heroku, Nodejitsu
You can say the same thing about PHP too. That doesn't make it a good reason to use it.
6. Make your developers famous
Seriously?
7. Developer happiness
HN fame?
[+] [-] threepointone|14 years ago|reply
The rest if it; yeah... well that's just like, your opinion, man.
[+] [-] tomjen3|14 years ago|reply
That said, Node.js is really well designed. I just wish it was done with some other less dynamic language.
[+] [-] LocalPCGuy|14 years ago|reply
[+] [-] stephth|14 years ago|reply
It's interesting to read an experience where Node's performance largely pays off when building traditional sites. I've often read that Node's performance really only pays off when building realtime apps. Maybe I misinterpreted, perhaps it was meant more as the large set of features provided by frameworks like Rails/Django transcend Node's performance boost?
[+] [-] tedsuo|14 years ago|reply
There is no Rails equivalent in node, and in general I would say the community is focused on writing code at a slightly lower level than the high level frameworks you might be used to. But if you feel like you've internalized the RESTful MCV design, you may find the performance increase worth the lack of handrails.
[+] [-] AdrianRossouw|14 years ago|reply
[+] [-] tikhonj|14 years ago|reply
Did you start writing lower-level code, or are you using some sort of extensive stack on top of Node?
[+] [-] hengli|14 years ago|reply
Our only regret now is not having moved to node.js sooner.
[+] [-] danielhunt|14 years ago|reply
Node and Drupal are completely different beasts. Did you write a new system built on Node, that duplicates what you get with Drupal? Is any of your code public, so others can look into it?
[+] [-] ddorian43|14 years ago|reply