

ASKHN: Django OR Rails - maheshs

Its not the another language debate, its a decision making discussion.<p>I am a ASP.NET developer, but want to learn other frameworks/language (open source). I don't know from where i should start and why?
Django and Rails both seems promising, but i am confused which one i should choose to start, or i should choose some other framework.
I know learning the language (python or ruby) is must before start Django or Rails.<p>Please advise.
======
michael_scheibe
I've worked with Rails and Django and they are both excellent choices.

As others have said, try some tutorials for each to get a feel.

Django Tutorial: <http://docs.djangoproject.com/en/1.2/>

Rails Guides: <http://guides.rails.info/getting_started.html>

The soon to be released Rails 3 looks excellent, so I would personally use
that over Django 1.2.

Also, the Rails community is a bit more organized as everyone uses GitHub, so
there are some fantastic and well maintained gems that can help you speed
through your development.

Rails Resources:

<http://ruby5.envylabs.com/> \- Great podcast discussing recent developments
in the Ruby/Rails community.

<http://ruby-toolbox.com/> \- Overview of gems by category. Great to figure
out what people are using for pagination or search or whatever.

<http://railscasts.com/> \- Screencasts covering new gems and Rails features.

<http://railsconf.blip.tv> \- Videos from the latest RailsConf, if you want to
get a feel for the community.

Django Resources:

<http://djangodose.com/> \- Good Django podcasts. There is one for the
community stuff, and one for the newest features of Django trunk.

<http://djangocon.blip.tv/> \- DjangoCon, check it out for the same reasons as
RailsConf.

------
huwshimi
One thing to note with Django is that its documentation is excellent. It is
often held up as a model for how good open source documentation can be.

~~~
jpcx01
Rails has since caught up quite well: <http://guides.rubyonrails.org/>

------
stephenjudkins
They're both great frameworks.

Most of the complaints I had about Rails have been addressed by the upcoming
Rails 3. If you're learning Rails for fun, you might as well start using the
Rails 3 beta since there are tons of new goodies in it.

Network effects are very important for these kind of things, so I'd recommend
checking out local user groups for both languages/frameworks to see where
you'd fit in best. It seems a good deal more people in my town (Portland, OR)
are familiar with Rails than Django. Anecdotally, while there are more
Ruby/Rails developers around, their average proficiency is lower than
Python/Django devs. Also, the culture surrounding each framework has a
different vibe.

I don't want to draw too many generalizations, but in my personal view
differences in culture do exist. Getting to know other developers who use both
tools should be an important part of picking which language/framework to use.

Or, learn to use both. It'll be good for you. Knowing the strengths and
weaknesses of each language will make you a better developer, and reduce the
chance of you becoming an--excuse the term--ignorant zealot.

------
AENGINE
Django Why: 1\. Uses Python

2\. Free hosting on Google App Engine (note: to Heroku proponents 5Mb storage
is a joke)

3\. Python is extensible in a way ruby isnt, even OpenCV has a python port

Finally ruby is more popular with hip programmer crowd (HN reading, Latte
sipping, Apple fanbois, with no CS degrees )

While Python is more popular with "gets work done", Googler's and Advanced CS
degree holders (E.g. nearly all top CS departments prefer Python after C++ and
maybe java), you would be lucky if you found someone using Ruby. If you dont
believe me, here is State Of Art OSS in Machine Learning
[http://mloss.org/software/search/?searchterm=python&post...](http://mloss.org/software/search/?searchterm=python&post=)

Finally Since you are from ASP.NET background, have a look at SCALA it seems
to be a nice language and its based on JVM. And twitter started using it after
running in issues with Ruby. (Another reason why Ruby should be avoided,
consider that python was used for Youtube)

------
oomkiller
Both are good. I don't have a whole lot of experience with Django, but the
little that I did use it, I liked Rails better. It seems to me like the
community is much larger and there are more plugins, gems etc. (This may just
be a skewed perception though)

------
alanthonyc
If you're truly looking to learn about frameworks, I would suggest checking
out Flask.

<http://flask.pocoo.org/>

It's a lightweight framework on Python. The author is using it to explore the
basics of building a famework.

I'm a little over a year into using Django now, but what I've learned is
heavily biased towards getting something out the door versus learning the
fundamentals. Because of this, I've started looking into Flask so I can gain
deeper knowledge.

------
boyter
Id say go with the language you prefer. If you fancy yourself a Pythonista
then go with Django. If you prefer Ruby syntax then go with Rails. Both
languages are different to C#, or VB.NET which is where you are probably
coming from so dip into each and follow the path of least resistance.

Honestly when it comes down to productivity there isn't much to be gained from
using one over the other.

I guess one thing that is in Djangos favour are the free out of the box Admin
screens which are truly awesome.

~~~
robosox
Yes. The way you've posed the question is slightly backwards to me. Sit down
and take a crack at learning both Python and Ruby first. Whichever language
you prefer will obviously guide you toward which framework to use.

Another thing to consider is what your goals are here. Is this just learning
for learning's sake, or is there a project you have in mind that you want to
build/prototype? In my experience the differences between Django & RoR are
minor, but your end goals obviously will also help guide you toward one
framework over the other.

------
mhd
Both are very good options. Sooner or later I'd recommend looking at both of
them. Preferably sooner, although you might just skip over most of it. Read
their relevant "Getting started" tutorials (and/or screencasts), and just
follow your hunch about language and its use.

There are other interesting systems, but I think looking at the two "big dogs"
of the open source framework world is always a good start. Let's leave
Nitrogen, Compojure and Hunchentoot for later…

------
fr0man
You might want to work through some ASP.NET MVC tutorials using your language
of choice before jumping into Django or Rails. That will give you an easier
entry point to learning MVC (which is quite different conceptually from
ASP.NET Webforms). Then you can read through some language tutorials and
decide whether you prefer Ruby or Python. ASP.NET MVC is nearly identical to
Rails minus ActiveRecord, so you could easily jump from there to Rails
development. Though if you're going to be developing on a Windows box, Django
is much more of a first class citizen there than Rails. I also had a ton of
deployment problems trying to deploy Rails to a Windows server. Just a tip: no
matter where you dev, don't try deploying to a Windows Server machine unless
you have to. Linux plays much more nicely with both Django and Rails.

Edit: Anyone care to explain the downvoting? I'm not whining; I'm just
genuinely curious. I thought my post was fairly informative, and I tried to
give love to both Django and Rails. I had problems going from C# Webforms to
Rails, partly because I was a noob, partly because I was trying to learn a new
framework (Rails), a new language (Ruby, which is very different from C#), and
partly because Ruby and Rails both have some configuration issues on Windows.
It's nothing you can't overcome, but added all together it made for a very
steep entry to becoming a Rails developer. The OP sounded like he was coming
from a very similar situation to me.

------
tobiassteele
I've been starting with Sinatra instead of Rails, but the documentation is
sparser, and I'm hitting unnecessary walls (is there a Sinatra-simple way to
upload a file sans database?) without finding resources/people who can help.

------
c00p3r
Take a look at Sinatra (<http://www.sinatrarb.com>), and Haml (<http://haml-
lang.com/>) If you will _feel_ that you like this "descriptive" approach (Ruby
is great for creating DSLs), then you probably will like RoR also.

In short, python is clean and very pragmatic, while ruby is nice and
different. ^_^

Personally I think RoR3 is going very fast toward becoming a new J2EE - at
least being equally popular and bloated. ^_^

