Home » Ready for DjangoCon: Why Dealertrack chose Python and Django

Ready for DjangoCon: Why Dealertrack chose Python and Django

Engineers from Dealertrack will join their fellow Django devotees in a 200-strong community as it converges for DjangoCon, which is now in its seventh year. 

The largest single gathering of Django devleopers will gather in Austin, TX this year, starting on Sept. 6. 

In preparation for our participation – Dealertrack is a proud Gold Sponsor of the event – principal software engineer Gregory Armer reflects on the whys on the adoption of Python and Django at the company. 

He also pays homage to the value of having an open source community, especially when it comes to choosing programming languages and building standards for the company.

Greetings from Austin postcard (Flickr/Philip Kromer)
Greetings from Austin postcard (Philip Kromer/Flickr)

A few years ago we were tasked with coming up with a new technology stack for the refresh of one of our main software products. This was a great opportunity to use a modern programming language and rapid development tooling to take our product to the next level.

We looked at many options including .NET, Ruby on Rails, and finally Python and Django. Here’s what we found.

After extensive research and a few prototypes, we were sold. We found that we could build high quality, automatically tested, functional code in a fraction of the time compared to other languages and frameworks.

Why Python

Python language and site.

Python is an interpreted, interactive, object-oriented programming language that includes modules, exceptions, dynamic typing, high level dynamic data types, and Object Orientated Programming.

It combines remarkable power with very clear syntax and has interfaces to many system calls and libraries. Anything that requires extreme performance, generally not possible in a high level language, can be written in C/C++ using a well defined and documented API.

Python is a great programming language for getting things done quickly and correctly, and the entire ecosystem built around it contains libraries for almost anything you can imagine, from command line tools to face recognition, to big data science.

Due to the massive uptake in the popularity of Python over recent years, it’s surrounded by a knowledgeable, helpful, and expanding community.

This makes finding advice on problems you have incredibly easy.  According to the TIOBE index, Python is the 5th most popular programming language in use, as of August 2015.

TIOBE Index, accessed Aug. 31, 2015.
TIOBE Index, accessed Aug. 31, 2015.

Why Django

Django’s mantra is simple:

The web framework for perfectionists with deadlines.

This embodies everything about Django, developing web applications and was one of the major selling points for us.  Django lives up to it, not only in the core framework, but in the majority of third party libraries and utilities as well.  One of the best examples is Django REST Framework, which we use extensively for building web services.

Django framework and site.

Django’s ORM didn’t support everything we needed; however, we were able to drop in SQLAlchemy which did.

This meant we had to write a bit more code because we couldn’t use the built in integration Django has between its ORM and everything else; however, that was still easier than building everything from scratch.  We’ve even open-sourced some of these integrations, like djangorest-alchemy, which integrates the Django REST Framework with SQLAlchemy.

Open Source

Since the open-source community has been so good to us, we decided to contribute back as much as we can. We set up an internal policy for contributions from all our software engineering team members, and we have open-sourced a few projects already.

  • djangorest-alchemy – Library to integrate Django REST Framework and SQLAlchemy
  • flake8-diff – Run flake8 across a set of changed files and filter out violations occurring only on the lines that were changed.
  • django-rest-framework-braces – Collection of utilities for working with Django REST Framework (DRF)
  • simplepath – Simplepath is a dictionary lookup utility/mapper with performance in mind.
  • skipnose – Nose plugin that allows you to include/exclude directories for testing by their glob pattern.
  • multinosetests – Helper utility to run multiple nosetests suites.

Follow Us

If the above has piqued your interest, and you want more info like this, follow us on Twitter. Interested in joining our team? Check out our openings and please, reach out.