The first question we ask ourselves when we approach a new project: is Django really the best option here? Even if a client is sure that the answer is confirmative. To be more certain about it, we decided to do a research on that. We wrote a script that would gather all the Django sites on the Internet (yes, we do not choose easy ways:) ) and analyse the list we receive. By this time the script is still processing and the final results will come later.
So we started with 5 popular sites on Django that everyone knows and we had a proof that they are currently working on Django Framework.
Yes, this source of selfies and food photos was developed in Django.
Why? Instagram developers claim that choosing a technology, they were guided by three principles:
Keep it very simple.
Don’t re-invent the wheel.
Go with proven and solid technologies whenever you can.
It’s perfect for social networks:
- Because Django allows working efficiently with a big amount of data, here it has many images, apparently.
- It can help to manage a large number of users and provides easy interaction between them.
- It works well with other technologies.
Read more what Instagram developers share about their technologies.
2. The Washington Post
Few people know that initially Django was created to develop online editions. No wonder, the most popular newspapers have Django websites. Some of them benefit from certain advantages of Django, like The New York Times, which is mostly built on pure Python and basically uses lots of other technologies. Such newspapers as The Washington Post have their site with Django backend. This is how its developers explain their choice:
- sites on Django handle high traffic loads;
- providing efficient and fast performance;
- ability to contribute to the framework so it meets one’s own specific needs (for instance, one of its first developers Adrian Holovaty (nice to come across Ukrainian surnames so often:) ) was an active contributor to Django).
Disqus also faced the problem of scalability, like Pinterest, but it continued with Django and found another way out of this problem. They’ve managed to achieve 8 billion page views in 2013. And even when they needed to handle 1.5 millions concurrently connected users, 45,000 new connections per second, they also did it with Django.
Again, they point out such benefits of Django:
- availability of ready solutions. However, they also stress that one needs to develop within “Django" philosophy to have it function well;
- again, a wide community;
- and thus easiness to find good specialists.
They’ve also managed to benefit from Django, providing different smaller side services and after they extended on “How they do it when it isn’t Django”, which means how they used different technologies to make them get friends with Django. They moved back to Django, mainly because of its wide community and yes, due to the fact that they’ve already worked with it.
Now we’ll move from globally popular sites to rather popular ones in certain circles. For instance, Zapier gained its glory in the business world. This service helps to connect various similar services into one. For instance, one can save G-mail attachments to Dropbox or create a Trello ticket from his calendar.
An interesting fact is that you can also validate that Zapier is running on Django by just opening their admin login page. It shows a default Django interface for the admin panel.
From the development perspective, it’s a really fascinating one:
- it connects different sources (via APIs) and enables quick collaboration between different sources of information; 141 APIs have been added to Zapier by January 2014;
- what is more, it enables performing different actions by means of the service without switching from one app to another;
- it enables work with a big amount of data for thousands of users.
The choice of Django was based on familiarity, according to the article by Bryan Helmig. They just chose the technology they were acquainted with. Thus, they basically chose Python/Django before working for Zapier. It should be mentioned, Bryan states that Ruby, e.g., would not be a worse choice. However, nobody has proved his point in practice:)
By the way, Zapier also turns to ReactJS and even prepared a small tutorial for those who also consider it a good choice. So do we.
Bitbacket also doesn’t hide its roots, you can see Django admin panel on https://bitbucket.org/admin/
This article shows its developer had fallen in love with Django much earlier than the development of Bitbucket started.
However, this love continues till now. Which means it’s a true love and not the love of the kind “I was lazy to find something else, and you’re ok”. Why is that so?
- Its developers claim that it wouldn’t be for the Django’s wide community which keeps it fit and up to date.
- Moreover, one doesn’t need to pay for all the apps separately, such as URL mapping.
They’re also grateful for Django’s having so many ready parts for them to use, rather than developing from scratch. That’s why they had such a short turn-around time.
Concerning the drawbacks of Django, they point out its problems with “Group by” (yes, we’ve been there too:) ) expressions and a lack of flexibility in ORM usage.
At first glance, it may seem that much more sites were successfully developed on Django. They present head rushing figures with a number of users so that everybody is rushing to use Django only and nothing else can be efficient when it comes to complicated functionality.
Let’s slow down and gaze more attentively at these sites. At last I’ll feel a little how it’s to be a myth buster.
Pinterest is not the best example of Django usage (I can hear some myths bumping into the wall). Its developers even claim that if they started the development now, they would have started from Flask again. And yes, they have. Since 2012 Pinterest has been running on Flask (according to its developers' answers). Its developers claim it to be much simpler than Django, and in their case made the platform more lightweight.
Another myth turned out to be even crueller to me. I've googled looking hard for the information about how the New York Times site was written on Django. I still wonder how this myth spread on the Internet as I failed to find any information about Django usage (Pinterest was at least first developed on it). This powerful site uses a lot of different technologies, actively Python, but it must be mentioned, also Ruby on Rails. It does have some parts on Django. Its developers, for instance, obviously adore Geodjango. They've even developed The Other Races, a special app that provides the election data from different states. In general, I can't but get amused with the work of its developers when I review this site. They are not just a powerful magazine site, but also a learning tool, providing a lot of sideapps. However, this is a proof of Python’s coolness, not Django’s. By the way, they do have an informative blog: I guess it will be useful for the developers who want to be confident when they choose this or that development tool for their projects.
"Code." DjangoSuccessStoryBitbucket – Django. Web. 15 Dec. 2015.
"Code - Open Blog - The New York Times." Code - Open Blog - The New York Times. Web. 15 Dec. 2015. http://open.blogs.nytimes.com/?_r=0.
"How Disqus Went Realtime with 165K Messages Per Second and Less than .2 Seconds Latency - High Scalability -." How Disqus Went Realtime with 165K Messages Per Second and Less than .2 Seconds Latency - High Scalability -. Web. 15 Dec. 2015.
"How Zapier Uses Mailgun to Send Emails." Mailgun Blog. 18 June 2015. Web. 15 Dec. 2015. http://blog.mailgun.com/how-zapier-uses-mailgun-to-send-emails/.
"Learn How Disqus Does 'It' When 'It' Isn't Django." YouTube. YouTube. Web. 15 Dec. 2015.
"News & Events." Django in Use at Washingtonpost.com. Web. 15 Dec. 2015.
"Scaling Django to 8 Billion Page Views." Scaling Django to 8 Billion Page Views. Web. 15 Dec. 2015.
"Scaling Pinterest - From 0 to 10s of Billions of Page Views a Month in Two Years - High Scalability -." Scaling Pinterest - From 0 to 10s of Billions of Page Views a Month in Two Years - High Scalability -. Web. 15 Dec. 2015.
"The Zapier Tech Stack." The Zapier Blog. Web. 15 Dec. 2015. https://zapier.com/blog/zapier-tech-stack/.
"Websites Using Django | Five Q | Blog | Five Q." Websites Using Django | Five Q | Blog | Five Q. Web. 15 Dec. 2015.
"[EuroPython 2014] Adam - How Disqus Is Using Django as the Basis of Our Service Oriented Architecture : Free Download & Streaming : Internet Archive." Internet Archive. Web. 15 Dec. 2015.
"What Is the Technology Stack behind Pinterest?" - Quora. Web. 15 Dec. 2015. https://www.quora.com/What-is-the-technology-stack-behind-Pinterest-1.
"Would Pinterest Consider Flask in Place of Django If It Were Starting Today?" - Quora. Web. 15 Dec. 2015.
"Zapier Overhauls Developer Platform." TNW Network All Stories RSS. 15 Jan. 2014. Web. 17 Dec. 2015. http://thenextweb.com/insider/2014/01/15/app-automation-service-zapier-overhauls-developer-platform-speed/.
"What Powers Instagram: Hundreds of Instances, Dozens of Technologies." - Instagram Engineering. Web. 15 Dec. 2015.