The open source Python programming language is moving forward with its first and only major release for 2020, providing a series of new features for developers.
Python 3.9, which became generally available on Oct. 5, is the first major update for the popular programming language since the Python 3.8 milestone was released a year ago, in October 2019.
Python continues to be among the most widely deployed programming languages. According to the influential TIOBE Index for October 2020, Python is now the third most popular programming language, behind Java and C.
Among the new features in Python 3.9 is a parser based on an approach known as Parsing Expression Grammar (PEG) that is defined in Python Enhancement Proposal (PEP) 617.
"A PEG (Parsing Expression Grammar) grammar differs from a context-free grammar (like the current one) in the fact that the way it is written more closely reflects how the parser will operate when parsing it," the documentation for PEP 617 states. "The fundamental technical difference is that the choice operator is ordered."
Remnants of Python 2 Support Remain
Python 3.9 is also noteworthy in how it supports the now legacy Python 2 branch. The last release of Python 2 was Python 2.7.18, which became available on April 20. Although Python 2 is no longer being developed, there is still a degree of compatibility with Python 3, but that will end after the Python 3.9 release.
"Python 3.9 is the last version providing those Python 2 backward compatibility layers, to give more time to Python projects maintainers to organize the removal of the Python 2 support and add support for Python 3.9," the Python 3.9 release notes state.
Jeff Rouse, senior product manager at Vancouver-based ActiveState Software, told ITPro Today that there is little reason for developers to start new projects with Python 2.x. However, there is a huge amount of Python 2 code operating that needs support, he added.
"While I encourage everyone to move to Python 3 as soon as they can, for some it is not practical," Rouse said. "From a business perspective, this is why ActiveState continues to support Python 2 for those companies who need longer term security fixes and support."
Python 3.9: A Timely Release
Rouse lauded several key additions to Python in version 3.9. In particular, he cited PEP 615, which adds IANA time zone database support to Python. The time zone database provides a standardized approach to understanding and importing time zone data.
"Time zones are tricky to handle at the best of times, so adding this to the zoneinfo module provides some real value, Rouse said.
Another key update implemented in Python 3.9 is PEP-0602, which defines an annual release cycle for Python. The release cadence for Python over its history has varied somewhat, but PEP-0602 defines a 12-month release cycle, with new releases released each October.
"This is the new way forward for Python major versions as of 3.9, and it is positive in that it leads to a more predictable release cadence where you know the new version is feature-complete in May and available for everyone in October," Rouse said. "This new schedule definitely helps from a planning perspective for open source projects, vendors and enterprises alike."