Ask HN: What are the major benefits of learning Node.js?

5 points by ryhanson ↗ HN
The main reason I read everywhere is scaling, performance, etc.

Do you use Node.js? If so, what for?

I guess my problem is that I am so comfortable with HTML5/CSS3/jQuery and PHP/mySQL, that I find it hard to take the leap to learn all these new libraries and technologies. I have been able to do everything I need to do so far with the languages I know, so convince me why I should learn Node.js and other libraries. I mainly build Web Applications.

Thanks!

12 comments

[ 2.2 ms ] story [ 40.7 ms ] thread
Well first of all it's always a good idea to learn different languages and frameworks. A common point is that learning for instance ruby makes you a better X developer.

I'm using Node.js since almost 2 years now besides other technologies like PHP and Ruby. During those 2 years my javascript knowledge and understanding grew a ton compared to just "playing" with jQuery, Backbone etc. Also my understanding for asynchronous code (both javascript and non-javascript) increased a lot.

If you don't care about Node.js or don't like javascript (on the server), try Ruby or Python or Scala or whatever. There are so many different and awesome things out there, especially for building web applications. It would be a shame to work with PHP/MySQL all the time.

What really kept me in developing Node.js after the first few weeks was the amazing community. Basically everything is Open Source and happens on Github. New development happens basically on a daily basis, really impressive. And there a tons of awesome modules out there, from template engines to testing libraries.

So bottom line: I don't need to convince you to try Node.js, but I do want to convince you to try something else (not just in terms of languages and libraries - try different databases like Postgresql, MongoDB, CouchDB etc. as well. Working with MongoDB for more than a year also taught me a lot).

Btw: "Scaling" and "performance" doesn't really cut it, since Node.js isn't necessarily faster than other tools, it always depends on the type of application and the developers/admins knowledge.

Thanks so much for your reply. I really appreciate your feedback.

I have been learning things that can add to my current programming practices, and I know that Node.js can be another one of those things. I'm going to implement a little Node.js here and there in my clients projects to start to get the hang of it. I started to learn Ruby through Treehouse, but I just didn't really care for the style all too well. I think if I were to learn another language it would probably be Python.

I keep hearing a lot about MongoDB. I should look into it some more. Especially since I won a startup pack that had a $1000 credit to MongoHQ. I also got a $1000 credit to EngineYard and $500 to to Code Climate, but since I don't develop in Ruby I haven't found a use for them.

Thanks again for taking the time to respond and give me some things to think about. I know if I want to be apart of a startup I am going to need to have a base knowledge of a lot of different technologies. Right now, sticking with what I do best is working, but I think it will only work for so long before I get bored and sick of it.

You're welcome. Sounds like a good plan, keep going! :)
(comment deleted)
Out of interest, what are you working on?

And what did you do to win that competition?

(comment deleted)
One of the projects I had to sign an NDA, so unfortunately I can't tell you. I know, I know, stealth is stupid, but it wasn't my choice. The other project is a web application to help Property Managers find tenants for their vacant units and also help tenants find property to rent, I know it has been done before, but the client has a few ideas for features that he hasn't seen others do.

As for the competition, it has http://www.startuppack.org it was more of a drawing than anything, but I had to submit my application via their API. I won quite a bit of cool stuff and will utilize most of it, but some I won't. I'm just happy to have won, I've never won anything big like that before.

I still prefer PHP / Ruby for a serious application, but, Node JS (Geddy / Express / Meteor / Restify) can make it really quick to set up a prototype UI or API with some Mongo storage.

* One Language : If you're going to be using a whole bunch of AJAX or Websocket style long polling, why not keep as much as you can in one language? Might be easier in the future for training.

* Event Driven : Because you start expecting events and callbacks, it's a different style of organization that you might confuse when working in more procedurally processed languages (PHP).

I understand the whole events and callbacks side of it, which is something I really enjoy about working with jQuery & DOM. It just is a little different for me to think of a server side language that is capable of doing that when I have been developing in PHP for 7 years now.
(comment deleted)