User: Password:
Subscribe / Log in / New account


Enter TurboGears

October 25, 2005

This article was contributed by Matt Gushee

The hottest new thing in Web development these days is TurboGears (TG), a "full-stack" Web development framework implemented in Python with model-view-controller as its key design principle. Development is proceeding rapidly: the first public release, 0.5, appeared on September 17, and the product has since gone through several iterations and now stands at version 0.8a4. It might seem an impossible pace, but TurboGears is not so much a new product as a new assembly of existing products. As the project Web site puts it:


TurboGears takes the best components available and combines them into one easy-to-install, documented whole. TurboGears includes parts that join the pieces together and make them work together seamlessly, but doesn't obscure each included project.

The meaning of "full-stack" is somewhat in the eye of the beholder, of course. But by most standards, TG does a good job of providing for all tiers of a typical Web application. Its major components are:

an Object-Relational Mapping (ORM) library
a lower-level Web application framework with a built-in HTTP server
a templating system that embeds Python code in well-formed XML documents
a rich but lightweight JavaScript library that supports asynchronous HTTP requests

Additional components provide support for unit testing, XML document navigation, form validation, and conversion between Python data structures and JavaScript Object Notation (JSON). Third-party extensions have started appearing, too, like the CatWalk model browser.

At first glance, TG looks a lot like Ruby on Rails. Certainly, the projects are similar in their goals and high-level architectures. And it is fair to say that TG is largely inspired by Ruby on Rails--but there are differences. For example, TG comes with built-in support for JavaScript Object Notation (JSON); combined with asynchronous HTTP requests, this facilitates AJAX development--or perhaps we should say "AJAJ"--by substituting a simpler data format for XML.

The templating systems are also significantly different: Kid templates consist of well-formed XML (often XHTML in practice) with Python embedded in attributes and element content, while Rails uses Embedded Ruby (ERuby), which uses non-XML tags to embed Ruby in (X)HTML or other text files.

One of the most important differences, however, is in the ORM layer: the ActiveRecord package used in Rails provides an object layer over an existing database, whereas Python's SQLObject also allows the database to be generated based on Python objects.

This is not to suggest that TG is superior in every respect. Rails has a "scaffolding" feature, which automatically generates CRUD (Create, Retrieve, Update, Delete) operations. There is also an ActionMailer package which provides e-mail services for applications. In other words, while TurboGears and Rails have many similarities, they are far from identical.

Beyond the differences in features, there remains the highly subjective matter of language choice. Even if TG were simply a clone of Rails, surely it is a wonderful thing that developers can implement architectures in the language of their choice. Isn't that what open source is all about? And the community appears to have ample energy for creating and maintaining Web frameworks.

To my mind, what really stands out about TG is the clear vision and the sense of competence that its developers are communicating. There are many technically sound and interesting Web tools available, but they often suffer from poor documentation and worse marketing. While its feature set is highly attractive in itself, it is the project's superior presentation that makes it likely to attract a broad following.

Additional Resources

Comments (2 posted)

System Applications

Database Software

MySQL 5.0 released

The first MySQL 5.0 production release is out - click below for the full announcement. This major release adds a number of SQL features (views, stored procedures, triggers, etc.), some new storage engines, and more. The what's new page has more information.

Full Story (comments: 2)

MySQL 4.1.15 has been released

Version 4.1.15 of the MySQL database has been released. "This is a bugfix release for the current production version."

Full Story (comments: none)

PostgreSQL 8.1 Beta 4 available

Version 8.1 Beta 4 of the PostgreSQL database is available for testing.

Comments (none posted)

PostgreSQL Weekly News

The October 23, 2005 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL database discussions and resources.

Full Story (comments: none)


EasyBMP Version 0.70 Released with New License (SourceForge)

Version 0.70 of EasyBMP has been announced. "EasyBMP is an easy cross-platform C++ library for reading and writing Windows bitmap (BMP) files. No installation, no need for external libraries, small in size, well-documented, and simple enough for the novice programmer to start in just minutes! EasyBMP particularly shines as an easy image input/output tool for scientists and other technically-minded people who may not be formally trained in programming". Changes include bug fixes, a change to the revised BSD license, and more.

Comments (none posted)

Web Site Development

PHPSurveyor 0.99 Released (SourceForge)

Version 0.99 of PHPSurveyor, a set of PHP scripts for developing and publishing online multi-question surveys, has been announced. "PHPSurveyor 0.99 is the culmination of 12 months of development and bugfixing for PHPSurveyor since the "stable" release of 0.98. The package has undergone significant changes and enchancements, however - importantly - can still be installed over the top of most existing 0.98final installations and upgraded without losing data. This is labelled a "stable" release, indicating that the recent months have been dedicated to bugfixing rather than the development of new features."

Comments (none posted)

Xaraya 1.0.0 RC4 Released (SourceForge)

Version 1.0.0 RC4 of Xaraya has been released. "We are pleased to announce that our release candidate for the Xaraya 1.0.0 web application framework is now available. This release candidate addresses compatibility issues with php versions 4.4 and some 5.1 versions, as well as important bug fixes."

Comments (none posted)

Assessing Web App Security with Mozilla (O'Reilly)

Shreeraj Shah discusses the process of finding security vulnerabilities in web applications in an O'Reilly article. "The nature of web applications is very different from that of standard applications. Many times, these tools miss key vulnerabilities in the application. The best way to perform web application assessment is by using the unassailable combination of automated tools and human intellect. This article examines the LiveHTTPHeaders project, which fits seamlessly into Mozilla browser components to facilitate very effective web application assessment."

Comments (none posted)

Web Services

Constructing Web Services with the Globus Toolkit Version 4 (O'ReillyNet)

Birali Hakizumwami works with the Globus Toolkit on O'Reilly. "Grid computing allows you to combine processing, storage, databases, and other resources across a network, hiding the details from callers. As Birali Hakizumwami shows, the Globus Toolkit makes this easier by exposing the grid as a normal web service."

Comments (none posted)

Desktop Applications


Twenty-sixth release of PythonCAD available

Release 26 of PythonCAD has been announced. "The twenty-sixth release includes a few interface enhancements. More of the menus can be activated from the keyboard, and stretch/move operations now accept entry box values when performing either task. A significant amount of work has been applied to the internal routines used for storing the entities in a drawing, the result of which required numerous changes throughout the code."

Full Story (comments: none)

Calendar Software

Nightly Builds of Lightning Now Available (MozillaZine)

Nightly builds of Lightning, a calendaring application for Mozilla Thunderbird, are available for testing. Dan Mosedale's blog has more information on the software: "Thanks to the magic of Chase and Coop, there are now nightly builds of Lightning for all three platforms. Note that these are not quite ready for day-to-day use yet (there are still known dataloss bugs, UI issues, and crashers). However, if you'd like to play around, help us test, give UI suggestions, or have a taste for getting involved in the development, this is a great way to get started."

Comments (none posted)

Data Visualization

Veusz 0.8 released

Version 0.8 of Veusz (Velvet Ember Under Sky Zenith) has been announced. "Veusz is a scientific plotting package written in Python (currently 100% Python). It uses PyQt for display and user-interfaces, and numarray for handling the numeric data. Veusz is designed to produce publication-ready Postscript output."

Comments (none posted)

Desktop Environments

X11R6.9/X11R7 Release Candidate 1 ready for testing

New release candidates for the X11 window system have been announced. "We are pleased to announce the availability of the first full Release Candidate (RC1) for the upcoming X.Org Foundation release of X11R6.9 and X11R7. This release marks the completion of the development cycle for the modular source tree. We have tagged both the monolithic and modular trees and have prepared tarballs for you to test."

Full Story (comments: none)

GNOME 2.13.1 Released

GNOME 2.13.1, the first development release on the way to 2.14, is out. See the TwoPointThirteen page for details on what's happening with 2.13.

Full Story (comments: none)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at

Comments (none posted)

KDE Software Announcements

The following new KDE software has been announced this week: You can find more new KDE software releases at

Comments (none posted)

Financial Applications

GnuCash 1.8.12 released

GnuCash 1.8.12 is out. This is, according to the developers, the last of the (GNOME1-based) 1.8 series; the first GnuCash 2 pre-release is expected sometime in December.

Full Story (comments: 6)

Instant Messaging

Gaim development (GnomeDesktop)

GnomeDesktop covers the latest developments on the Gaim instant messaging client. "A lot of you have noticed that while we typically release every three weeks, we haven't had a release in a while. We've shifted all our efforts to finishing Gaim 2.0.0. Gaim 2.0.0 has a ton of great features, fixes every problem you've ever had with Gaim, makes drastic changes to huge parts of Gaim---especially status, includes three new protocols, and does a bunch of other amazing stuff."

Comments (none posted)

Mail Clients

Sylpheed 2.1.4 (development) and 2.0.3 (stable) released

Development version 2.1.4 and stable version 2.0.3 of Sylpheed, an email client, has been released. See the news file for change information.

Comments (none posted)

Medical Applications

ClearHealth RC2 Released (LinuxMedNews)

Release Candidate 2 of ClearHealth, an Open Source medical suite with practice management, patient care and billing capabilities, has been announced. "After a long testing and packaging cycle RC2 is finally available. This release is has numerous fixes, enhancements and entirerly new features."

Comments (none posted)

OpenEMR adds UB-92 support (LinuxMedNews)

A new release of OpenEMR has been announced. "OpenEMR uses FreeB for electronic billing and SQL-Ledger for practice accounting. Recently Rod Roark of Sunset Systems has added UB-92 support to OpenEMR. OpenEMR is a full featured electronic health record using the classic LAMP (Linux, Apache, MySQL, PHP) architecture."

Comments (none posted)

Music Applications

Jackbeat 0.5.4 announced

Version 0.5.4 of Jackbeat, a Jack Audio Connection Kit compatible drum machine, is out with bug fixes and other improvements.

Full Story (comments: none)

Office Applications

Gnumeric 1.6 Released (GnomeDesktop)

Stable version 1.6 of the Gnumeric spreadsheet has been announced. "Over the past year we have improved Gnumeric's charting, its accuracy, its xls file loading capabilities, and improved its rich text editing. Our Win32 build is now quite stable and very usable."

Comments (none posted)

Office Suites 2.0 released

The 2.0 announcement has gone out. There is a lot of new stuff in this long-awaited release, including OpenDocument support, improved PDF exporting, a reworked interface, and some performance improvements. It can be grabbed from the download page. There is an ooo-build 2.0 release available as well. (Thanks to Frankie D).

Comments (11 posted)


Maxima 5.9.2 released

Version 5.9.2 of Maxima, a computer algebra system written in Common Lisp, is out. "It features case-sensitivity in the parser, improved documentation, improvements to some function packages, new add-on packages, an improved TeXmacs interface, new kinds of plots, and more."

Full Story (comments: none)

Data Munging for Non-Programming Biologists (O'Reilly)

Amir Karger and Eitan Rubin use Perl to manipulate biological data. "Have you ever renamed 768 files? Merged the content from 96 files into a spreadsheet? Filtered 100 lines out of a 20,000-line file? Have you ever done these things by hand? Disciples of laziness--one of the three Perl programmer's virtues--know that you should never repeat anything five times, let alone 768. It dismayed me to learn that biologists do this kind of thing all the time."

Comments (none posted)

Video Applications

avidemux 2.1 step 3 released

Version 2.1 step 3 of avidemux, a graphical tool for editing video files, is out with new features and bug fixes.

Comments (none posted)

Web Browsers

The future of Galeon (GnomeDesktop)

FootNotes is carrying a report from the GNOME summit on the future of the Galeon browser. The Galeon developers have decided to join up with Epiphany, implementing Galeon's special features as Epiphany extensions. "This seems an optimal solution for everyone; it allows us, the galeon developers, to avoid duplicating work with epiphany team, it will allow users to leverage the best from both browsers and most importantly, it puts galeon on a much firmer footing for the future that is not so much at the mercy of our ability to find time to hack on it."

Comments (18 posted)

Minutes of the Staff Meeting of Monday 10th October 2005 (MozillaZine)

MozillaZine has announced the availability of the minutes from the October 10, 2005 staff meeting. "Issues discussed include development, marketing, the Devmo launch, the Web 2.0 conference, the LinuxWorld London expo and personnel."

Comments (none posted)


Speedometer 2.0 released

Version 2.0 of Speedometer, a Python-based bandwidth and download monitor, is out with miscellaneous improvements.

Full Story (comments: none)

Languages and Tools


This week on harmony-dev

The October 16-22, 2005 edition of This week on harmony-dev is out with coverage of the Harmony open-source Java project. "This week most of the discussion was about the boot jvm, but there were some other issues too. One of the shorter discussions was in the thread "ANN: gjdoc 0.7.6 released": David Gilbert asked what's left to to before 1.0.0, and Julian Scheid replied that it's mainly bug fixes for the first major release."

Full Story (comments: 1)


Urwid 0.8.9 released

Version 0.8.9 of Urwid, a curses-based UI library for Python, is out with several new features and some bug fixes.

Full Story (comments: none)

Dr. Dobb's Python-URL!

The October 26, 2005 edition of Dr. Dobb's Python-URL! is online with a new collection of Python language articles.

Full Story (comments: none)


Ruby Weekly News

The October 16th, 2005 edition of the Ruby Weekly News looks at the latest discussions from the ruby-talk mailing list.

Comments (none posted)

Ruby Weekly News

The October 23rd, 2005 edition of the Ruby Weekly News looks at the latest discussions from the ruby-talk mailing list.

Comments (none posted)


Dr. Dobb's Tcl-URL!

The October 24, 2005 edition of Dr. Dobb's Tcl-URL! is online with the latest Tcl/Tk news and resources.

Full Story (comments: none)


Microformats and Web 2.0 (O'Reilly)

Micah Dubinko explores microformats in an O'Reilly article. "Micah Dubinko's new column, XML Annoyances, begins this week with a look at the role of microformats, particularly with regard to Web 2.0 applications and services, as the core XML-specification era comes to a close."

Comments (none posted)

Page editor: Forrest Cook
Next page: Linux in the news>>

Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds