Django clearly distinguishes itself to me amongst the wide range of available back-end frameworks. Here's why it was an obvious candidate for my toolbox.
Although I'm not religious about the tools I use, I do think it's important to choose the right ones. As developers we use them on a regular basis, impacting both our productivity and happiness.
When evaluating a tool I consider the following:
- Does it do what I need?
- Do I enjoy using it?
- Does it have a strong community and great developer support?
Django easily nails all of these for me.
First of all, Python is my favourite language. Its code is beautiful, it's simple, fast, and very well-supported. And as a multi-purpose language I can potentially continue to use it if I ever decide to work in a specialty other than web development.
This alone restricts my available choices to Python frameworks. Django is clearly the best of them:
- It's feature-packed. Most of the core functionality needed to build a web app is included. This makes development very fast because you don't waste time reinventing the wheel.
- It's popular with great support. Not only is this very important for seeking help, it also means it's not going away anytime soon.
- There's many decent packages for it. This is due to the last point and further supports rapid development.
- Its ORM is super nice. I work with relational databases (PostgreSQL) so this is important.
- Performance is very decent. Thanks to Python it's even comparable to Node.js and isn't something to worry about.
As a fantastic all-rounded framework, Django is suitable for most projects. In fact I'm not sure why I would use something else; it's better to master a few technologies than be average with many.
There's not much else to my reasoning. Choosing your tools can and should be easy.