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.