Archive for July 31st, 2008

10 Reasons why the new TurboGears 2 alpha is worth a look.

We just cut another release for 1.9.7a3, and it’s even more backwards compatable with TG1.

I occasionally get questions about why we are working on version 2.0 of TurboGears and what it means for users.

  • The ability to retrieve whole graphs of objects in a single query through the ORM
  • Commit entire graphs of object changes back to the database in one step
  • The ability to support multiple databases easily
  • Out of the box support for a powerful web-based interactive debugger
  • Full WSGI support
    • Your app is a WSGI app out of the box
    • You can run multiple TG2 apps in a single process
    • You easily call a any WSGI app from inside TG2
    • You can easily create and add middleware to your TG2 app
  • Easy access to a large library of helper functions in your templates
  • Out of the box support for using Routes to overide object dispatch for unusual URL’s
  • Flexible out of the box caching for pages, intermediary data, etc
  • Improved object dispatch, to better support resource oriented URL’s
  • Support of Dojo, jquery, ext.js, mootools, and other javascript libraries via ToscaWidgets

This means that TG2 apps have more flexibility and can can scale better than TG1, and we’re working on trying to make TurboGears 2 better documented than any other framework. Because we have full WSGI support you can easily mount existing WSGI applications in your TurboGears site, and you can also get things like profiling middleware, middleware that helps you find memory leaks, or any of a whole host of other interesting middleware almost for free.

There’s lots more to be done before we hit 2.0 final, we need to transparently support attomic commits across database boundaries (when the underlying stores support it). We need to make it even easier to build reusable site-components with TG2, and we need to continue to improve the TG2 documentaiton.

But I think we’re making huge progress, and I’m looking forward to the next release. The current plan is to release a 1.9.7 stable release in the next 4-8 weeks, and to release 2.0 (with the above mentioned extra features) later this year.