ubuntuusers.de

Warum immer noch python2?

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

MalSaulusMalPaulus

Anmeldungsdatum:
4. November 2014

Beiträge: 286

Wohnort: Bayern

Warum ist Python2 eigentlich immer noch so verbreitet? Die ersten Version von Python3 kam ja vor fast 10 Jahren raus und es schaffen anscheinend immer noch viele nicht diverse Libs und Programme zu portieren.

Kann es sein, dass die OpenSource Community sehr konservativ eingestellt ist und jegliche Neuerungen erst einmal ablehnt?

Python 2.7 wird ja die letzte offizielle CPython Version der 2er Brach sein und der Support endet 2020. Aber vermutlich wird irgend einer das ganze Forken und noch länger am Leben halten 😉

Tronde Team-Icon

Avatar von Tronde

Anmeldungsdatum:
23. November 2006

Beiträge: 1640

Dafür mag es verschiedene Gründe geben. Zum Beispiel ist Python3 auch heute nicht auf allen Systemen vorinstalliert. So enthalten z.B. RHEL/CentOS 7.4 in der Minimalinstallation Python nur in der Version 2. Auch auf anderen Linux-Systemen wie den verschiedenen NAS-Systemen ist Python nur in Version 2 verfügbar.

Möchte ich nun Skripte oder Anwendungen für die Breite Masse dieser Systeme schreiben, greife ich auf den kleinsten gemeinsamen Nenner zurück. Und das ist aktuell häufig noch Python2.

Ein weiterer Faktor ist die Zeit, die mir zum programmieren bleibt. Leider habe ich nur selten die Zeit aus Lust und Langeweile zu programmieren. Häufig muss ich bestimmte Aufgaben lösen, um mir die Arbeit zu erleichtern bzw. sie schlicht und ergreifend erledigt zu bekommen. Dabei sollte der erste Entwurf möglichst gut passen und möglichst lange unverändert nutzbar sein. Wenn sich APIs noch ändern, Module und Bibliotheken sich noch häufig ändern oder veralten können, ist dies Gift für den Betrieb. Dies könnte für mich bedeuten, dass ich meine Skripte/Anwendungen häufig anpassen muss. Da kommt es häufig gelegen, wenn eine Sprache nicht mehr so ganz aktiv weiterentwickelt wird.

Bei mir persönlich überwiegt jedoch der erste Punkt. Auf einem Großteil meiner Systeme ist Python3 nicht vorinstalliert. Für die Realisierung meiner Aufgaben ist es nicht zwingend notwendig.

Darüber hinaus sind 10 Jahre keine so lange Zeit, wenn man einige dutzend unterschiedlichster Systeme betreiben muss. Ein Arbeitstag wird zu einem guten Teil durch das Tagesgeschäft gefüllt. Hinzukommen die neuen Anforderungen der Kunden und Nutzer, die ständig auf einen einprasseln und schnellstmöglich umgesetzt werden müssen. Für Wartung und Pflege wird dabei häufig nur so viel Zeit zur Verfügung gestellt, wie absolut notwendig ist. Das ist nicht schön, aber häufig bittere Realität.

Möchte ich eine Anwendung bzw. ein Skript portieren und benötige dafür Zeit, muss ich z.B. folgende Fragen beantworten können:

  • Ist der Betrieb gefährdet, wenn du das nicht tust?

  • Kannst du dadurch den Automatisierungsgrad erhöhen, so dass du anschließend mehr Zeit für andere Aufgaben hast?

  • Führt die Änderung zu Mehreinnahmen oder Kostensenkung?

  • Führt die Änderung wenigstens zu einer durch die Kunden spürbaren Qualitätssteigerung?

Nein? Dann darfst du dich damit beschäftigen, wenn du Langeweile und nichts anderes zu tun hast. Hast du Langeweile, sag einen Ton, es gibt nämlich noch neue Aufgaben zu verteilen.

Und Schwupps sind zehn Jahre rum und dein Programm läuft immer noch unter Python 2.

MalSaulusMalPaulus

(Themenstarter)

Anmeldungsdatum:
4. November 2014

Beiträge: 286

Wohnort: Bayern

Die Frage ist halt, ob es nicht langfristig sinnvoller wäre, wenn man Schritt für Schritt seine ganzen Skripte portiert, denn das Ende von Python2 ist ja zumindest, was den offiziellen Support angeht, absehbar.

Selbst wenn es einen Fork gibt, ist die Frage, ob diese Version genauso gut gewartet wird, wie derzeit python 2.7, durch die Python Software Foundation. Du hast daher einen wichtigen Punkt als Motiv für die Portierung vergessen:

Das drohende Supportende der Plattform, die man für die Entwicklung verwendet.

Das kann dann letztlich auch zur Gefährdung des Betriebs führen, vor allem, wenn Sicherheitslücken in python2 dann nicht mehr schnell genug behoben werden.

Die Linuxdistributionen tragen da meiner Meinung nach auch massiv dazu bei, dass teilweise immer noch neue Skript für Python2 entwickelt werden, eben, weil, wie Du ha auch sagtest, der Standard immer noch python2 ist. Natürlich trägt die Python Software Foundation auch eine Schuld daran, immerhin hätten sie python2 ja schon viel früher sterben lassen können. Nehmen wir beispielsweise php. 7.0 kam 2014 heraus und die letzte php 5 Version (5.6) wird nur noch bis Ende 2018 mit Sicherheitsupdates versorgt.

glasenisback

Avatar von glasenisback

Anmeldungsdatum:
20. November 2011

Beiträge: 1603

Wohnort: Fernwald (Gießen)

Die Frage ist halt, ob es nicht langfristig sinnvoller wäre, wenn man Schritt für Schritt seine ganzen Skripte portiert, denn das Ende von Python2 ist ja zumindest, was den offiziellen Support angeht, absehbar.

Unter Ubuntu 18.04 sollen alle Teile des Main-Repos auf Python3 portiert werden:

https://lists.ubuntu.com/archives/ubuntu-devel-announce/2017-December/001234.html

Seit Ubuntu 17.10 wird kein Python2.7-Interpreter mehr in der Standardinstallation mitgeliefert.

Das Problem mit Python2 ist, dass es noch eine Riesencodebasis da draußen gibt und auch sehr viele Entwickler noch damit entwickeln. Das ändert sich leider sehr langsam. Gerade in der "Data Science" gibt es eine riesige Codebasis, die nur langsam auf Python3 portiert wird.

Tronde Team-Icon

Avatar von Tronde

Anmeldungsdatum:
23. November 2006

Beiträge: 1640

MalSaulusMalPaulus schrieb:

Du hast daher einen wichtigen Punkt als Motiv für die Portierung vergessen:

Das drohende Supportende der Plattform, die man für die Entwicklung verwendet.

Den Punkt habe ich nicht vergessen. Der ist noch nicht relevant. Wie du geschrieben hast endet der Support 2020. Es ist also noch Zeit. Bis dahin können hoffentlich noch eine Menge Anwendungen abgeschaltet werden, die nicht mehr portiert werden müssen. Heute versuche ich Anwendungen so zu schreiben, dass sie unter Python 3 und 2 gleichermaßen laufen, ohne angepasst werden zu müssen.

Ansonsten ist das Supportende erst ein Argument, wenn es bereits fünf vor zwölf ist.

Natürlich trägt die Python Software Foundation auch eine Schuld daran, immerhin hätten sie python2 ja schon viel früher sterben lassen können.

Das hat in meinen Augen nichts mit einer Schuldfrage zu tun. Der lange Unterstützungszeitraum ist denke ich mit für den Erfolg verantwortlich. Für Entwickler sind kurze Release-Zyklen und neue Funktionen sicher interessant. Als Systembetreiber finde ich sie eher zum ... abwinken. Hier wünsche ich mir möglichst lange Supportzeiten, in denen ich Sicherheitsupdates bekomme.

Man kann es auch noch aus einer anderen Richtung sehen. So schlecht scheint Python 2 ja nicht (gewesen) zu sein, sonst wären sicher schon mehr Anwendungen portiert worden.

MalSaulusMalPaulus

(Themenstarter)

Anmeldungsdatum:
4. November 2014

Beiträge: 286

Wohnort: Bayern

Tronde schrieb:

Ansonsten ist das Supportende erst ein Argument, wenn es bereits fünf vor zwölf ist.

Dann wirds aber evtl. teurer, wenn man schnell schnell alles umstellen muss. Ich sehe das schon als relevant an, sobald man weiß, dass es ab einem bestimmten Datum nicht mehr unterstützt wird. Genauso bei Betriebsystemen, da ist es auch absehbar, wann der Support endet.

Natürlich trägt die Python Software Foundation auch eine Schuld daran, immerhin hätten sie python2 ja schon viel früher sterben lassen können.

Das hat in meinen Augen nichts mit einer Schuldfrage zu tun. Der lange Unterstützungszeitraum ist denke ich mit für den Erfolg verantwortlich. Für Entwickler sind kurze Release-Zyklen und neue Funktionen sicher interessant. Als Systembetreiber finde ich sie eher zum ... abwinken. Hier wünsche ich mir möglichst lange Supportzeiten, in denen ich Sicherheitsupdates bekomme.

Nicht unbedingt, mir geht zum Beispiel die Entwicklung bei Angular etwas zu schnell voran. Aber 10 Jahre sind doch genug. Python ist ja gerade in der Webentwicklung, Machine Learnung usw. sehr erfolgreich, dort setzt man soweit ich weiß mittlerweile fast nur noch python 3 ein.

Man kann es auch noch aus einer anderen Richtung sehen. So schlecht scheint Python 2 ja nicht (gewesen) zu sein, sonst wären sicher schon mehr Anwendungen portiert worden.

ES hat ja niemand behauptet, dass Python 2 schlecht wäre, sondern nur, dass es die Vergangenheit ist.

glasenisback

Avatar von glasenisback

Anmeldungsdatum:
20. November 2011

Beiträge: 1603

Wohnort: Fernwald (Gießen)

Python ist ja gerade in der Webentwicklung, Machine Learnung usw. sehr erfolgreich, dort setzt man soweit ich weiß mittlerweile fast nur noch python 3 ein. [..]

Bei neuen Projekten ja, aber es gibt mehr als genügend alten Code den man nicht mal so auf die Schnelle auf Python3 portiert.

Antworten |