What is the difference between Python versions 3.4, 3.5, 3.6, 3.7? [closed]

1

I thought Python only upgraded versions 2.7 to maintain compatibility but did not abandon previous versions of 3.x. But he insists on updating versions 3.4, 3.5, 3.6, 3.7 constantly. What do these different 3.x.x versions have to do differently?

Could not Python continue with version 2.7 and 3.7 and abandon 3.4, 3.5, 3.6?

    
asked by anonymous 03.08.2018 / 21:35

1 answer

6

The idea you had earlier is right - the only really old version that is still updated is 2.7.

Other versions are updated, but with bug and security updates - no new features.

New features always only enter the version with a new "minor number" (the "7" in "3.7", for example). There are some standard library APIs that are called "tentative" - these, and only those, can change and have differences between version 3.7.0 and 3.7.1 (for example) - see PEP 411

It turns out that many systems are made and depend on specific versions of Python - the language tries not to generate any breaks, but even verifying that nothing has gone wrong with the new version can be costly on a large, very critical system. >

In addition to systems that rely on specific versions, other companies prefer to depend on Python that comes with the operating system, rather than putting a custom Python - and some distributions to the server may be out of phase for a few years in their packages. (And, apart from updating the entire distribution of a server where you can have multiple systems running is even more critical than updating only Python.) Redhat Enterprise Linux, for example, has maintenance guaranteed for 10 years ( link )

So after the release of each version of Python there is a period in which it is considered "maintained", and will receive bug fixes and security updates. After that, another period of time when new bugs discovered are not tidied up, only security updates. Until you reach the "end of the line" - at this point the version is considered discontinued and will not receive any official updates.

For Python these periods are: the last and the last version are actively maintained to receive bug fixes (in the case of today, August 2018, they are 3.7 and 3.6). The previous two versions are both security-only and security-sensitive (these are 3.5 and 3.4). And 2.7 gets bug fixes and documentation by 1/1/2020 - when it will no longer be maintained.

A new version of the language is released every one year and a half or so, so on average, a system made with the newer Python will be able to count on bug fixes for 3 years, and bug fixes. security for 6 years.

Note that private companies that have a security maintenance agreement for products that include older versions of Python may continue to place security updates on older versions - for example, Redhat must continue, on its own, to fix vulnerabilities in Python 2.7 after the end of his line in 2020 - by the end of the last RedHat Enterprise Linux maintenance that included Python 2.7. These updates by private companies can be shared publicly, etc ... but will no longer generate official releases of these older versions of Python. Who needs them will have to search the internet for the patches and apply for it (or have a contract with the maintainer to do this).

    
03.08.2018 / 22:54