Django or Ruby-On-Rails

Django or Ruby on Rails

I kind of like the Python language
better and it seems to be more
full-featured than Ruby for
statistical, scientific and networking
(let me know if you think this is
wrong).

If you think you'll need libraries like NumPy or SciPy, probably best to stick with python/django. I've struggled to find ruby equivalents.

However, the RoR community seems to be
much bigger

Bigger is of course not going to be better. I've had great experiences with the django community in terms of support, and the pluggable app ecosystem is maturing quite quickly.

I would also add that I find the django documentation to be very easy to follow.

Django or Ruby-On-Rails?

My best answer is for you to learn both.

Consider this your end goal, and instead consider your question as, "Which one should I learn first?"

I recommend that you start with Django, especially if you have Python experience. Django's approach, like that of Python itself, is more condusive to learning. Once you've gotten your feet wet, learn Ruby on Rails, because that's the framework that will net you easier cash when you get out into the modern Web 2.0 workforce.

Once you're thoroughly familiar with Ruby on Rails and have been working for a bit, continue learning Django. Refamiliarize yourself with the basics, then start to learn some of the more advanced stuff. Django's inner guts are supposedly easier to dissect than that of Rails. If you ever find yourself faced with a job opening with a surprisingly novel and challenging web platform to implement, you'll find your Django knowledge quite handy.

Here's a bulletized rundown:

Django

  • Great documentation
  • Thorough tutorial to ease you in
  • Fewer files to understand at first (vs. scaffolding in Rails)
  • Built on Python, which you might as well know anyway
  • More similar to enterprise stuff like Java Servlets/JSP
  • Easier to dig into its innards

Ruby on Rails

  • It's what's hot
  • Hot means more jobs
  • You want money, don't you?
  • When you want to make a "traditional" web 2.0 site, its generated code lets you get done really fast
  • Integration with JavaScript libraries
  • Built on Ruby, which you might as well know anyway

Verdict: Django first (do the tutorial), then Rails, then Django again

Faster Development Rails or Django?

Without experience in either one, with only two weeks to deliver a product, I would choose neither. If you have limited time, you need to leverage what you already know. It would take you two weeks just to get comfortable in either environment. Rails and Django are both popular and make it easy to accomplish a lot with a little time because of the number of details that are done for you in the background, without you having to think about it. If you don't know what those details are, you're not going to be able to leverage the power of either platform, and you're going to end up with a codebase that is a tangled mess of code that you don't need and is going to impact maintainability.

I do take issue @knutin's comment about the ease of deployment with Rails. That might have been true a few years ago, but today a Rails app is pretty easy to deploy even on a naked server, and if you plan on deploying on heroku its even easier. As far as I know there isn't a platform for django apps that offers anything like the scalability or ease of deployment that heroku and rails offers.

if you're dead set on doing one or the other, I'd recommend rails with the use of formtastic for generating your CRUD forms. Formtastic offers far more flexibility than the built-in Rails scaffold generators do, so you can go back and make things better while still using them.

Lastly, if you're determined to use something despite a learning curve, I've heard a lot of good things about hobo though I haven't yet used it on a project. You may find it easier to get started with than straight-up Rails.

Is the Lift framework as easy as Ruby on Rails or Django?

I'm currently working on a series of projects in lift, so I'll give my personal experiences.

Its a very capable framework - and I find it makes lighter work of application development than the equivalent in rails or django. However, you will need a reasonable understanding of scala in order to get started on sophisticated app development as documentation is existent but limited, and not centralised.

Lift itself has cherry-picked a lot of features from existent frameworks - rails and django included - to form, imho, a best of breed framework. It also uses some novel techniques of its own that truly mean you can take a frontend and build an application around it relatively quickly.

Following the tutorials, you can create the classic "todo" application demonstrated by many frameworks with little to no experience within 2-3 minutes. But I would say that you need to have a reasonable knowledge of Java, and an understanding of scala in order to get the most out of lift.

Setting up a comfortable development environment isn't exactly painless, due to spotty scala support in the mainstream IDEs.

If you have a weekend you can dedicate to getting started and reading the book I would highly recommend taking the plunge.

As a more direct answer to your question, in terms of "ease", I would say that if you are unfamiliar with Java, scala, ruby and python, then of the three, your best bet would be rails - as ruby is a beautiful language, nigh on self-explanatory, well documented, introduces the majority of OO concepts, and is very easy to learn. Additionally, I know of many people that have actually learned ruby solely through developing in rails.



Related Topics



Leave a reply



Submit