djangopythonsoftware-developmenttechnology

Why do we bet on Python & Django?

4 min read

Why do we bet on Python & Django?

--

It is no secret that we like open source, and within that space are big fans of the Python and Django ecosystem.

Our team has been working with the stack for almost twelve years (since Django 0.96) and have never looked back once we stepped on its train, coming from a PHP/Perl environment. In these years we’ve become experts in the ecosystem and, quite frankly, we don’t think there is currently a better stack to work with where you can be more productive and create higher-quality software.

Why is that?

The elegance, simplicity and robustness of the Python language are primary reasons why we like it so much. Achieving more with less, resulting in better maintainable code that reads like a novel at times. It has been designed to get out of the developers way, while still maintaining its power and allowing the developer to be really productive. And it runs on pretty much any device.

Also, according to Stack Overflow, Python is one of the most popular programming languages at this moment. And growing quickly! So that means a lot of activity in the ecosystem, as well as a lot of developers familiar with the language.

That means a lot of activity in the ecosystem

This was less the case twelve years ago, and is largely a result of the wide range of use cases that Python is suitable for: web applications, IoT, data science (driven by the Pandas library), you name it. This makes it the go-to language for a lot of software problems.

Django has been around for almost fourteen years already. That’s a long time in software-land. One might think ‘old and rusty’. But we think this is absolutely not the case. And neither does the community, or large companies such as Mozilla and Instagram that bet on Django to build their products with, along with numerous high profile tech start and scale-ups such as Uber.

For us, Django is the go-to tool for web application development. Building API’s, e-commerce sites or data-driven applications that must be highly secure, Django is usually a good fit for us.

Some benefits of Django are:

  • It is a mature Framework based on industry best-practises, that has evolved over the years through countless iterations by the community

  • The documentation is really good, which makes it easy to get started

  • Upgrading Django to new versions is quite easy (though this hasn’t always been)

  • pyTest and Factory Boy make it easy to write tests

  • The security level of the project is world class, just like the patches that are written for Django

  • First-class support for the most mature open source relational database, PostgreSQL

So Django seems to survive the test of time, as it it continuously maintained, improved and expanded. The ecosystem contains countless so-called ‘apps’ that provide you with CMS, Commerce, Error monitoring, advanced queueing, REST API and what not capabilities, that often neatly integrate with each other.

Not to mention first-class support from our preferred cloud provider, Amazon Web Services, with the excellent boto3 library.

First-class support from our preferred cloud provider, Amazon Web Services

Open source contributions

We like contributing to open source projects as well as publishing our own. Since we began, we’ve been quite active, having published 20+ python-based open source projects already.

A couple of projects that might be of interest to you:

Next to our own modules, our team is actively contributing to both the Oscar Commerce as well as Wagtail CMS projects, by being part of the core development teams of both projects since a couple of years.

Conclusion

For us, Python and Django are our primary tools of choice. A great, versatile programming language combined with an excellent Web Framework that is surrounded by an active and mature open source ecosystem.

Will we stay with Python and Django forever? Probably for a long time :-). However not exclusively. Choosing the right tool for the job is not tied to a language or framework. Though Python and Django seem to fit quite often!

For example we recently had to learn Golang to write a Terraform Provider for Commercetools, which is simply not possible with other languages or tools. And having learned Go, we notice this leads to experimenting with the language in other places as well, i.e. high traffic micro services. But that’s something for a next blog post.

Tags used in this article:
djangopythonsoftware-developmenttechnology