PyCon 2008: State of Django by Adrian Holovaty
Adrian Holovaty took the stage at PyCon 2008 to give a summary of the current state of Django. Jacob Kaplan-Moss also jumped in to answer a few questions. Adrian recapped what major developments have been occurring in the world of Django during the last year and gave brief overviews of the important developments that we can look forward to on the march toward a 1.0 release.
To begin, Adrian touched on the unique role PyCon has played with respect to the realization of Django and the
popularity it has gained. It was at PyCon that they originally started showing the code around and were encouraged
to make it available as open source. They feel that they have a special connection with PyCon in that it is a great time to connect
with the community at large, generate new ideas, and advance the code base via sprints.
It was noted that at last year's PyCon the current Django release was v0.96 and at this time it is still the recent release. In the Django community, it is not uncommon for developers to run the trunk or fairly recent versions - even in production. He acknowledged that in some development cultures, running trunk is frowned upon and that fact alone keeps some companies and developers from adopting Django. The Django developers do not have a hard scheduled date for releasing v1.0 and he apologized to those who work at companies that refuse to adopt Django until it reaches that status.
Reviewing the Last Year
Among the various features, tweaks, and fixes that have been tackled during the last year, three were notable:
- Unicode support throughout. All text data within Django is handled as Unicode now. If any part of the framework gives you text data back, it will be in Unicode format
- Auto-escaping in templates. Data output in templates (ex. {{ somevar }}) will be escaped to convert unsafe characters to HTML entities. This is a safety feature and it alleviates developers from having to remember to explicity escape data that could have come from user input. Of course, there is an option to indicate that a piece of data does not need to be escaped and you can also disable escaping across larger scopes.
- Oracle support was added a few months ago. This should make Django more attractive to enterprise-y developers and obviously for those who use Oracle as their database of choice.
GeoDjango got a nice plug. It is a branch of the Django project that is able to make use of geospatial extensions
so that you can add location or distance based capabilities to your objects. For example, find all objects within
a radius of a particular object or find the geographic distance between two objects. The guys at GeoDjango have
done a great job keeping the branch up to date with trunk. One nice side effect of the great work of GeoDjango is
providing a compelling draw for GIS professionals to invest in both Django and Python.
There were two development sprints in the past year: Sept. 6 and Nov. 11. There will be another sprint at PyCon 2008 following the main conference and starting on Monday. The sprints have been greatly beneficial to the project as a whole in terms of getting features implemented, bugs fixed, and new ideas fleshed out. As of morning, Friday March 14, there had been 2432 checkins to trunk during the past year. Much of that was due to the wonderful support provided by the community.
Some notable sites beneficial to the community were launched during the past year:
- djangosites.org - a directory for listing sites created with Django
- djangosnippets.org - a collection of community contributed snippets, recipes, and patterns
- djangogigs.com - Django based job listings and a place for Djangonauts to list themselves
- djangopeople.net - a site where you can list your location and connect with other Djangonauts in your area
- djangobook.com - the online version of Adrian and Jacob's book. A tremendous learning and reference resource for the community
Coming Soon to a Trunk Near You
QuerySet-Refactor
The queryset-refactor branch represents a major refactoring of the database query logic. If you've ever poked around in Django's internals, you may have come across query.py which is a behemoth of a file. The main focus of this branch is to clean up code, address some deficiencies in the current API and provide the much requested model inheritance capabilities.
Newforms-Admin
The newforms-admin branch is a rewrite of the admin app to utilize newforms. A lot of effort is being made to ensure that the admin provides more hooks for developers so that the admin is more easily customized. Another important aspect of this branch is the decoupling of admin metadata from models. This means the nested Admin class will no longer be used and this will help to promote separation of concerns. One nice feature that will come with this branch is the ability to declare different admin sites on a per model basis. This will provide a lot more flexibility from an administration perspective and make it easier to allow different users/groups to manage various aspects of the site.
One feature on the table that the developers would like to get in for the 1.0 release is model validation. The idea is that models that are instantiated from data should validate that data before attempting a save to the database. Without this important step it is possible for the stored data to lose integrity and get your database into a bad state. Adrian admitted that they don't yet know what the best implementation strategy for this is. Newforms already has a validation layer so there are questions about how much if any of that code should be utilized or if perhaps all validation logic should be refactored out into a cloud that can be utilized by the various pieces of the core. They are counting on the upcoming sprint to help produce a roadmap.
Finally, they made a surprise announcement at the conclusion of the presentation.
<< Back to Unbracketed Home Post a Comment Now 1 Comments Below
Comments
Post a comment
- Markdown syntax is allowed. HTML tags will be stripped.
- CodeHilite NOT supported at this time but coming soon...
- Constructive statements and good attitudes are encouraged - being kind is better than being right



me
whats the big announcement that no one will talk about?