People are excited by Node doing numbers like this because there is a massive active Javascript community - with hundreds of thousands of people using Javascript all day every day at work. 0.01% of these people would ever consider learning Erlang, and even if they did they would not be able to use it at work - ever. As with everything having better features means nothing if nobody adopts. I am not saying nobody uses Erlang and I am not saying people are not adopting it - but the number are just not comparable to the Javascript community . Lastly just because you know a but of Javascript I realise that this does not mean you can architect massive real time systems. But it is like WOW even people that play casually aspire to having the best kit or playing for a top guild.
>As with everything having better features means nothing if nobody adopts
Well, it means my product is going to be superior since I went the better, if less well known, architecture. It's not like erlang is a little unsupported side-project of a language, it's actually older then javascript if you count the time period before it was open-sourced, and only a few years younger if you don't, and is used extensively by many industries.
Also, just because javascript the language is more well-known doesn't mean javascript the server architecture is more well-known. I would argue it isn't; when people want a highly concurrent, solid server, erlang is always mentioned.
Lastly, erlang is a pretty easy language to learn. I had the basics down in a day, I had a prototype pubsub server that could handle 50k connections in two. The syntax is a bit strange, and honestly it does get in the way sometimes, but it's not hard.
You're missing the point of Node. You can construct a web rendering application and its AJAX parts in one codebase. You can move fastly code between server and client rendering. etc etc etc.
Probably Erlang is "better". BTW, Java & C are quite fast also. Java applications, well written, do scale. If they don't, they are folks out there specialized to make them scale.
Also, Erlang is probably easy to learn as language. But when you develop a web app, you have enough other skills to keep up with. Let's name CSS for one ;) The human brain is limited in its capacity to remember API and language specifics.
Also, more popular means more libraries, which makes the product in turn better. This is why so many folks turn to PHP. It's not elegant, but everything you need is already here.
Now I won't argue that you may have good reasons to use Erlang for yourself, may it be because you like the language structure, like to write libraries by yourself, or so on. But it doesn't make it "superior", foremost not as a platform.
So your argument is that web developers are too stupid to remember Erlang. Tell that to all those Django developers that have to juggle Python, HTML, CSS and Javascript! They must be superheros! Ruby on Rails developers must be as well!
I never told they are stupid. Rather, I think a simpler environment enables more productivity for the developer. Assembler is hard, some people master it in incredible ways. Does that mean that C is useless? No. Node goes the way of unifying the web stack around JavaScript, I find it a least interesting. The future will tell the rest.
And because of the big community, there probably already are, or will be, more libraries available for it, meaning you have more ready-made blocks to build with.
I don't write this as a "supporter" of node.js, either - I've actually known and used Erlang for the past 8 years on and (mostly) off, and would highly encourage any hacker to have a look at it, because its way of doing things is quite enlightening, and, IMO, is superior to node.js.
Christ, that's some serious bubble effect you've got there. Not only is it possible, it's quite common. Until about 2 years ago the only place javascript ran was in the browser or a handful of experimental projects. And big, traditionally-organized teams often have people who are responsible only for the browser side of things.
Perhaps in silicon valley, but outside it most of us were expected to be a jack of all trades. There may be a specialized DBA, and a designer, but we were responsible for understanding the full stack. The designer worked in photoshop, and the DBA only came in on designing the tables and optimizations, but we were responsible for the real work.
A jack of all trades "might" work, but honestly it depends on the person. Someone who understands the full stack is usually not be someone qualified to be building scalable fault-tolerant pieces of server side infrastructure for a company.
Node.js is so easy to screw up, so difficult to debug, and little things can take down your entire application.
The combination of the language itself in addition to the type of people who typically would choose Node.js over other more proven options would make me worried that a blind choice is being made based on language alone and not proper evaluation or understanding of the other options available.
Personally I believe it is far better to be a language-agnostic company that thinks of different server side components as services, which might be in different languages instead of trying to use a tool just because they know the language already.
If anything I'd say you have it backwards; the kind of structure you describe (and the very phrase "full stack") is a very silicon valley/startup thing. It's larger, more traditional software shops that tend to slice the stack into separate vertical layers and give different people responsibility for each.
Of course there are many companies large and small that do it differently. But having someone whose responsibility includes client-side javascript but not server-side code is not by any means unusual outside the valley, at least IME.
Perhaps I am generalizing based on my experience in Tucson, which is close enough to cross-pollinate with the bay, but most places I worked and interviewed and had friends expected everyone on the team (apart from the DBAs) to be able to touch any part of the stack.
We also tended to have companies with small teams.
The only vaguely plausible rationale I could conceive of for your ridiculous assumption that all client-side javascript engineers would have server-side experience was an underlying assumption that any job in client-side javascript engineering would involve server-side responsibilities.
Evidently this wasn't your actual reason for thinking that, which just leaves me even more bewildered by your position.