Ask HN: How would you defend Python against Node.js in a SaaS web app?
Some folks at the office would like to use Node.js for a SaaS webapp, which I find extremely useless. We don't except huge amount of customers, and we already have a WebSocket api written in Clojure ( which will change in the future, Node.Js might be a good fit here) .
What do you think Python's biggest strength against Node.js ? First thing that come to my mind is the development speed, great open source projects, tools and huge community, years of experience, etc.. Help me out to support my argument..
All server side code will be in CoffeeScript( if node.js will be chosen )
Thanks
6 comments
[ 2.8 ms ] story [ 22.1 ms ] threadI'm not advocating the use of one over the other for you (personally I'd go with Node because my expertise in it outweighs my expertise in Python), I'm simply stating my opinion that these are not valid reasons to disregard the technology. The Node.js community is bustling, the amount of modules available on NPM are in the tens of thousands, and many open source projects use it (Yeoman, Grunt, Stylus, Jade, Roole, LESS, Bower, CoffeeScript to name a few).
Development speed is likely the most probable of your points, but even so - you can write a Node.js app in CoffeeScript, which you might be more inclined to do since your love of Python is so prominent, and CoffeeScript borrows many ideas from Python, such as significant whitespace and chained comparisons. A manual compile step isn't necessary as this feature can be done by most IDE's implicitly. Express.js also helps big time.
The only reason I would use Python over Node (if I was in your position and actually knew enough Python) would be if the web app in question required intensive mathematical or scientific calculations - Python would shine over Node in that respect.
Realizing that your decision isn't a technical one is the first step in actually having a fruitful discussion. Arguing that you can't use any reasonable technology is just going to turn into a pointless argument.
In my experience 95% of the time the right choice is whatever your team is excited about using. The more excited and motivated your team is the more likely you are to build something good, and that's what really matters.
As a bonus you get the fact that node.js can scale better, though this should not be a huge concern.
Python has a real advantage if you're doing lot's of data analysis / machine learning, as the node.js ecosystem for those applications is nearly non-existent.
(Development speed also includes support, and community willing-ness to help)
Its all well and good selecting a technology because its got a lot of hype at the moment but what happens when you need to support, fix and maintain the code.
Or even better debug the darn thing!