

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

The main reason I read everywhere is scaling, performance, etc.<p>Do you use Node.js? If so, what for?<p>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.<p>Thanks!
======
mbehrendt
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.

~~~
ryhanson
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.

~~~
rayhano
Out of interest, what are you working on?

And what did you do to win that competition?

~~~
ryhanson
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.

------
smileysteve
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).

~~~
ryhanson
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.

------
gauravkumkar
Which big companies or any examples of them who are using node.js, any highly
scalable applications, high performance sites ?

~~~
kayman
linkedin is using node js. <http://venturebeat.com/2011/08/16/linkedin-node/>

