oreilly.comSafari Books Online.Conferences.


AddThis Social Bookmark Button

What Is TurboGears (Hint: Python-Based Framework for Rapid Web Development)
Pages: 1, 2, 3, 4

MR: So what took us so long to get to this "full stack" paradigm of web development like Rails and TurboGears? Is Apache losing any footing here?

KD: Well, I think there will always be room for the servers like Apache in the world because it's hard to beat them for serving up static files and things of that nature. As far as application servers like Rails and TurboGears, however, I think lightweight development processes have actually existed for some time with the net-savvy companies like Amazon, eBay, and Google. These companies have all been using languages like Python and Perl internally so I think the idea has been there longer than you might think. But I think there's a real shift happening in corporate America right now with regard to enterprise-level development. They're finally realizing that they don't have to do things that take thousands of lines of XML configuration and tens of thousands of lines of code when they can rely on smaller and more agile frameworks that are just as capable for the common case -- frameworks like Rails and TurboGears.

MR: What advice would you give to developers who are trying to decide whether or not to choose TurboGears or Rails for their project?

KD: There are definitely some trade-offs and I think they go back to the third-party libraries that are available for Python and Ruby. Python has a lot of useful libraries that aren't available for Ruby yet, but Rails has been around longer so, from a documentation perspective, it is better established -- although we're working hard to fix that. I think the other big thing is that TurboGears and Rails have two different styles of doing things and so it also comes back to preference at some point. It's kind of like that the whole Emacs versus Vim argument. The two tools can do the job arguably equally well, but stylistically they are very different. Hence, people might choose one or the other based on their own personal preference and style. TurboGears definitely has a different style than Rails, and for some people, I think that style will definitely appeal.

MR: AJAX has its place in the TurboGears stack, so does that mean that you think it's here to stay? There has been a bit of discussion about that lately.

KD: I think AJAX is here to stay for a while. Browsers are supporting it more and more, and it is something that you can do to provide a much richer user experience than otherwise. It's possible that new standards will come up and newer standards will change the way we do AJAX (remember, it's more of a concept than it is an entity), but for what it does there is really no better alternative right now.

MR: How well does TurboGears perform and scale when compared with the enterprise-level servers like J2EE?

KD: Really, scalability is more about application design than it is about choosing a particular application framework, and that's just one more reason that TurboGears is a very viable choice. As long as you are designing an application in the way that you need it to scale, you should have no problem using TurboGears that relies on a very high level language like Python. Personally, I've done a lot of Java and J2EE development, and I'm much happier working in Python now. I'm able to get stuff done so much more quickly, I fight with the tools a lot less, and it just seems to be a lot more fun overall.

MR: Since you're mostly flying solo on this project, do you use any particular kind of development cycle, or do you pretty much wing it?

KD: TurboGears development is not a solo endeavor, because there are other people leading and contributing to all of the projects involved with TurboGears. For Zesty News, I very much believe in agile development methods. I've done a lot of extreme programming (XP), and so I also believe very strongly in unit testing. In fact, before releasing TurboGears, I actually put together a testing package called TestGears to make unit testing easier. For that matter, I believe very strongly in test-driven development in general. I usually write the tests before the code. I don't need to do, or believe in doing, a giant functional specification beforehand, because I think it is often a waste of time. But I do believe in going through a process similar to XP. So, yes, even working as a single developer I still feel the need for a development process so that I can make sure I'm heading in the right direction and measuring progress.

MR: You're approaching a v1.0 release soon. How long has it taken to get this far, and when can we expect v1.0?

KD: It was really a process that started at the beginning of the year if you count the selection of tools, defining of requirements, etc. I've gone through a variety of different tools throughout the evolution of Zesty News, and in its current form, I'd say that TurboGears has basically existed since July. That was when Bob Ippolito released MochiKit, which was pretty much the last piece of the puzzle. MochiKit is a JavaScript library that helps handle a lot of front-end tasks. It's been nearly 2 months now that I've been spending almost all of my time working on TurboGears, because I want people to be able to easily develop plug-ins for Zesty News.

Naturally, I don't think I can solve all of the world's problems by v1.0. But plenty of useful functionality already exists, and we are already doing a good job of making sure that anything we change between now and then will stay backwards compatible. Changes are being documented, and we are being very disciplined to make sure that people know about changes that have major impacts when transitioning through major versions. We're currently on the fast track to v1.0, but there is already so much useful functionality in there that there is no reason for people to stand by waiting. Forecasting ahead, v0.9 will be out really soon, and v1.0 should be out by the end of the year.

MR: Great. Well, thanks so much for taking the time to chat. You're doing great work with TurboGears and Zesty News. Keep it coming.

KD: Definitely. This has been fun.

The TurboGears Are Spinning Fast

Kevin and the rest of the crew at Blazing Things are making significant progress on a very regular basis, so check the TurboGears website often for new announcements, screencasts, and tutorials. It's really going to be interesting to see how this project continues to develop and the impact that it has on developers and end users alike.

Matthew Russell is a computer scientist from middle Tennessee; and serves Digital Reasoning Systems as the Director of Advanced Technology. Hacking and writing are two activities essential to his renaissance man regimen.

Return to the Mac DevCenter