3 ms·
I don't think that his remarks about Rails and Django should antagonize you. What motivated me to explore node.js is precisely the fact that I started to spend
by 9oliYQjP 15y ago
I don't think that his remarks about Rails and Django should antagonize you. What motivated me to explore node.js is precisely the fact that I started to spend more and more of my time outside of Rails trying to push the envelope. Things like Cappucino from 280north showed that more and more of a web app was happening on the client and the server was being relegated to a fancy HTTP wrapper for a database.
His remarks about what node.js does well could be applied to just about any thin HTTP wrapper for Ruby, python and any other language. Rails and Django are still very productive if you're making dynamic websites. For web apps however, simply from a latency perspective it makes sense to push more stuff down to the client. At that level, you're looking at JavaScript frameworks of some sort being a far superior solution to the kind of thing that happens in Rails like this...
http://railsforum.com/viewtopic.php?id=47404 http://railsforum.com/viewtopic.php?id=47404
That's not to say Rails or Django suck, but web apps have been pushed to the next level. Rails was developed back when web apps meant more of a dumb terminal style system, with the server driving the display of the clients. Today web apps are more like 1990s style networked PCs where a fat client communicates with a server but the UX is driven client side.
There is no reason you can't write ruby or even Rails code that does this. But you'll have a ton of JavaScript (or Coffeescript or fill in the blank with something that compiles down to JS). Most frameworks treat this stuff as secondary to writing server side views and controllers, because it used to be, back when AJAX just meant dynamically update my drop down list.
EDIT: I forgot to add that Express makes the mistake of trying to apply Rails/Django/Sinatra style to node.js. Don't use node.js this way, it won't work well as just using the aforementioned frameworks.