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?
1–10 of 28 posts
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?
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?
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)
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/
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.
"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.