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.
Get more stuff like this
Subscribe to my mailing list to receive similar updates about programming.
Thank you for subscribing. Please check your email to confirm your subscription.
Something went wrong.
I absolutely agree that Django will be the ‘Ruby on Rails’ for Python, but not the killer app. There’s not much by way of alternative frameworks for Ruby.
I liken Python and Django to the way that Java has shown how fragmented frameworks can interoperate through common language.
Django _still_ doesn’t have any Javascript framework integration, so in today’s Web 2.0 world it’s not going to kill anything.
I’ve used them both extensively and I’ll tell you from experience, comparing Django to Rails is a complete joke. Rails is light-years ahead of Django.
Hi Antonio,
I’m not a web developer, I’m a software engineer, and for what I know a very small percentage of web developers is using Python, and not to mention Django. And Rails is almost 5 years old, yes 5, and I don’t see many programmers, web developers, web designers or multimedia developers using it. On the other hand, JavaScript libraries and PHP frameworks are becoming more and more popular. More and more web applications are using Java as the back-end technology, BBC, Google, Yahoo, The Guradian, LinkedIn, etc.
It looks to me that you are emotionally attached to Django, and being attached to a scripting language or framework is never a good thing.
@Greg: While Rails’ prototype and script.aculo.us integration is excellent, some developers still opt to use a different JavaScript library. It’s not as convenient, but it can definitely be done. Similarly, Django is often used with JQuery, despite the lack of integration within the framework’s core. I’ve used both Rails and Django as well, and while I feel that Rails is currently leading in terms of features, Django is perfectly usable for large projects, in my opinion.
@Matt: In North America there are Rails and Django jobs, however outside of Silicon Valley and a few other startup hubs, PHP, Java and even .NET are still far more popular. This is slowly changing, at least on this side of the pond, and should they not become as popular as I predict they will, then they’ll reserve their competitive advantage for those companies who decide to bet on them. I’m more attached to Rails than Django, but being attached to a technology you are passionate about is a good thing in my opinion. In fact, I’m attached in the sense that I believe in it and care about it, but it doesn’t distort my opinion or blindly lead me to build up inflated expectations for it. I know very well what both of their limits are, and of their low adoption rates in many sectors of the industry, especially in the UK/Europe. This will change, it will take a few years, but I believe the situation will improve.
@Matt:
US of A is not the whole world, so you can not say this for sure. Sorry. In continental Europe Python along with Django powers some most popular sites with millions of active users. More and more companies here opt for Java replacement and choose Python for good reason.
Interesting feedback. I also suspect that Google App Engine (GAE) will give Django quite a boost.. I have not been following it that closely but the developers being GAE seemedkeen to support Django.
“Zope is Python’s killer app, Python is Zope’s secret weapon.” – Guido Van Rossum, 2001
(http://lwn.net/2001/features/oreilly2001/GuidoJimInterview.php3)
And now these upstart Django folks are telling everyone about our secret weapon! The nerve!
To be serious though, Django is doing an awesome job at attracting people to the joys of Python web development! I’ve noticed a large upsurge of attendance in the last year or so at the Python user group I attend, the majority from Django people.
“killer app” isn’t quite accurate for Django, at least from the perspective of a Python web developer, since this implies that it’s having a significant weakening effect on it’s competitors in the Python web space. In the early days, I believe Zope stifled Python web development outside the Zope ecosystem to a certain extent – which at the time (early 2000’s) as a Zope developer it seemed like consolidation was a good thing, but in retrospect today I’d say no. So while Django is surging in popularity, on the whole the effect has been more of a “rising tide that floats all boats” and I’d say that the other Python web communities have seen at least some indirect growth from the popularity of Django.
The parallel between Rails and Zope circa 2001 is a closer one in many ways, since both cast a dominant shadow over the web space for their respective languages. But then to compare how these two frameworks were marketed and presented is starkly different, and Django and Rails is a much closer parallel there.
The question I don’t fully understand is, if PHP is considered unduly quick-n-dirty, and Java is considered overly verbose and tedious, and Python and Ruby walk an even middle ground between these two extremes – then why did it take folks so long to realize this and start adopting these languages en-masse for web development? True, Ruby has only been in a mature enough form for the last 5 years or so, but Zope is celebrating it’s 10th anniversary this year and Python has been in mature enough form for over a decade now.
@Kevin: Ruby has been mature for a long time. I was using it years before rails.
Ruby != Rails and Popularity != Maturity.
@Jonno: OK, Popularity != Maturity is good point. I played around with Ruby in 1999 when I was working for Stormix, and we had a Japanese development team who introduced me to it as they were using it for scripting purposes. But Ruby back then was still pretty Japanese language centric, so it’s easier to understand why it’s adoption outside of Japan took a little longer. And I understand that Ruby != Rails, just as Zope != Python (and Django != Python) 😛
There are lots of Python and Rails jobs all around the world and not enough programmers, this is backfiring against Rails. It’s happening in my third world country right now, this is the ultimate obstacle emerging technologies have to face. I don’t know what will happen to Ruby, but Python is used in lots of niches and it’s a very stable technology.
Django will explode next months, in a not so healthy trendy way, and Zope people should stay away if they want to help.
IMO
Pylons is closer from Rails than Django is, much closer…
virtuo, from a technical standpoint this is true. I consider Pylons to be an actual Rails clone.
@Greg_Donald (and anyone else who perceives Django’s “lack” of js/AJAX “integration” gives you a reason for unqualified bitching): Please read the following 2006 post by James Benett from start to finish and take note of certain phrases in bold type ca. two thirds down. And yes, take it very personally:
http://www.b-list.org/weblog/2006/jul/02/django-and-ajax/