Hacker News new | ask | show | jobs
by pron 4305 days ago
So the hip software stack of 2014 supports no concurrency or very limited concurrency on each and every level. Have people given up on actually using their hardware? Are we content running our software on Pentiums, taking comfort in the fact that we can cram a few of those into a single box?
5 comments

> So the hip software stack of 2014 supports no concurrency or very limited concurrency on each and every level.

NodeJS's asynchronous approach is a concurrency (but not parallelism) approach. Your reference to "Pentiums" (which I assume is intended to be a reference to single-core nodes) suggests that your concern is actually with parallelism rather than concurrency.

But, sure, a not uncommon usage pattern for an IaaS like GCE might be to have lots of single-core nodes cooperating, rather than running individual processes on larger nodes with lots of parallel threads.

So why do you think MEAN became the “hip software stack”? Misinformation?
Excellent question. The MEAN stack certainly doesn't seem to be badly oversold. It is, in fact, usually mentioned as being best-suited for specific types of applications, not as a general panacea.

Then there are the speed/performance tests, which seems to place MEAN at or near the top as compared to the other mainstream web app stacks, which begs the question: is it possible that snide comments about "concurrency" are utterly beside the point? Who cares if my hoopty car looks inelegant if it wins the race?

Well, winning races is nice, but so are things like scalability and reliability. These pages are no stranger to criticism of MongoDB's fault tolerance semantics, or the notorious difficulty it has scaling to sizes as small as, say, 100 gigabytes. Even aside from fault-tolerance concerns, mmap()'d linked lists of BSON documents and a few B-trees certainly have the potential to be a snazzy enough little foundation for some projects, but will only get you so far.
Good stuff. That's what I like. I've got a lot to learn, and it's better if I get real info and not empty rhetoric.

As simply a learning tool for someone who is immersed in a .NET + jQuery stack every day, how does MEAN compare? I disliked Rails, fwiw. And since I'm becoming reasonably fluent in JavaScript, it seemed intuitive that building my own site from the Node-ground up wouldn't be a bad idea, purely for a learning exercise. Struggling through it right now, actually.

Isn't Node.js concurrent, just not parallel?

Can't be much slower than PHP or Ruby, so theres that. What is repelling to me is callback-hell and Javascript as a language in general. People will build simple stuff with this, then it will evolve, and then someone will have to deal with it. I don't want to be that guy.

You can diss Mongo all you want, but you can't say Node.js is slower than PHP[1] or Rails[2] -- it's way faster.

[1] http://www.prahladyeri.com/2014/06/php-vs-node-js-real-stati...

[2] http://www.techhui.com/profiles/blogs/node-js-versus-rails-s...

Thats what I was implying, sorry if that came across differently.
Apologies for misreading you! I can now see you meant that PHP and Rails are so slow that it's hard to be slower :)
The concept is good, even though javascript is awful. I'm more in the direction of a Riak/Webmachine/Ember-Angular-Backbone-Batman-Knockout-Whocares/Erlang stack, though. There are many ways to execute pretty much the same thing as MEAN and avoid Node/Mongo, and new tooling on legacy projects to support the MEAN stack will inevitably also support other methods because that client-services model is so decoupled.
Are you saying NodeJS has no concurrency?
It's really not fair to call single cores Pentiums, I had the dual-core Pentium D once upon a time and the Core 2 was a huge improvement. We're now 4 generations on from the Pentium.