Need a compelling argument to use Django instead of Rails

R

Ray

I just moved to another company that's mainly a Java/.NET shop. I was
happy to find out that there's a movement from the grassroot to try to
convince the boss to use a dynamic language for our development!

Two of the senior developers, however, are already rooting for Ruby on
Rails--although they haven't tried RoR themselves. When I suggested
Django, they went like, "what's that?".

I said, "It's like the Python counterpart of RoR".

"Nah, we're not interested in Python."

I think they are already predisposed to RoR simply because of RoR's
visibility (i.e.: at my workplace everybody knows RoR but nobody knows
about Django unless they've used Python as well). So far the arguments
I can think of:

1. The investment of learning Python will be a good investment because
it transfer to platforms that we've already supported, i.e.: JVM and
..NET CLR (using Jython and IronPython). Ruby's availability on this
platform is not as mature--JRuby is still at 0.9 and I don't think
IronRuby is coming out anytime soon :)

2. Python is a much more mature language than Ruby--it's been around
since ages ago and as such has a lot more tools, articles, and other
resources than Ruby. It is also the language being used by
high-visibility company like Google, with the creator of the language
himself working there.

3. Python emphasizes readability instead of cleverness/conciseness.

4. What else? I haven't tried RoR so I can't argue meaningfully on
whether using Django will put us at an advantage.

Can you help me with my argument? Meanwhile I think I'll give RoR a try
as well.

Thank you,
Ray
 
S

Steve Holden

Ray said:
I just moved to another company that's mainly a Java/.NET shop. I was
happy to find out that there's a movement from the grassroot to try to
convince the boss to use a dynamic language for our development!

Two of the senior developers, however, are already rooting for Ruby on
Rails--although they haven't tried RoR themselves. When I suggested
Django, they went like, "what's that?".

I said, "It's like the Python counterpart of RoR".

"Nah, we're not interested in Python."

I think they are already predisposed to RoR simply because of RoR's
visibility (i.e.: at my workplace everybody knows RoR but nobody knows
about Django unless they've used Python as well). So far the arguments
I can think of:

1. The investment of learning Python will be a good investment because
it transfer to platforms that we've already supported, i.e.: JVM and
..NET CLR (using Jython and IronPython). Ruby's availability on this
platform is not as mature--JRuby is still at 0.9 and I don't think
IronRuby is coming out anytime soon :)

2. Python is a much more mature language than Ruby--it's been around
since ages ago and as such has a lot more tools, articles, and other
resources than Ruby. It is also the language being used by
high-visibility company like Google, with the creator of the language
himself working there.

3. Python emphasizes readability instead of cleverness/conciseness.

4. What else? I haven't tried RoR so I can't argue meaningfully on
whether using Django will put us at an advantage.

Can you help me with my argument? Meanwhile I think I'll give RoR a try
as well.
I wouldn't waste your time. "A man convinced against his will is of the
same opinion still", and they already know they aren't interested in
Python. There are probably many other matters about which they are
uninformed and equally determined.

http://sethgodin.typepad.com/seths_blog/2005/08/i_changed_my_mi.html

regards
Steve
 
R

Ray

Steve said:
I wouldn't waste your time. "A man convinced against his will is of the
same opinion still", and they already know they aren't interested in
Python. There are probably many other matters about which they are
uninformed and equally determined.

Well the thing is that I have to admit I have some stake in this. If
we're using Rails then everybody's starting from 0. Whereas if we're
using Python I already know it so I'll have an easier time :)

Also, those are just two developers. Convincing the big guy, the
decision maker, is a separate matter isn't it?

Do you know of any other arguments, or you do think that for somebody
who really, really doesn't care about which language, either RoR/Ruby
or Django/Python will do just fine?

Cheers
Ray
 
S

Sybren Stuvel

Ray enlightened us with:
Two of the senior developers, however, are already rooting for Ruby on
Rails--although they haven't tried RoR themselves. When I suggested
Django, they went like, "what's that?".

I said, "It's like the Python counterpart of RoR".

Bad answer. Now they think they'll get the same thing they already
have with RoR, but that they'll have to put more effort into it.
"Nah, we're not interested in Python."

Ask them why.
I think they are already predisposed to RoR simply because of RoR's
visibility (i.e.: at my workplace everybody knows RoR but nobody
knows about Django unless they've used Python as well).

Which means most of the people saying "we're not interested in Python"
do so without proper reason, since they don't know the language.
1. The investment of learning Python will be a good investment
because it transfer to platforms that we've already supported, i.e.:
JVM and .NET CLR (using Jython and IronPython). Ruby's availability
on this platform is not as mature--JRuby is still at 0.9 and I don't
think IronRuby is coming out anytime soon :)

Jython isn't up to par with current Python versions either.
2. Python is a much more mature language than Ruby--it's been around
since ages ago and as such has a lot more tools, articles, and other
resources than Ruby. It is also the language being used by
high-visibility company like Google, with the creator of the
language himself working there.

That is _definitely_ true. The behaviour of Ruby hasn't even properly
been defined.
4. What else? I haven't tried RoR so I can't argue meaningfully on
whether using Django will put us at an advantage.

Check out the admin you get for free with Django. Add/edit/delete
controls are easily done with RoR, but Django comes with a mature,
easy to use, on-the-fly generated, customizable admin. The form
handling is also excellent.

Sybren
 
S

Steve Holden

Ray said:
Well the thing is that I have to admit I have some stake in this. If
we're using Rails then everybody's starting from 0. Whereas if we're
using Python I already know it so I'll have an easier time :)

Also, those are just two developers. Convincing the big guy, the
decision maker, is a separate matter isn't it?

Do you know of any other arguments, or you do think that for somebody
who really, really doesn't care about which language, either RoR/Ruby
or Django/Python will do just fine?
Well, my view is that both are frameworks, and so you will inevitably
"run out of steam" at some point if your implementation plans become too
ambitious. The impression I get is that Rails is relatively inflexible
on database schemas, and once you get "off the beaten track" it gets
difficult to cope with complex existing databases.

regards
Steve
 
R

Ray

Thanks Sybren for the reply! Regarding this point:
The form handling is also excellent.

Is it excellent in a way that's "better" than RoR in certain ways?

Regards,
Ray
 
R

Ray

Steve said:
Well, my view is that both are frameworks, and so you will inevitably
"run out of steam" at some point if your implementation plans become too
ambitious. The impression I get is that Rails is relatively inflexible
on database schemas, and once you get "off the beaten track" it gets
difficult to cope with complex existing databases.

Hi Steve,

Thanks for the reply! Regarding "running out of steam", well... we've
been using Struts + Spring + Hibernate on the Java side, so yeah, we're
quite used to molding our code to fit frameworks :)

Cheers
Ray
 
D

David Cook

Jython isn't up to par with current Python versions either.

But the last release is up to the level of C-Python 2.2 or so. I don't
really feel like I'm missing that much with it.

Dave Cook
 
R

Ray

David said:
But the last release is up to the level of C-Python 2.2 or so. I don't
really feel like I'm missing that much with it.

You mean the alpha? They're rushing for a beta now that'll bring Jython
to 2.2, I hope it'll come out soon. But yeah, compared to IronPython
(2.4 compliant, halfway to 2.5 even), it's pretty behind. But things
are changing the development seems to be picking up speed again!

Cheers
Ray
 
S

Sybren Stuvel

Ray enlightened us with:
Is it excellent in a way that's "better" than RoR in certain ways?

Wouldn't know. I just know it's excellent :)

All I know about RoR:

- What you can see in the "20 minute wiki" video tutorial.

- What I was told from a professor in formal languages, which is
that there is no formal definition of the Ruby language. That's
enough for me to not use it.

Another reason for me not to use Ruby, is that there is no distinction
between those two lines of code:

x = somefunc
x = somefunc()

For those that don't know Ruby: both lines will call the somefunc
function and store the result in 'x'.

Sybren
 
P

Paddy

Ray said:
I just moved to another company that's mainly a Java/.NET shop. I was
happy to find out that there's a movement from the grassroot to try to
convince the boss to use a dynamic language for our development!

Two of the senior developers, however, are already rooting for Ruby on
Rails--although they haven't tried RoR themselves. When I suggested
Django, they went like, "what's that?".

I said, "It's like the Python counterpart of RoR".

"Nah, we're not interested in Python."

I think they are already predisposed to RoR simply because of RoR's
visibility (i.e.: at my workplace everybody knows RoR but nobody knows
about Django unless they've used Python as well). So far the arguments
I can think of:

1. The investment of learning Python will be a good investment because
it transfer to platforms that we've already supported, i.e.: JVM and
.NET CLR (using Jython and IronPython). Ruby's availability on this
platform is not as mature--JRuby is still at 0.9 and I don't think
IronRuby is coming out anytime soon :)

2. Python is a much more mature language than Ruby--it's been around
since ages ago and as such has a lot more tools, articles, and other
resources than Ruby. It is also the language being used by
high-visibility company like Google, with the creator of the language
himself working there.

3. Python emphasizes readability instead of cleverness/conciseness.

4. What else? I haven't tried RoR so I can't argue meaningfully on
whether using Django will put us at an advantage.

Can you help me with my argument? Meanwhile I think I'll give RoR a try
as well.

Thank you,
Ray

Ruby does not have doctest :)

- Paddy.
 
A

aaronwmail-usenet

Steve Holden wrote:
....
I wouldn't waste your time. "A man convinced against his will is of the
same opinion still", and they already know they aren't interested in
Python. There are probably many other matters about which they are
uninformed and equally determined....

This is too true. Fortunately progress proceeds
slowly nonetheless. For example C++ is much
less used these days where it is totally and
catastrophically inappropriate than in years past
-- maybe because the true C++ boneheads have
been promoted or are retiring... Nevertheless I was
recently told by a new grad that I should translate
one of my (working, no problems) python apps to
C++ because C++ is "a higher level language."
But I'm sure he'll fall in line with the next stream
of lemmings rather than sink into the tarpit with the
dinosaurs.

-- Aaron Watters

===
Paradigms shift when the old guys retire. -- Kuhn (?)
 
J

John J. Lee

Sybren Stuvel said:
- What I was told from a professor in formal languages, which is
that there is no formal definition of the Ruby language. That's
enough for me to not use it.
[...]

So you're not using Python either?

Probably I don't understand what you're getting at, but the Python
language reference had big gaps in it last time I looked (though
Fredrik Lundh has been working on updated documentation -- I'm sure
he'll do a great job). Lots of features were just not in there.
Certainly lots of details e.g. regarding the various special method
protocols (especially when it comes to builtin types) are not
documented. ISTR the core maintainers of CPython aren't even that
worried about the grammar productions listed in the reference manual
being 100% accurate. CPython and Jython (ignoring the fact that
Jython's still on 2.1) have some fairly significant differences in
various details of the language. No doubt IronPython will too. Of
course, this is not something unique to Python, and I guess Python
does very well in comparison, when it comes to actual practice.


The fact that "open classes" are apparently thought to be a good thing
in Ruby puzzles (and worries) me.


John
 
J

John J. Lee

Steve Holden said:
Well, my view is that both are frameworks, and so you will inevitably
"run out of steam" at some point if your implementation plans become too
ambitious. The impression I get is that Rails is relatively inflexible
on database schemas, and once you get "off the beaten track" it gets
difficult to cope with complex existing databases.

I get that overall impression of Django too (as being more tightly
coupled to itself, hence less flexible, when compared with TurboGears
in particular). I haven't done much with it yet, though (and
presumably the 'magic-removal' branch landing did some good).

What do you make of the rest of Django (aside from the DB stuff)?

It's a shame TurboGears doesn't yet have a solid "out of the box" CRUD
admin interface as Django.


John
 
J

John J. Lee

Ray said:
I just moved to another company that's mainly a Java/.NET shop. I was
happy to find out that there's a movement from the grassroot to try to
convince the boss to use a dynamic language for our development!

Two of the senior developers, however, are already rooting for Ruby on
Rails--although they haven't tried RoR themselves. When I suggested
Django, they went like, "what's that?".

I said, "It's like the Python counterpart of RoR".

"Nah, we're not interested in Python."
[...]

It's the herding instinct. Hard to argue with that mindset.


John
 
Y

Yannick

Hi,

A few months ago I had to choose between RoR and a Python framework
(TurboGears in that case). I picked TurboGears because of the language
maturity and all the third party libs. i.e. I can do PDF reporting with
reportLab, control OpenOffice with Python..
Ruby has still a "cool factor" going with it, but give it 2-3 years to
become mainstream and another language will be the new cool thing to
program with..
 
J

Joe Knapka

John said:
The fact that "open classes" are apparently thought to be a good thing
in Ruby puzzles (and worries) me.

This objection strikes me as having the same
nature as, "Python's lack of strong protection for
class members puzzles (and worries) me". The Pythonic
answer to that objection is usually that this is a
feature: it lets people who know what they're doing
solve problems more easily than if they had to work
around a bunch of "helpful" protection.

Classes are effectively open in Python, too, at least
where methods are concerned, since one can do
klass.__dict__["myMethod"]=myMethod.
Though admittedly, it isn't widely advertised as a
feature of Python.

It makes sense to me to think of open classes as being
open for extension, not modification. After all, methods
added by clients are unlikely to depend on
implementation details (though I suppose they could, to
which I would say, "Don't do that").

Steve Yegge's "Opinionated Elf" is an example of a problem
that is very easy and elegant to solve with open classes,
and painful to solve when classes are closed:
http://www.cabochon.com/~stevey/blog-rants/polymorphism-fails.html

Cheers,

-- JK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,898
Latest member
BlairH7607

Latest Threads

Top