The Python programming language has come a long way since it was first released in 1991. Today, it is quickly becoming a first-class enterprise language used in production.
“Python has been extensively used in the industry for anything from building Raspberry Pi applications to configuration servers and using a scripting language for large scale applications,” said Zhamak Dehghani, principal consultant at Thoughtworks. “What we are seeing today is the perfect storm of a few technologies coming together and giving rise to Python again, and trying to get it in more enterprise environments.”
According to Dehghani, this perfect storm is made up of Python 3 maturing over time, new architectural approaches like microservices and containers, and advancements in artificial intelligence. “All of this coming together makes it much more possible for enterprises to use it throughout the development lifecycle, and not just research,” she said.
In fact, Python recently popped up as one of Thoughtworks’ Technology Radar themes. The Technology Radar provides insights into technology and trends that are shaping the future. “The fact that it made one of our themes is actually more notable because very few things do, and it was really because a lot of the technology is popping up all over,” said Neal Ford, director and software architect at ThoughtWorks. “Python is a really good utilitarian language; it is a very good general-purpose language. It is not overly complex and doesn’t have a lot of bells and whistles, but it is very good at solving bigger kinds of problems.”
Stack Overflow’s recently released Trends solution shows Python has grown 14.3% from 2015 and 2016.
“Python is being used in a variety of ways. Many computer programming languages have a niche area that they serve. For example, Bash scripts focus on operating system tasks, while Ruby focuses more on web development. It seems like Python is used in every domain — system operations, web development, deployment, scientific modeling, etc etc. There is no other language that is so versatile,” the Python Software Foundation (PSF) board of directors wrote in an email interview with SD Times.
Ford explains while developers don’t often pick Python up as a primary language, because it is so easy to learn and can accomplish all sorts of tasks they are using it as a secondary or third language.
According to Thoughtworks Dehghani, performance and concurrency had always been an issue in the past with Python, but Python 3 aimed to address those issues. Python 3 added a number of new features to the language that made it easier to learn and use such as the introduction of async.io for io-bound applications. Python 3 also introduced new features that were not backward compatible with Python 2.x and removed 2.x features that were maintained for backward compatibility, Thoughtworks explained.
“Our experience using Python 3 in domains such as machine learning and web application development shows that both the language and most of its supporting libraries have matured for adoption,” according to the Thoughtworks Technology Radar.
The Python Software Foundation is currently pushing developers to use Python 3+ because Python 2.7 will no longer be supported as of 2020.
The next version of Python, 4.0, is already in the works, but is not expected to be released until 2023. That is because the language is on a 18 month feature release cycle. According to Nick Coghlan, a core developer of the language, there aren’t any profound changes or major backwards compatibility breaks expected with 4.0. “I’ve heard that question enough times now (including the more concerned phrasing ‘You made a big backwards compatibility break once, how do I know you won’t do it again?’” he wrote. “Going from Python 3.9 to 4.0 should be as uneventful as going from Python 3.3 to 3.4 (or from 2.6 to 2.7).”
For Python 3.0, Coghlan explains there have been a number of changes “that make it less likely that such deprecations will be needed” such as emphasis on the Python Package Index, the provisional API, and stricter requirements for new additions.
The PSF board of directors added that Python needs to expand its presence on mobile platforms, and C-Python could do a better job of working with multiple cores for parallel processes.
In addition to Python 3, the language has also seen uptake in the machine learning domain with libraries like Scikit-learn, TensorFlow, Keras and spaCy. “Data science and scientific applications are an area of high growth. Python’s accessibility allows subject matter experts to focus on their relative subject matter areas in their research. This doesn’t seem like it will stop any time soon,” PSF board of directors wrote.
The growth of microservices and containers has made it easier to package Python dependencies and execute the language in production environments, according to Thoughtworks’ Ford.
The PSF also says the growth of Python can be seen through the language’s community gatherings. According to the foundation, in 1992 the first workshop saw 20 attendees, then after a couple of years the community’s first annual conference — the International Python Conference — saw about 300 attendees, and today the PSF’s annual PyCon conference was sold out in March with more than 3,000 attendees from around the world.
“One of [Python’s] major strengths is its accessibility to newcomers, because it is easier to develop a working piece of code in Python and iterate on it more quickly,” the PSF board of directors wrote. “Most of all, its community! For the language itself, readability, conciseness, and the completeness of its standard library, which we call ‘batteries included.’ ”