Clunky code is the mother of invention. It was the PHP of the early 2000s and its painfully demonstrable shortcomings that spurred Adrian Holovaty and Simon Willison to find a new way to create web applications in a demand driven industry.
Both men were developers working in Lawrence Journal-World, a media company operating in the American mid-west . What they came up with was the Django framework developed in Python. It was released into the wild in 2005.
According to Willison, both developers have a high regard for Python and wanted to start developing websites in the language.
But at the time none of the other Python frameworks offered them what they were looking for. So they wrote the Django library from scratch.
After they’d written Django they did find other Python frameworks that offered what they were originally looking for but of course the deal was already sealed and there was no incentive in going back and incorporating external code into their framework.
Django is a web framework that aims to help you build websites fast. Its founders needed to build robust websites that supported the news business operations at LJWorld Newspapers. They worked in a hectic office with tight deadlines. The Official Django website claims that when using the framework you “can take Web applications from concept to launch in a matter of hours”
On top of this Willison and Holovaty needed a web framework that could scale and offer stablity as well. According to the Django FAQs the framework has: “weathered traffic spikes of over 50 thousand hits per second”.
It has become popular with big industry names like Disqus, Instagram, Pinterest, and Mozilla. Udemy, a US global e-learning marketplace developed its platform using Django. They’ve set up a global engineering centre in Dublin, putting Ireland on the Django world map.
It comes with virtually everything an out-of-the box web app framework needs. This includes: ORM (object-relational mapping layer); a template library, a forms library; an URL dispatch mechanism; an administration interface and other support libraries and useful applications.
The major benefit of Django is its ability to scale. This is achieved in part with its “shared nothing” architecture (SNA). SNA is an idea that conceives the nodes in a distributed computer system as being independent and self sufficient.
There’s no sharing of computer resources between the nodes. Instead servers in the system are dedicated to resources like memory or databases.
Django’s cache framework is one such dedicated server, a cache server. This enables each additional hardware node to add optimally to the scaling process. The load balancer in front of the node cluster can distribute load to the back-end nodes as traffic increases.
However, despite its success in some ways Django concedes ground to that superstar framework, Ruby-on-Rails, which is from the same generation. Rails offers more automation of tasks for developers whereas in Django they need to be defined by the developer.
Although, according to Rick Grehan, a contributor at Info World and a software professional who also works for Oracle, Rails included Django’s own XSS (cross-site scripting) security feature in Rails 3.0.
This automation is one of the reasons for Rails’ popularity and its popularity creates a positive feedback loop because it has a bigger community that offers more support to newbies, which, in turn, attracts more people to Rails.
That said, anyone specialising in the Rails Framework will find it more of a struggle to get out of the web developer career silo compared to Python and Django aficionados.
Given the demand for web developers this will be a restriction easy to live with. Django and Python specialists however, while maybe not enjoying the superstar status of Ruby developers, have a wider range of career options with its greater versatility. One such applicability is the emerging big data industry.
This applicability will ensure Django’s persistence in the future of software development, an industry that’s changed faster than any previous. Entire industrial sectors disappear after only a few years or change beyond recognition and the technologies that are tied to just one model risk becoming old time tech overnight as well: in ICT only the versatile will survive.