Choosing a programming language is a very critical decision in any firm. A programming solution is generally chosen according to the type of application required. In a very specific situations there are various language choices open to you. But Python provides such a flexibility and a number of advantages that it is used by a variety of different companies. It also comes with the advantage of being fast and easy to learn. In this article, we list down leading digital native organisations across the globe that rely on Python for building world-class applications.
In 2016, Instagram engineering team boasted that they were running the world’s largest deployment of the Django which is Python’s web framework. They had announced that they moved their Python version from 2.7 to 3 in the PyCon 2-17 keynote. Min Ni, a software engineer at Instagram said, “We initially chose to use Python because of its reputation for simplicity and practicality, which aligns well with our philosophy of ‘do the simple thing first.’“
Instagram faced some problems connected with its growth which were caused by the slowness of Python. However, they solved them by adding more AWS machines. The company claims they did consider the variant with switching to PHP language but realised that it will not bring any significant performance improvements.
Spotify uses Python at two main phases of backend services and data analysis. Spotify’s backend consists of many interdependent services, connected by own messaging protocol over ZeroMQ. Around 80% of these services are written in Python. A big reason for using Python is the speed which is important for Spotify. They also make heavy use of Python async frameworks to help services that are IO bound. Spotify squads often use GraphWalker to do model based testing of both user facing clients as well as some APIs. To simplify the integration with their Python services, we ported the GraphWalker runner to Python. Apart from Python, they also use Java, C and C++ for other work.
Facebook uses Python as the core language for the back-end of their applications connected with image processing. In order to achieve the purpose of hardware imaging, infrastructure management, a binary distribution and operational automation, a number of Production engineers write code in Python services and frameworks. Over 21 percent of overall codebase infrastructure is covered by Python at Facebook while rest is covered by Java, C, and C++ with 9 percent, 15 percent and 55 percent respectively. The main focus of the infrastructure team is to deliver and maintain Python client libraries for the interface and binary communication protocol that enables other teams who want to interact with them by offering reliable interfaces. With the help of these interfaces, the amount of code that is written, tested and maintained by production engineers is reduced, enabling them to move ahead at a faster pace in integrating services to Facebook’s infrastructure.
Netflix uses Python for everything from operations management and analysis through to security and networking. In their blogpost, they wrote, “We 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. Their tools are primarily written in Python. They use Python tools like NumPy and SciPy, Boto3, rq. They use Flask APIs as a wrapper around these orchestration tools and to build custom extensions to the Jupyter server. According to the blogpost, “We use Python extensively within our broader Personalization Machine Learning Infrastructure to train some of the Machine Learning models for key aspects of the Netflix experience: from our recommendation algorithms to artwork personalization to marketing algorithms.” Netflix leverages well parallelized and optimized Python code to fetch data at 10Gbps, handle hundreds of millions of data points in memory, and orchestrate computation over tens of thousands of CPU cores. On the information security front, Netflix uses Python for security automation, risk classification, auto-remediation, and vulnerability identification. And Python was behind Netflix’s Security Monkey tool, as well as a project called Prism, which helps identify vulnerabilities in source code.
Adam D’Angelo, who has written Python for Quora, wrote on Quora regarding the company using Python. He said that they were sure that they not want to use PHP. They had breifly considered C#, Java and Scala and finally decided to go with Python. He said, “The biggest issues with Python are speed and the lack of typechecking.” They had also thought about OCaml and Haskell but none of them had big enough ecosystems or good enough standard libraries, and both, according to D’Angelo, were potentially too hard for some designers/data analysts/non-engineers who might need to write code.
Python was fast enough for most of what they needed to do. They expected that it would continue to evolve in a direction that would be good for the life of our codebase, having watched it evolve over the last 5 years.