Why is Ruby on Rails more popular than Django?

Rick Johnson rantingrickjohnson at gmail.com
Thu Mar 7 11:20:47 EST 2013


On Thursday, March 7, 2013 3:28:41 AM UTC-6, Rui Maciel wrote:
> rusi wrote:
> 
> > Anyone who's used emacs will know this as the bane of FLOSS software
> > -- 100 ways of doing something and none perfect -- IOW too much
> > spurious choice.
> 
> This is a fallacy.  Just because someone claims that "there are 100 ways of 
> doing something and none perfect", it doesn't mean that restricting choice 
> leads to perfection.  It doesn't.  It only leads to getting stuck with a 
> poor solution with no possibility of improving your life by switching to a 
> better alternative.  

Not true. The "one solution" is only poor when the dev team of that "one solution" become resistant to change. But i don't think anybody would agree that a *single* solution could exist for ALL problems (at least not in the early stages of defining a "problem domain'), although a *single* solution could exist for MOST problems.

> Worse, a complete lack of alternatives leads to a complete lack of 
> competition, and therefore the absense of incentives to work on 
> improvements.  You know, progress.

Wrong again. You don't need 10 versions of the same software to maintain evolution. Your premise is that competition between multiple versions of, what is basically the same exact software with TINY difference, creates evolution; WRONG!; competition cannot exist without IDEAS, and it is the presence of conflicting IDEAS that create evolution in software development, NOT fragmentation. 

Fragmenting the pool of great software developers into "zeoltry sects" is slowing evolution. What you do need is a bare minimum of projects that are perpetually open to outside ideas and constant evolution. You goal should be to work towards a single monolithic solution. But you must also keep in mind that the single solution must continue to evolve.

> Choice is good.  Don't pretend it isn't.  It's one of the reasons we have 
> stuff like Python or Ruby nowadays, for example.

Python and Ruby should both be superseded by a language that takes the best from both languages. Python and Ruby are so much alike in so many ways it's really silly. I think the main split point at this time is the "PythonZen vs TIMTOWDI". 

Sure there are some glaring differences in Ruby vs Python methodology, but at the end of the day, An iterator is an iterator, a class is a class, a sequence is a sequence, a mapping is a mapping, a conditional is a conditional, a variable is a variable. Python has list comprehensions and Ruby has Array.[select|collect]. 

But let's investigate a much better example where multiplicity has fragmented a problem domain into OBLIVION, and that domain is Graphical User Interfaces!

Python has tons of them available. How many different versions of a GUI window do we REALLY need. People, a StaticText is a StaticText, a Dialog is a Dialog, a ProgressBar is a ProgressBar, an EditText is an EditText, a Canvas is a Canvas, a NoteBook is a NoteBook, a ListControl is a ListControl; BLAH! 

If we are going to split into "sects", then we should at least abstract away the parts that we agree on, and then collectively EXTEND our selfish versions from that single abstraction. 

Do you people realize how far we could have evolved a single GUI library by now if we were not wasting our time re-inventing the same old widgets again and again just because we cannot agree on minutiae! You would rather fragment the community and slow evolution than to make compromises and produce something greater than the combination of ALL the multiple projects out there? Fragmentation is foolish. We need to focus or energies wisely and work towards a common goal. This is the path of intelligent evolution, not a billion years of naive "dice rolling".



More information about the Python-list mailing list