Disclaimer: You are looking at a post I wrote some time ago. The information and opinions contained within may be outdated and may differ from my current views. Please proceed accordingly.

Because What We Need is Yet Another Python Framework

Oct 11, 2005 3:45 PM
Tags:

OK, TurboGears looks cool.

But when they say:

For you Python developers who've been looking at Ruby and its Rails web application framework/religion with jealousy: not only is there Django, there's also TurboGears!

I want to yell:

That's why we look at them with jealousy. Because "not only is there Django, there's also TurboGears" and all the other ones covered by Michelle Levesque on her Python web frameworks blog and PyCon presentation: "PyWebOff: Mapping the Python Web Application Frameworks".

From a sorta-transcript of her talk:

Problem: So Many Web Frameworks, scary, intimidating
Enabler: I'll write my own, that'll solve the problem

When ppl keep reinventing the wheel, you block a lot of progress

Comments: Because What We Need is Yet Another Python Framework

But they aren't actually reinventing anything; TurboGears is nearly all glue. It's the particle board of web frameworks ;)

Posted by: Ian Bicking on October 11, 2005 4:46 PM | permalink

I guess I mean it in the sense that ...

Person 1: I've heard good things about Ruby; I want to build this big new website in it, instead of PHP.
(Person 1 Googles "Ruby")
Person 1: Ruby on Rails, it is!

instead of

Person 2: I've heard good things about Python; I want to build this big new website in it, instead of PHP.
(Person 2 Googles "Python")
Person 2: Umm ... let me take a look at Ruby.

which is still better than

Person 3: I've heard good things about Smalltalk / Lisp.
(Person 3 Googles "Smalltalk" or "Lisp")
Person 3: Umm ... all these articles are from the 80's.

;)

Posted by: Joe Grossberg on October 11, 2005 8:26 PM | permalink

I agree with the general point, but I think that developing the 'best' web framework is an evolutionary process for Python, and things will stablize with 2-3 well supported frameworks. I hope ;)

I would like to see TG and Subway develop serapately for a while and eventually merge their best features. In the meantime they are already both improving CherryPy, which is good.

While the Ruby community has certainly benefited from a single framework in the short run, in the long run Python's evolutionary way may produce better results.

Posted by: Max Khesin on October 12, 2005 9:53 AM | permalink

Like I said, it looks cool.

But I think the state of Python web frameworks is out of balance between a diverse array of choices and a shared community focus.

For example, I'm glad there is one major open-source web server (Apache), instead of 100 to choose from.

Posted by: Joe Grossberg on October 12, 2005 11:48 AM | permalink

In just about any industry that doesn't have absolutely huge barriers to entry, there are a small number of big players and many smaller niche players. In software, the barriers to entry are pretty small, so there will likely always be quite a few players.

In Ruby, Rails is the 1000 pound gorilla (it's a very big gorilla). But, there *are* other web frameworks in Ruby. Perl has Mason, but there are plenty of other frameworks for Perl. Python and Perl are both much bigger (usage-wise) than Ruby and will likely support multiple successful frameworks. (Where "success" is defined as having a community that is actively developing it.)

TurboGears exists because Python not only has a bunch of web frameworks... it also has a bunch of persistence engines, template systems, etc. People shouldn't have to go through that whole selection and installation process just to get a typical webapp up...

I don't think there's any need to be jealous of Ruby.

Posted by: Kevin Dangoor on October 18, 2005 5:12 PM | permalink

Err... I don't think I quite finished that...

I don't think we need to be jealous of Ruby because we have multiple viable options and that gives us a good opportunity to select the best tool for the task at hand.

No matter how widely used any particular framework is, there will always be plenty more out there for people who need niche features. (Consider also that Python itself is somewhat of a niche language compared to Java, VB, C# and even PHP, to an extent... and then there are languages like Haskell that are even more niche players.)

Posted by: Kevin Dangoor on October 18, 2005 5:15 PM | permalink

No more comments! Either someone has violated Godwin's Law, I'm tired of the discussion or, most likely, the ten-week window has closed. You can, however, contact me through email.