TurboGears

TurboGears は、Python による Webアプリケーションフレームワークである。MochiKit、SQLObject、CherryPy、Kidなどの、基礎となるコンポーネントの上に構築されている。

概要 
TurboGears は 2005 年、いまだにリリースされていないZesty Newsという製品の背後のフレームワークとして、Kevin Dangoor によって作られた。

2008 年 2 月現在、TurboGears はメーリングリストに 3000人以上を抱え、2006 年にPrentice Hallから書籍が出版され、多数のオープンソースおよびプロプライエタリの TurboGears アプリケーションが実際に配置されるなど、大規模で健全なコミュニティを持っている。2008 年の PyCon で TurboGears 2 のプレビューリリースが期待されている。

TurboGears は Struts や Ruby on Rails のようにmodel-view-controller アーキテクチャを元に設計されており、Pythonによる Web アプリケーションの開発をより簡単でメンテナンスが容易なよう設計されている。

TurboGears のコンポーネントには下記のものがある。

 SQLObject  Model として利用 - データベースや多数の既存のデータベースサーバとのインターフェイスを作成可能なデータバックエンド
 Kid  View として利用 - XHTML フロントエンドのテンプレートエンジンで、すべてのテンプレートが妥当な XHTML ないし XML ファイルで、テンプレートを検証や設計が簡単なシンプルなXHTML ファイルとして開くことができるように作れられている。また、Python のスニペットを XML 的な方法で埋め込むための機能も提供されている。
 CherryPy  Controller として利用 - (TurboGearsでは)テンプレートに対してデータを返却するイベントハンドラを記述することでWebアプリケーションをプログラム可能にするミドルウェア。同じデータをJSONデータストリームとしてAjax的な方法で取得することもできる。
 MochiKit  は TurboGears の付属的な部分で、JavaScript によるプログラミングをよりPythonicに(Pythonらしく)するための JavaScript ライブラリである。JSON データストリームを非同期的に取得するインターフェイスを提供するため、もっぱらAjax機能を実現するために使用されている。

テンプレートプラグイン 

Kid 以外のテンプレート言語もプラグインシステムを介して使用することができる。現在、Cheetah、Django、Genshi、Jinja 向けのプラグインが存在する。複数のテンプレートエンジンを同じアプリケーション内で使うことも可能である。

TurboGears の特徴 

2007 年 1 月、Kevin Dangoor がプロジェクトリーダーを引退し、現在 Alberto Valverde が彼の後継者としてプロジェクトを運営している。 

TurboGears 2.0 に向けて開発が始まっており、2.0 ではSQLObject を SQLAlchemy に置き換え、Kid を Genshi に置き換えることを目標としている。これらのコンポーネントはソフトウェアの他の部分と密結合しているため、特にデータベースのフロントエンド "Catwalk" に関して、既存のコードベースを多数書き直す必要がある。

2007 年 6月、TurboGears のコミュニティは、TurboGears API をPylonsで使用されているコンポーネントとプロトコル上に移植する実験を開始した。また、二つのフレームワークがやがて一つになるのではないかという予想もある。

関連書籍

Ramm, M (Nov 7, 2006). Rapid Web Applications with TurboGears, Prentice 
Hall. ISBN 0132433885

参照

関連項目
フリーソフトウェア
Pythonを使っている製品あるいはソフトウェアの一覧

外部リンク
 
 TurboGears Blogs
 TurboGears google group
 TurboGears screencasts and related videos
 TurboGears from start to finish

ウェブアプリケーションフレームワーク
Python