Ask HN: NodeJS for large scale projects

7 points by RSkuja ↗ HN
We are planning large scale and quite complex project with possible 500k or more users(Well u never know) and considering between two development options Python with Pyramid or NodeJS. So my question would be.. Would you call me mad to take NodeJS for this kind of project?

8 comments

[ 4.9 ms ] story [ 36.0 ms ] thread
I wouldn't choose JavaScript language for a large scale project.
Me too, but for me this is just a gut feeling. I guess the OP was more interested in possible justifications for a decision than the decision itself. Can you provide some reasons for what you have said? I would be interested too.

I personally would neither consider Python nor NodeJS for such a project if it was somehow time critical. The reason for this is that I don't know any of those enough to be confident that I could finish the project on time.

So the best advice I can give here would be: If you have a hard deadline that is very close stick with the technology you know better. Otherwise stick with the one that is more fun. I guess that you can resolve any performance problems in both technologies. And when your site starts to take off you probably have to re-write and re-design lots of your code anyway (I don't know where I read this first, but it was a startup that took off).

What i did not mention is that it's gonna be quite lean startup, so time is not that big pressure. And Python/Javascript dev time seems quite equal to me while not on big scale, don't know how its gonna be when I would have to scale it up on Node.
Why Pyramid? Why not Tornado, or better yet Tornado on PyPy (if you don't need any non-PyPy-supported libs)?

http://www.tornadoweb.org/

http://github.com/facebook/tornado

Tornado is Python's best counterpart to Node.js, and was battle-hardened by FriendFeed b/f Facebook bought them. Now used by Quora, among others:

http://www.quora.com/Tornado-web-framework/Who-are-some-famo...

Due to its nature NodeJS is performance-wise still a better solution than any Python-based one, at least for now. And it's async in core and by rule, thus nodejs modules are async too, yet no async-motto is coupled with Python, so it's much harder to get async-ready libs suiting Tornado. Therefore COTS-wise NodeJS is actually also a better solution.

But in the end the most important thing is whether you're more familiar with Python or JavaScript and which solution will be more productive for you. Unless you're going for really large scale project and want to shorten your time by using existing modules, Tornado is obviously as good as NodeJS.

Loosely relevant: http://amix.dk/blog/post/19484#Comet-with-node-js-and-V8

Right, I know the advantages of Node over Tornado/Python, but my comparison was Tornado vs Pyramid, not Tornado vs Node.

Node makes sense for the OP's brief project description, but if you're also considering Python for a "Large scale and quite complex project with possible 500k or more users", why Pyramid and not Tornado?

My advice here is not to plan for premature optimizing and scaling. Between Python, NodeJS and Erlang you have three options to choose from. However, trying to choose between them should basically come down to your personal comfort level and knowledge with each language.

I am just assuming here - but you will probably not reach 500k users overnight, so building on something which can allow you to maintain a good solid codebase would be more important.

NodeJS is still not stable (relatively speaking to Python), but from my own experience and what I have read, it does scale well. What you have to be wary about is some frequent changes to the API etc.

Thanks for good answer, that's what i was thinking. Just had to approve it. Gonna go with python, have good past experience with it and that would be way more safe than risking it with node.