And the Top 10 Web Applications Built with Python
If you are embarking on a new software development project, and are wondering what programming language and framework you should use, I suggest you consider Python and Django. In this article, I’ll explain why top companies with millions of users are betting big on these two technologies.
What are Python and Django?
There are many different popularity rankings for programming languages. Developers often accuse these rankings of lack of precision, but each of the rankings includes Python within the top 5 for a reason. Python is an interpretive programming language. It's easy-to-memorize with good quality documentation. With Python, a developer only needs a few lines of code to craft basic application functionality and can make use of a large library of packages and module to build applications. All that combined provides increased productivity — and this is why programmers fall in love with Python.
Any programming language needs a framework — a skeleton architecture with which a developer can craft specific functionality. Python works with many frameworks but Django is the most popular option.
Django is a full-featured framework with automated tools helpful in building quality apps and maintaining them. With Django, software engineers avoid repetitive tasks and encourage a pragmatic, clean design. Also, Django protects against vulnerabilities and runs on different platforms.
By choosing Python/Django, you can build apps that scale to handle millions of users.
When should you use Django?
If you need a project that can grow both in complexity and depth, or handle high volumes of transactions, you should consider Django
There are many specific application types where Django particularly stands out:
- Customer relation management software for eCommerce
- Machine learning
- Online shopping platforms
- Admin dashboards for developers
- Web content management software
- iOS and Android applications
- Document management systems
- Electronic verification systems
- Algorithm-based generators
- Financial CRM platforms
- Traveling, restaurant, or hotel booking systems
- Secure mailing solutions
- Data analysis and visualization solution
- Filtering systems
- Communication platforms and software
Django is chosen for its behind-the-scenes utilities and powers some of the most-used websites and applications. In the original script, some websites and platforms didn’t choose this framework. But over time, many were rewritten in Django.
Let’s look at examples of several such apps.
Answering the question, why the company started with Python from the very beginning, Instagram engineer Hui Ding stated: “Python is user-friendly for engineers — it’s easy to get up to speed and get out the product, allowing the team to concentrate on user-facing features. Python is simple and clean and favors pragmatism. It is a proven technology. And, finally, it’s a really popular language, which makes growing the engineering team easier.”
Over the last few years, Instagram has crossed 1 billion users monthly. So the app has the full right to boast they are the world’s largest deployment of Django and a platinum corporate member.
Eventually, with the growing rate of users, there has appeared a necessity to maximize the efficiency of the web service for smooth scaling. Like any network product, Instagram is restricted by datacentre control and servers. For efficiency maximization, Instagram needs the capacity to serve traffic with persistent code rollouts and add new features without being blocked by capacity limits.
With Python, the Instagram engineering team manages to cope with all of the tasks. The app servers run Django with PostgreSQL and custom plugins for the website service are written in Python and Python-Munin. Apart from that, Instagram uses Sentry for monitoring and reporting errors.
Python is currently a big portion of Facebook technology infrastructure covering 21% of the codebase. For comparison, Java covers 9%, Java C — 15%, and Java C++ — 55%. Facebooks is now upgrading to 3.4 and has published open-source projects for Py3.
With Python, the Facebook team is able to reduce the amount of code. Plus, they scale up the efficacy of the application and infrastructure’s reliability. Also, Python is used in several important Facebook services. To date, it’s helpful in:
- Promoting communication between network devices
- Enabling full-scale deployment
- Helping in server imaging
- Assisting in burn-in testing
- Detecting multiple faults
- Enabling auto-remediation
- Automating maintenance work
- Checking the work of servers
Facebook uses Tornado for handling numerous connections at the same time. Tornado is similar to Django in the sense of ensuring user authentication and providing security. With Tornado, user’s news feed is updated in real-time.
According to Netflix engineers, they “use Python through the full content lifecycle, from deciding which content to fund all the way to operating the CDN that serves the final video to 148 million members”.
Most Netflix tools are developed in Python. Jupyter Notebooks, NumPy, SciPy, RQ, nteract, pygenie, Boto3, papermill, and Flask APIs are frequently used. Python is present in all the corners of the Netflix business. They chose it for:
- Statistical analysis that comprises the analysis of signals, data exploration, and cleaning.
- Training machine learning models which is essential for marketing, recommendation algorithms, and personalization of artwork.
- Experimentation platform where engineers and scientists can share innovations and data.
- Video encoding the catalog and crafting vision solutions.
- Generating auto-remediation.
Also, Netflix provides support to Python clients by crafting libraries for interacting with different services within the Netflix platform.
Users willing to access the files on their computers from any location, choose Dropbox, a Python-powered storage system. Dropbox took the initiative to synchronize and share files across devices by means of the cloud.
Why did Dropbox go with Python from the very launch? Their engineering team keeps the reply brief: ease of memorizing, readability, and strong support. Python offers a quick development cycle. Thus, any new features can be implemented, tested and deployed quickly.
What is more, Dropbox goes far beyond the simple use of Python. They strive for making code more effective, share lessons they’ve learned, and discuss the use of tested techniques for different projects.
To extract better performance out of code, they hired Guido van Rossum, a Python inventor. Due to his help, the team found Dropbox’s alternative way for Python implementation. Plus, they have been relying on Python 2 for years, but in 2015 they started moving to Python 3. To date, the storage system is powered by Python 3.5, a customized variant.
Dropbox’s investment in Python is significant. And judging from this, they are unlikely to move from using this language.
Back in June 2009, C. Cheever and A. D’Angelo were looking for a flexible programming language to ensure scalability to Quora.
They first considered Haskell and Java. Then, they thought over using C#, PHP, and OCam. But they chose Python as they knew it reasonably well and were confident this language would keep developing in the direction that they — Quora — saw as good for the codebase.
There were eight criteria that led Python to advantage:
- Solid ecosystem
- Efficiency for crafting frontend and backend
- Simple syntax
- Ability to build extra functions using fewer code lines
- Fast development, fewer efforts, cutting of budget expenses
- Crafting programs with greater interoperability
- Live update of the web service (now they use Tornado framework for this purpose)
So far, C. Cheever and A. D’Angelo are happy with their choice.
You know Mozilla Firefox, or simply Firefox, as a powerful browser. Yet very few people know that Python underpins the browser’s success.
Mozilla was first built on PHP+CakePHP. But as they grew, they had to be powerful enough to cope with millions of searches monthly. So they moved to Python+Django. Mozilla-central includes over 3500 Python files with 230 thousand lines of code.
Currently, Mozilla Firefox uses a lot of Python and Django for:
- Building the system
- Command-line tooling
- Test harnesses
- CI configuration
The Mozilla’s support site and browser add-ons are built in Django.
Over 200 million people use the Pinterest monthly, sharing boards and subscribing to other users. The Pinterest team chose Python and a heavily-modified Django version at the first stages of developing the web and mobile application.
Python and Django help the Pinterest power user experience, deal with huge amounts of content, ensure quick push notifications and photo updates in real-time, and cope with the growth of users.
Uber has grown into a revolutionary application with outstanding service. Currently, it’s used by millions of people. The choice of the language has partially predetermined the success of the app. Back in 2009, the Uber backend system was crafted in three languages. Python was one of them due to its ability to process complex code at a high speed.
“I found there is a wealth of Python developers who write great services in Python, particularly around some of the business aspects and different things like that," says Tom Croucher, Uber site reliability engineer.
The choice of language hasn’t changed since then. To power rides, the team uses Python as well as Python-based machine learning frameworks to ensure a better connection between passengers and Uber drivers. Plus, they use Python + Tornado for the new services.
eBay and PayPal
Today, eBay is “where the world goes to shop, sell, and give”. But in the autumn of 1995, a future-to-be marketplace with millions of items for sale was a side hobby for a computer programmer Pierre Omidyar.
Python is Omidyar’s favorite programming language. And though, eBay is now engaging multiple programming languages, Python has always been one of the majors. Python is now powering over fifty marketplace’s projects such as price adjustments, security, and data import.
For years, the only way to pay on eBay was with PayPal. This financial tool is widely chosen for being safe. Plus, it offers full cover for customer’s loss if the purchasing process goes wrong. The use of Python in the development of this financial tool was the result of PayPal’s close ties with eBay. Now PayPal’s using Python across the entire infrastructure.
And though the corporate marriage of eBay and Paypal has come to an end, both platforms keep using Python.
A technical choice behind the world’s top powerful web search engine is Python. It is Google’s official programming language since the company’s establishment (1998).
Why Python? The four motives behind the choice are fast crafting, flexibility, awesome performance, and scalability. To be sure they’re squeezing every drop of Python’s productivity, in 2005, they worked with Guido van Rossum, a Python creator who was in the Google team until 2012.
“Python has been an important part of Google since the beginning and remains so as the system grows and evolves. Today, dozens of Google engineers use Python, and I'm looking for more people with skills in this language," says Peter Norvig, director of search quality at Google, Inc.
Python is used by Google at:
- Google App Engine for building apps
- code.google.com — the site for developers at Google
- Internal packaging
And furthermore, Google promotes the development of Python. Today, it even sponsors Python’s major conferences such as EuroPython and PyCon.
These are only a few websites built in Python. Their real number exceeds these ten and keeps growing. Stack Overflow states there are two prime motives behind the exceptional popularity and use. Python is chosen for:
- Its data science, machine learning, and academic research, on the one hand
- The versatility that suits different industries, on the other hand
But does Python keep growing? Does it have any future or could be substituted by other languages? I’ll answer these questions by providing a brief overview of Python’s popularity from 2011 to the present day.
Following Stack Overflow, the daily quantity of questions from developers concerning programming issues equals to 8,000. Major programmers’ interests can be tracked by means of the Stack Overflow Trends tool.
Using this tool, I researched the popularity of Python-related questions and tags and concluded that Python heads the list of the fastest-growing programming languages both in countries with a high income (the United States of America, the United Kingdom, Canada, Germany) and in those with a comparatively low income (Russia, India, China, Brazil).
In June 2017, Python dominated the list of the most popular tags. Currently, Python shows a 27% yearly growth rate. Python interest keeps growing while traffic to other major languages can be characterized as steady.
Though in the case of counties with a lower income the growth of popularity started in 2014 and not in 2011, Python is now moving to the top of the list.
But time never stands still, and the popularity of some new technologies and languages has proceeded apace. Has their traffic overcome that of Python’s? Even though the presence of some smaller programming languages became noticeable (TypeScript tags grew by nearly 142%), they didn’t overcome Python.
At Steelkiwi Inc., we've been using Python for years so the demand for Python and its popularity has always been a subject that's close to our hearts. That being said, I don't intend to imply that Python is the only correct choice for every project. The aim of this post is just to share a brief overview of Python’s benefits and possible applications.
Tell me what you think about the use of Python by the world’s largest companies and whether or not you would choose Python for your web application.