Ok, everytime I read about Node it's usually made clear that is perfect for websocket type of apps that can network and have multiple users interacting between each other. So, in this case Myspace, seems to me like a regular app/site that does normal operations. So, Hopefully someone can explain to me if Node is also being considered as a replacement to the popular backend languages to build regular sites?.
Node is great if you have a JS heavy team, and want to have one language to rule them all... and potentially share logic using something like Browserify.
In our experience on Vidpresso, we started out with a Node app... however for the core app we found that Rails' productivity gains outweighed Node's sharing of logic, etc. With a bootstrapped team, Rails' maturity just made Node seem like not a good idea. (Django would be fine too, but one of our core guys has done rails forevs.) We still use Node as a critical part of infrastructure, but now it's relegated to message bus / socket.io-ey stuff. (Talks with rails via redis pubsub.)
So yes, you can totally do your entire stack on Node... but you have to make a lot of decisions. If you're someone like TJ (the guy behind express) and you're comfortable making lots of decisions yourself, it's extremely great.
FWIW for Node noobs, Express is just like Sinatra. There are higher level frameworks, but none that has really 'run the table' like Rails or Django.
Well that is not really a problem with Node itself. Are there any framework like Rails for Node? Then makes ( or try to make ) all the best options for you?
Tower exists, but the issue is that unlike express, which runs Learnboost, there aren't any Node users who both a) want to build their for-profit application on Node while b) being willing to write their own framework.
I mean, I don't really know what you call "normal". Is normal serving up a static blog? Is normal serving up non-realtime content? Is normal small scale?
I don't know about you, but I don't really don't know what "normal" is anymore. Express (and many other newer web frameworks) have really shaken up the landscape. It's not Apache vs. Dynamic webapps, it's much more than that.
Express is less of a different web framework suited for realtime and more of a different way of thinking about what a web framework is. The paradigm and platform it's built upon happen to make realtime a natural feature, but by no means is that the only thing express is useful for.
Express (and indeed, most any other sufficiently mature and flexible framework) is as versatile as you make it. Please don't pigeonhole Node :)
Node (with or without Express) works great for normal websites. People used to always argue it was only really good for realtime collaboration or networking stuff, but with the amount of frameworks etc. in npm and elsewhere that is not true anymore.
I like doing Node.js and front end using things like CoffeeScript (and maybe Jade etc.). Also there is LiveScript which is an awesome option that I would like to get into.
It can be. Have you tried Trello, Geekli.st, Klout, Prismatic or Clipboard? They're all Node too. It's had frameworks for developing web applications for some years now.
Nobody said anything about successes. The question was whether anyone was building regular websites (as opposed to just websocket/API stuff) with node.
Thats great , its been several days since I posted this question and based on these great answers I decided to start learning it, so far so good. I got the book "node.js applications with mongo.db and backbone.js" , since I have messed with mongo and php before, seemed like a good idea.
For some reason, Node was initially associated with real-time apps. This isn't really valid.
But you _really_ need to know Javascript. The level of language proficiency required to make an app with Node/Express is probably higher than with Django or Rails. I found it very productive once the initial hurdles were crossed.
> The level of language proficiency required to make an app with Node/Express is probably higher than with Django or Rails.
Let me add my thoughts: Yes, you need to be good at JS and Node.js but to get there is easy. Maybe these thoughts about JS and that you have to be really good at it come because most of the people who know JS are rather people who fiddle from time to time with JS in the frontend using jQuery doing some DOM stuff (like me before). So, yes you need to know more than that.
But: to get there is from my point view much easier than getting good with i.e. Ruby and Rails. Just because you can build a blog in 15 minutes doesn't mean you can program with Rails after 15 minutes. Ruby is heavy (and not consequently more innovative than JS), Rails is ultra heavy with all the conventions you have to learn. In contrast, JS is a sophisticated, modern language and understanding its core concepts can take a while but in total it's more compact regarding the knowledge you have to learn. After getting into JS you need maybe one or two days to get into Node and Express. And little things like the npm surpass the rvm/rbenv/Bundler struggle by far (npm just works, period). Alone the npm is worth trying Node: its elegant design paired with Node's modularity are unmatched.
I was much earlier productive than with Rails since Node/Express forces you to think yourself about structure and this makes your more powerful, more smarter -- and just faster. Instead of learning convention after convention you just think about how to code which is much more fun as well. Besides, JS' built in data structures (in particular JSON) and design patterns are amazing and showed me that classic OO maybe isn't aged but very often overcomplicating simple things (the web is not all about CRUD and even then Node is a great answer).
Since I don't know Python/Django very well I can't draw a comparison here.