We just released our new Python and Java clients for the api.video API, so today's post seems appropriate. Let's take a look at why these languages are popular for video processing. Netflix uses them both and they have one of the most popular video content platforms in the world. Much has been written about Netflix when it comes to what programming language it's built with. Dig around online, and you'll find iconic quotes like these:
"Java is the bedrock of our software architecture." -Andy Glover, Director of Productivity Engineering at Netflix
"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." -Pythonistas at Netflix, coordinated by Amjith Ramanujam and edited by Ellen Livengood
Netflix has used Java and Python to deliver an exceptional customer experience at least as far back as 2013. A Netflix blog post titled ‘Python at Netflix,’ dated Mar 11, 2013, states that:
"Developers at Netflix have the freedom to choose the technologies best suited for the job. More and more, developers turn to Python due to its rich batteries-included standard library, succinct and clean yet expressive syntax, large developer community, and the wealth of third party libraries one can tap into to solve a given problem."
It’s interesting to note that when permitted to choose anything, developers started in Java, then Python grew in popularity. Today they continue using both, though a number of articles suggest they are shifting more and more to use Python.
Netflix initially chose Java because of its scalability and ability to easily run anywhere. They use open source Java tools to monitor, upgrade, and scale their services. Their engineers continuously deliver new features, and Java processes are constantly running during a customer's use of Netflix. Netflix's Director of Engineering, Andy Glover, says "The bread and butter of Netflix involves using data to recommend shows that customers might like. Everyone at Netflix plays a role in either capturing that data or making use of that data. Our business units can make changes quickly, partly because the entire infrastructure is built on Java." Their engineers also encode videos using Java on Linux computers.
Over time, Netflix added Python to the mix. They rewrote some Java processes using Python, and they also use Python for security. It's used for risk classification, security automation and vulnerability identification. Like Java, Python is often used in Netflix's recommendation algorithms as well as to serve content to viewers. Amazingly, Python is also used to crunch the data that helps Netflix decide what content to fund or buy.
Netflix chose Python because it's one of the fastest growing languages in terms of popularity, it offers numerous modules that are great for video processing and data science, and its an industry standard for a lot of animated and VFX content. Will Python replace Java at Netflix? That remains to be seen.
For now though, both these languages are go to choices for Netflix. And api.video is proud to offer you the choice of a Python or Java client for whatever you want to develop with our video API!