views:

470

answers:

8

Days ago I read something like "Ruby on Rails is for web applications, Django is for standard webpages". Is that true?

I have to decide in the next weeks if I go with Ruby on Rails or Django for an university project. It will be an email marketing software.

What do you advise me to use?

+5  A: 

No that is not true, but however, Django has the built-in Admin back-end making it a great starting point for a CMS or something similar. Django is still very capable for creating complete web applications!

code-zoop
+3  A: 

I presume this is:

Ruby on Rails (i.e. the Rails framework, using Ruby as the programming language)

vs

Django (i.e. the Django web framework, using Python as the programming language)

Both of these frameworks are Model View Controller (MVC) frameworks, so they are both capable of web applications and web pages.

Therefore, your decision is really "Python or Ruby".

Both Ruby and Python are object-oriented languages and are easy to get into... they both have quick-start guides here:

http://www.ruby-lang.org/en/documentation/quickstart/

http://wiki.python.org/moin/BeginnersGuide

I think Ruby has the edge in terms of simple documentation and ease of use - as long as you are happy to abide by the rules that the language enforces (which aren't necessarily a bad thing by the way).

Sohnee
"Both of these frameworks are Model View Controller" - Django prefers to refer to itself at "Model Template View" - see http://docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names
Dominic Rodger
Yes, they like to confuse the terminology, which isn't very helpful. It's the same as MVC, so I will call a spade a spade. The whole point of patterns is that they are a shared language among developers - so calling your implementation "MTV" instead of "MVC" is just awkward.
Sohnee
+1  A: 

Both frameworks are great for what you're trying to do and Ruby and Python are similar in a lot of ways. My suggestion would be to skim through the online documentation for each and go with what feels best for you.

Gdeglin
A: 

Both are great frameworks.

The question is.. Do you prefer (or feel more comfortable, or know better) 'Python' or 'Ruby'? Once you have the answer to this question you also have the answer to the original one.

Truemilk
+1  A: 

First, you need to answer 2 questions:

  • Do you prefer Python or Ruby?
  • Do you need a minimalistic framework, or a more complete one?

As a minimalistic framework in Python, take a look at web.py.

DZPM
+5  A: 

This is mainly because of their heritage - Rails was originally used for web applications like Basecamp, while Django was used to build newspaper/magazine sites.

I would say both have long since outgrown their original purposes however.

zeemonkee
A: 

You can use either framework to create almost any web application imaginable.

If you have no language preference, and you don't have a preference for their different design patterns (Django is nearly not as strict MVC as Rails), then think about the different Python and Ruby libraries/apis out there that could be useful for your project.

Go with whichever language supports those libraries/apis that help you the most.

A: 

In my experience, Rails developers are more likely to work in small, funded startups. Django seems to be the preferred environment for independent consultants building websites for small businesses. If you're picking a language to gain experience, you might keep this in mind.

You'll be spending most of your time configuring, learning the tools, frameworks, and environments. The language itself (Ruby or Python) will not be a big hurdle for you.

Also - Rails is really nice to develop with on a Mac. I don't know about Django tools.

Swards