The upcoming version on Python is on its way. The Python 3.8 beta cycle begun with Python 3.8.0b1 last month. Earlier this month, the second beta was released, making Python 3.8 feature complete.
Python 3.8 will go through two more planned beta release previews before the official version is released in October.
Top unicorns herd to Python
TIOBE predicts Python will replace Java as top programming language
New report shows shakeup amongst top programming languages
According to the Python team, notable features in the upcoming version include:
- Assignment expressions: A new way of assigning variables within an expression
- Positional-only arguments: A new syntax for specifying positional-only parameters in function definitions
- Runtime audit hooks: For enhancing security of runtimes using auditing APIs
- Python Initialization Configuration: For more control over the configuration and better error reporting
- Vectorcall: A fast calling protocol for CPython
- Pickle protocol 5 with out-of-band data: A new standardization of the pickle protocol version and accompanying APIs.
Other features include: load_global performance improvements, f-strings support, ability to debug builds that share ABI as release builds, and a parallel filesystem cache for compiled bytecode. More information is available here.
The Python team suggests developers and users start testing with the language now, during the beta phase, to ensure there are no issues when the 3.8 version is released. “We strongly encourage maintainers of third-party Python projects to test with 3.8 during the beta phase and report issues found to the Python bug tracker as soon as possible. While the release is planned to be feature complete entering the beta phase, it is possible that features may be modified or, in rare cases, deleted up until the start of the release candidate phase (2019-09-30). Our goal is to have no ABI changes after beta 3 and no code changes after 3.8.0rc1, the release candidate. To achieve that, it will be extremely important to get as much exposure for 3.8 as possible during the beta phase,” the Python team wrote.
It is also important to note that Python has a new governance model that was implemented last year. A five-person steering council is being used to establish standard practices and introducing new features.
“The council has broad authority, which they seek to exercise as rarely as possible; instead, they use this power to establish standard processes, like those proposed in the other 801x-series PEPs. This follows the general philosophy that it’s better to split up large changes into a series of small changes that can be reviewed independently: instead of trying to do everything in one PEP, we focus on providing a minimal-but-solid foundation for further governance decisions,” the team wrote in a post.