Tuesday 24 May 2011

+1 for Node.js

Everybody talks today about Node.js.
I should say that's the coolest thing I've seen lately on the Web.

All my Web projects are in Javascript with Rails backend.
I should say I love Ruby, I love its simplicity and clarity, I love to write code
in it. But (of course) there is a small "but".

But!!!
First, Ruby is still slower than compiled languages and often it matters!
Second, if somebody wants to join my project they need to know both JavaScript and Ruby.

I've been always dreaming about having ruby running inside of a browser instead of JavaScript.
Unfortunately, this is just a dream. The reality is different.
Javascript is coming to the server side to replace Ruby/PHP/Python/Java. I truly believe it will happen soon. It is kind of obvious. Every Ruby Web developer knows JavaScript. Every PHP Web developer - does. Every Python Web developer - does.

Why Node.js?
- It is based on V8 JavaScript Engine (performance ~ compiled language)
- It is event-based framework compared to thread-based (memory savings: 8mb -> 8kb per user)
- JavaScript has some libraries on top (http://jashkenas.github.com/coffee-script/), that makes it fun-to-write similarly to Ruby/Python/etc.

Of course, all these things can be done for Ruby or Python as well (EventMachine, for example).
The strength of Node.js is that it is not bound to some specific community but to all Web developers in general. Which means a lot of libraries to come soon.

To conclude. I give my vote to Node.js. I (as a Javascript/Rails developer) will switch all my rails projects that are in active development to Node.js.