A couple of weeks ago Django 1.0 was finally released. In the software world version numbers can be rather arbitrary, but this announcement electrified the usually quiet community. Hiding behind the 1.0 label there are thousands of bug fixes, code refactoring of crucial components, compatibility with Jython 2.5, and the addition of impressive features such as GeoDjango which adds GIS capabilities to the framework.
Above all, the release of a 1.0 version implies that we can now rely on a stable API. So far most Django developers adopted the trunk version of the framework in production, because a lot of the desirable new features were not available in 0.96. The introduction of Django 1.0 is a fundamental stepping stone, and one I’m sure will lead to even more developers giving Django a chance. It will also facilitate the adoption of the framework within the enterprise, which is rarely keen on the idea of working with the edge version of a 0.x framework.
Matz is often quoted as saying: “Rails is the killer app for Ruby”. There is no doubt that likewise, Django is the killer app for Python. As Django matures and gains further worldwide acceptance, employing Python for web development will become an increasingly common reality, repeating to a certain extent what Rails did for Ruby.
Admittedly, the parallel doesn’t fit perfectly as Ruby on Rails has an overwhelming market share amongst Ruby frameworks, while in the Python community there are a few big contenders (and Zope was the first widely adopted Python framework). But it’s clear to me that Django will bring the popularity of Python on the web to a whole new level, and together with Rails, they will be the two major frameworks for developing web applications, at least in the open source field.
These two frameworks will continue to benefit from this popularity, and indirectly so will their respective languages and communities. Finding a Ruby or a Python job outside of the realm of Silicon Valley startups will not be seen as having won the job lottery, but instead the norm. And we’ll suddenly realize that the paradigm shift of the first decade of the 21st century in the programming world didn’t come from the adoption of multi-core processors, but rather from a focus on web applications and the consequent rise to fame of MVC frameworks like Rails and Django. Whose existence is only possible thanks to open source, dynamic and highly expressive languages such as Ruby and Python.