I dabbled a little with Ruby on Rails earlier this year; However, while the framework is impressive, it still isn’t enough justification for me to pick up a new programming language (and I don’t know what else I would do with Ruby.)

Then I found Django and thought that I had found an answer. I first saw a little bit of Django at PyCon 2005, so I knew that the framework came from roots in real-world production (like Rails.) However, even though Django is written in Python (my language of choice) and offers a similar developer experience to Rails, I couldn’t get into it — it just didn’t feel right for me even though there are a number of people who are excited about Django and it seems to be a solid package.

With Rails and Django off my list I was dangerously close to going back to home-brew code for web prototyping (which isn’t a terrible thing, mind you, but maintaining home-brew takes time away from building other things.) However, after hearing a good review from a friend, I decided to give TurboGears a run this week. TurboGears is yet another development framework designed for agile web development; However, the approach of creating TurboGears is different then Rails and Django. Instead of building a full framework from scratch, TurboGears glues together a well-chosen set of existing open source libraries (all written in Python.) TurboGears uses CherryPy as the I/O layer, Kid as the template engine, SQLObject for database abstraction, and MochiKit for AJAX. Building on existing components brings an interesting strength: each major component already has good documentation and a developer to lead and maintain it! This is an important point, since a lack of documentation often plagues sub-1.0 products.

One of the things that always impresses me about Python is how I frequently find myself looking at a completed piece of code and thinking, “That’s it? That’s all the code it took to solve that problem?” Well, I’ve already had the same experience with TurboGears, where I’ve stopped and thought, “That’s all the code it took to build this site?” Amazing.

To get a feel for what TurboGears is all about, I highly recommend the 20 Minute Wiki demo, which walks through enough features to get you going on your own ideas. The demo really should be seen via the screencast (80MB MOV) though, to really appreciate how quick development is.