Live data from Hacker News

Ask HN: Django, Rails or Node.js for a SaaS web application?

news.ycombinator.com

1–10 of 28 posts

Ask HN: Django, Rails or Node.js for a SaaS web application?

#1
I'm a junior-level Java programmer (and CS student) with some SaaS ideas for the Danish market.

I have no experience in web development beyond some HTML/CSS (+ Bootstrap) and some JavaScript.

Which web framework is ideal for developing SaaS applications like Basecamp and Harvest?

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#2
This question is asked a lot. Basically choose the language first then worry about the framework.

There is no magic bullet so use the programming language which you can code the best, faster, easiest in. Framework is second.

Django, Rails, all do the same thing. 90% of the time you are going to be fighting fires, so develop in the language you like.

* You are a java developer why not use a java framework?

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#3
I was a Senior level Java developer and I would suggest Rails. It has the object oriented-ness you are familiar with from Java and a rich set of libraries (gems) as well as a lot of documentation online (railscasts).

SaaS is essentially a CRUD application serving some specific need - Rails is good about letting you focus on what your are building (e.g. the house) and not spending enormous time on infrastructure (e.g. plumbing, wiring, etc.)

Edit: I agree with mattwritescode: it doesn't much matter which one you choose since they all will work. From my experience with Java though, you could spend a lot of time just getting infrastructure working - framework, JDBC, etc. Rails will have that out of the box (maybe Django too)

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#4
Basecamp and Harvest were both written in Rails. For standing up simple SaaS, Rails is a great choice.

However, for a complex SaaS (any SaaS can get here really), you will need to make some sane choices around modularity and building separate, loosely coupled services before things get out of hand. Node.js (or any of its lightweight frameworks on top) is probably a little stronger than Rails in this regard.

This service-based approach is more difficult with Rails as the community hasn't blessed any consistent conventions around doing it. Any custom convention you create to integrate multiple Rails applications will likely break compatibility with future Rails framework upgrades. There are many companies that are paralyzed and stuck on older versions of Rails because they ran into this problem.

All that being said, Java is still a great choice if you make some modern choices and will help you move forward without being slowed down by learning a new framework. Check out the Modern Java Series here: http://blog.paralleluniverse.co/2014/05/01/modern-java/

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#5
They're all ideal -- that's why they're all very popular frameworks. Every day a new company picks one of the three, and whether it succeeds is extremely unlikely to have anything to do with that choice. So just pick the one you feel most drawn to, seems to have the best documentation, etc.

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#6
All three are viable candidates - however because it appears to me like you are trying to learn more about web development, I'm going to suggest node.js, because like it or not, when it comes to the browser, javascript is your only choice for the foreseeable future.

This way you don't have to expend any extra energy on the cognitive overhead of switching between languages when you switch from writing something in the client side app and then something on the server side. To be fair to the other languages, I don't think this is a huge issue in day-to-day development, but from my experience is was an enormous issue when I was trying to learn a new language and I actually had to think about the syntax I was writing.

My biggest suggestion though is not to do it in java and instead expand your horizons - if I plotted my strength of a developer against time on a graph there would be long flat sections interspersed with sharp upward inclines. Those inclines? For the most part, short periods of time when I started working on learning to program in a new language.

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#9
Ultimately it doesn't matter, but.

"Node" is not a web framework. There are web frameworks for it, with varying degrees of completeness. There are lots of moving parts.

Rails is a (more or less) complete ecosystem. There are lots of moving parts.

Django I don't know enough about to speak in any meaningful way. Python-the-language is fine.

Ruby and Python OO will be more familiar to you than JavaScript's version.

You may want to do a client-based app; this means JavaScript. Go ahead and learn that now--it will serve you well, regardless of what you use on the client side. On the server side you have essentially unlimited choices, including Java. Serving JSON is fairly easy in any language.

There are a bunch of other issues to consider as well, like data storage, deployment, etc.

Re: Ask HN: Django, Rails or Node.js for a SaaS web application?

#10
JavaScript is most future-proof. Given that it runs in browsers, servers (Node.js) and mobiles (PhoneGap) I strongly suggest learning the Node ways, as you may find yourself using Backbone/Angular/etc on the client and in-depth knowledge of JS will help. In this day and age you're probably building a single page web app, in which case 99% of your code will run in the browser.
Post reply on HN