Nearly 10 years ago, Divio made the decision to switch from PHP as the language of choice for our web projects, to Python and Django. Find out why, as we discuss how the future is looking Pythonic.
Daniele Procida
Community Manager
At the time, it was a bold step. It’s true that Python had been around for longer than PHP, while the Plone CMS and the Zope framework had already shown how well Python could work on the web.
It’s also true that Django looked better than anything that had come before. Even ten years ago, Django made PHP look like a ragbag of ill-assorted bits. Its architecture was elegant, its concept was modern and the implementation was of a very high standard. Django was full of promise. But PHP was still in its heyday, and Django was still brand new. Jumping off the seemingly-unstoppable PHP train wasn’t the obvious thing to do, or something we did lightly.
But ten years later, Django has fulfilled its promise and delivered much, much more. Its success has vindicated our early change of direction many times over, and handsomely paid back our investment in it.
We weren’t the only ones and there have been many more since then. Django has continued to become more and more popular, and has gone from strength to strength. More than ever, it’s clearly now the right train to be on.
Part of Django’s success is due to the continued growth of Python, which has overtaken several other languages for popularity and displaced many of them from their traditional strongholds.
It has replaced Perl as a favourite scripting tool. In the sciences, it is taking the place of Fortran; in mathematics, of MATLAB; in university computer science departments, of Java. For general-purpose object-oriented applications, even C++ is giving way to Python.
Just the same trends are evident in web application programming. Python has replaced Java as the language of choice for many large-scale server-side applications, and is rapidly taking over PHP’s status as the language of choice for rapid application development.
It’s with good cause. Python is easy to learn and encourages good practices. It helps make it easy to create maintainable, sustainable code, even in large projects like Django.
Django’s rise has come hand-in-hand with Python’s.
Django inherits Python’s many advantages, and shares the same philosophy that makes it possible to build significant projects quickly, and sustainably. It calls itself the web application framework for perfectionists with deadlines, and it's clear that this isn't idle talk. In Django, the right thing to do tends to be the easiest thing to do.
Unlike PHP, Django and Python don’t have a history of bizarre and alarming security decisions. Unlike Ruby on Rails, Django maintains consistent APIs across versions as a matter of principle. And so on. With each passing month, more and more web projects are being built in Django rather than using other frameworks.
Some Django websites are huge and well-known - Instagram and Pinterest, for instance. Some very large organisations trust Django as a tool of choice: NASA, Google, National Geographic. There’s no shortage of such examples.
At the other end of the scale, thousands of developers and web agencies are turning to Django, typically away from PHP. Like PHP, Django enjoys a rich ecosystem of ready-to-run applications covering everyday needs such as web content management and ecommerce.
These developers and agencies are in the same position we were in ten years ago. The choice is easier for them now: Django’s not brand new any more, it’s well-established and has an excellent track record. Django's now a very safe bet, not a bold choice.
PHP has done a superb job for many web professionals, but more and more are clearly feeling that for them, the future lies in Django and Python.
We’re in a position to help make the transition easier. Our Aldryn cloud is a dedicated Django deployment and hosting platform, built in Python from the ground up. It uses modern containerisation technology (Docker) to make your projects easily portable - there’s no lock-in to the platform - and reproducible anywhere you deploy them, including locally for development purposes.
Aldryn is the first deployment service that makes gives Python projects anything like PHP’s legendary ease-of-deployment. To make the switch easier still, we provide one-click deployment not just of generic Django projects, but of ready-to-go Django sites including applications including django CMS, Wagtail and Oscar Commerce.
We know what moving from PHP to Django entails - we’ve made that journey ourselves - and we know that it can be a significant effort for an agency. We can make that easier too: Divio offers onboarding and training as part of our service, specifically tailored for PHP developers, to get them quickly up to speed with the new technology and give them the best possible head start in the brave new world of Python and Django.