The next version of Python brings a faster release schedule, performance boosts, handy new string functions, dictionary union operators, and more consistent and stable internal APIs

Earlier this month, the Python Software Foundation whisked back the curtain on the first beta of Python 3.9, which is scheduled for production release in October. With the release of the beta, all of the major changes of Python 3.9 have been set, meaning the time is ripe to see what the next version of Python brings to the world.

Here is a rundown of all of the big new features in Python 3.9.

Also on InfoWorld: 8 signs you’re doing Python right ]

TABLE OF CONTENTS

Python switches to a yearly release cycle

Up until this point, Python has been developed and released on an eighteen-month cadence. PEP 602 proposed that the Python development team adopt an annual release cycle, and that proposal has been accepted.

An annual release cycle means fewer features per release, but it also means faster feedback on feature testing, fewer potentially breaking changes for each release, and thus more incentive for users and Linux distribution managers to upgrade Python more often. It also means new features proposed late in the development cycle won’t take as long to be rolled into a new release.

The new timeline means Python 3.9 will ship in October 2020. Python 3.10 officially started pre-alpha development on May 19, 2020, will enter the alpha development phase when Python 3.9 ships, and will ship in October 2021. Future Python releases will follow the same pattern.

Python becomes faster by default

Every revision of Python enjoys performance improvements over the previous version. Python 3.9 rolls in two big improvements that boost performance without requiring any changes to existing code.

The first improvement involves more use of the vectorcall protocol introduced in Python 3.8. vectorcall makes many common function calls faster by minimizing or eliminating temporary objects created for the call. In Python 3.9, several Python built-ins — range, tuple, set, frozenset, list, dict — use vectorcall internally to speed up execution.

#python #python 3.9 #programming

Python 3.9: What’s new and better
1.60 GEEK