Frameworks

Introduction

Web applications have become an incredibly important area in computing. Almost every aspect of life can be managed through a web app now - banking, ticket booking, even reporting crimes. A great variety of technologies have appeared around this space, from browser plugins for flashy graphics up to hardware appliances for web server acceleration.

A set of technologies I am particularly intereted in is web frameworks. These are development environments that make it faster and easier to build quality web apps.

Content

Vision

I have a vision for a Python framework of such compelling quality that it sets the standard for the web application framework market. To work out the design for this, I have analysed in details the requirements users of frameworks tend to have. At the highest level, a framework will be judged on three main areas:

A framework that shows some promise to me is TurboGears. This uses a component design, making the framework itself relatively small, while it makes use of existing, high-quality components.

Documentation

Docs & community - long term support

  • "How to" documentation - there need to be walk though documents for achieving most common tasks. This should start with basic "how to develop your first app" tutorials, which will need great detail. More advanced how-to documents can be terser is style.
  • Reference documentation - on the whole, autogenerated API docs can serve this need, provided the API is cleanly designed. There also needs to be an overview document, and overviews for the more complicated APIs.

My Work

SQLAlchemy

  • Progressed MS SQL Server support from basically working to fully supported.
  • Developed basic MS Access support.
  • Initiated autocode and dbcopy.

TurboGears

  • Improved SQLAlchemy support, including changes for SA0.4.
  • Various bug fixes, including avoiding the need for ET() calls using TG Widgets in Genshi templates.

Community

  • Active on SQLAlchemy and TurboGears mailing lists.
  • Presented SQLAlchemy at PyConUK 2007.

© 1998 - 2008 Paul Johnston, distributed under the BSD License   Updated:20 Jan 2008