Have to wonder, why is there no Wordpress, or Drupal, or whatever for node.js?
Node is newer, and has neither attracted a sufficient number of newbie-programmers nor gotten on cheap-1-dolla-no-holla web hosters yet.
If node is this powerful as hyped, it would’ve overtaken PHP already at this moment.
Plenty of languages are more powerful, easier to learn, better written and have more tools/libraries than PHP. If they’re so great and wonderful, they would have overtaken PHP already at this moment.
Or rather, PHP is popular for reasons that have nothing to do with power, easy learning, better written or having more tools/libraries. No reason for Node.js to be able to change that, though who knows, maybe in the future it will, if one-dolla-no-holla hosters start offering it by default like they do PHP now.
Node.js is not ideally for any web application. So it will not overtake PHP. But it is very efficient in handling large number of requests, I/O connections, works great with web-sockets, and comet pulling.
It is an single threaded, event driven, non-blocking language.
That means it does not block I/O connections (Ex. database queries, file read/write, net connections) like other blocking languages (Ex. PHP) does, instead it will register it as an event to the event emitter…
Most languages with any web use have the same ability, either via a framework (Python’s twisted), a module (Perl’s [url=http://search.cpan.org/~mlehmann/AnyEvent-7.04/lib/AnyEvent.pm]Any::Event), or just building from scratch any set of [url=http://en.wikipedia.org/wiki/Green_threads]green threads/greenlets/whatever event loop system floats your boat + workers with a pubsub setup (they get spawned, they do their thing, they die). I don’t know what’s going on in the PHP world but I see above me fretburner’s link to similar things. A language does not have to “be blocking” by default. It’s like saying Language X isn’t functional because people tend to write procedurally in it. If it’s got first-class functions, you can write higher-order (functional) programs in it.
Similarly, I’ve seen people presenting talks showing their Node programs going into Callback Hell, which must’ve been a limit to the V8 engine since ecmascript itself has promisses and stuff already built-in.
I think it may be more like, people who do web programming are used to the once-revolutionary-but-now-common OO style programming, and procedural programming. So those using languages like Erlang tend to be using it because they wanted to do something else in the first place, so for example while you could build a web site/app in Erlang, not many people do it. But then I think it’s a bit of a punch in a language’s stomach to say it’s not necessarily ideal for a web app. More like the particular programmer’s personal preferences and what they’re already familiar with.
I’m sure as more people get into node, for whatever reason, more things like web frameworks will be developed for it, and simply more people will be using it. Hey, it happened to PHP.