Related link: http://www.blueskyonmars.com/2006/01/05/frameworks-matter-too/

The more I interact with Kevin Dangoor by reading his blog posts, getting answers to my questions on the TG list, or reading his answers to others, the more I like this guy.

Kevin responded earlier today to Peter Hunt’s post about Python winning the web. The gist of Peter’s post was that we as a Python community are spending a lot of time trying to create the dominant web framework, but we’re not going to win by doing so. We need to look at how we are already winning and focus on that, which is creating a number of not-neccesarily-connected, excellent applications. Peter’s post was pretty mild (opinionated, obviously, but mild) and seemed to be an attempt at genuinely expressing his thoughts. +1 for Peter for taking a potentially controversial topic and handling it quite reasonably.

Kevin disagreed with Peter in the same manner that Peter began - opinionated, but quite rational. +1 for Kevin for responding as he did. Here’s the funny thing, though. I’ve re-read Kevin’s post and he never (other than quoting Peter) mentioned “winning the web”. If I can extract an essence of the spirit of what Kevin replied with, this is it:

But, I like programming in Python. Lots of other people do, too. And I want to have a productive time programming in Python. So, there’s value in a framework like TurboGears.

I like this perspective. I always get the feeling from Kevin that he’s focused on excellence. He doesn’t seem to be out to “win” something. Here is a snippet from his blog post on What TurboGears is not:

If what you want is to pick and choose every piece of the application stack, then the web framework you want is CherryPy or, I guess, one of the other controller frameworks. If one tried to support everything in order to become the web framework “to rule them all”, you’d eventually end up with just Python (or some hideous layer on top of Python) and the current collection of fine components available for Python.

TurboGears is not going to go that route. Here are the overarching thoughts that go in to TurboGears’ evolution:

1. best-of-breed
2. one way to do it

He just seems to be focused on creating an excellent framework for his own use and for the good of the community. I’m pretty sure very little thought went into making TurboGears “better than Ruby on Rails”. And I get the impression that’s not a driving factor now.

Life isn’t always about winning. I think Kevin gets that. I would rather be doing something excellent for the sake of excellence than to be on the “winning team”. If I wanted to be on the “winning team”, I’d probably be learning Ruby right now. But I believe that TurboGears is a truly excellent piece of work which I’m excited about using (and hopefully improving). Maybe one day, the excellence will speak for itself and people will be drawn en masse to TurboGears. But, then again, maybe not. And if not, that’s OK with me. I’ve had a great time with it so far and expect to have a great time in the future.

So, is it wrong to want to evangelize and promote and market and try to gain a dominant share in the web framework space (or any other space)? I really don’t think so. I just think that a proper perspective is helpful. If we have something worth sharing, let’s share it. If we have something excellent, let’s share even more so. And we can hope for wider adoption for the sake of excellence being spread. And we can even hope for wider adoption for the same of building a strong community because that will benefit us as individuals.

I guess what set off this post is that when I hear talk of “winning”, I see the dividing lines being drawn and the religious battle beginning and the “us against them” attitudes rising. I don’t like that. Not a bit. It’s OK with me if not everyone uses the technology stack that I choose to use. They can produce excellence without my technology. A lot of it comes down to preference.

I don’t want to accuse Peter of this politicized “wanting to win”. I’m not sure that’s his intent. I’m guessing he meant that we have something excellent in Python and has a desire for others to see it and use it for the sake of excellence. I think that’s a great attitude. I’m with him if that’s the case.

And I believe that if TurboGears continues as it has, it will continue to draw people to it, because it is excellent.