Python 2.7 oder 3.X für größere Projekte?

ascer

Captain
Registriert
Juni 2008
Beiträge
3.840
Moin moin,


gibt es hier eventuell Python-Entwickler oder Entwickler, die zumindest bei größeren Projekten in Kontakt mit Python kommen? Da würde ich nämlich gerne eine kleine Grundsatzdiskussion führen und fragen, was eure Meinung zu dem Thema ist.

Die Problematik ist die folgende: ich partizipiere an einem größeren Projekt in einem Start-Up, welches gerade gestartet wurde. Da das ganze in Richtung Innovativsoftware geht und große Teile Bildverarbeitung, Machine Learning und Künstliche Intelligenz beinhalten werden, wird viel "science stuff" in dem Projekt zum Einsatz kommen, deshalb fiel die Wahl der Programmiersprache natürlich auf Python.

Soweit, so gut...aber dann kommt natürlich der eigentlich Diskurs: Python 2.7 oder 3.X?

Nun ist es so, dass ich einige Konzepte von Python 3.X ganz nett finde, z.B. machen sich bei einem großen Projekt ganz gut, Enumerations gibt es ab Werk und nicht nur über Backports (wie bei 2.7), dann das ganze Konzept, dass es überall nur noch views und iterators gibt, anstatt kompletten Listen wie in 2.7 ist imho auch ziemlich durchdacht. Dann gefällt mir z.B. nonlocal...

Kurz gesagt: es gibt einfach schon einige interessante Neuerungen, die nette Features darstellen, um einem einfach ein "runderes" Paket für große Projekte anzubieten.

Andererseits ist es aber so, dass Python 2.7 einfach viel mehr libs parat hält. Zusätzlich bereitet mir Bauchschmerzen, dass manche Sachen unter 3.X einfach auch gefühlt noch nicht sehr stabil laufen...NumPy und Matplotlib sind absolut essentiell und da liest man bei 3.X relativ häufig, z.B. auf Stackoverflow, von Problemen. SciPy hat bei mir sogar höchstselbst (vor dem letzten Update) sich schon mal in 3.X verabschiedet.
Aktuelle Builds von TensorFlow kriege ich bis heute nicht in einer 3.X virtual-env zum Laufen.
Cairo bekam ich auch nur über einige Umwege vernünftig zum Laufen und Pango funktioniert selbst dann nicht, wenn man sich ein pip wheel selbst baut.

Nun sind viele libs für das fertige Produkt hinterher nicht so unglaublich ausschlaggebend, also mehr für den Entwicklungsprozess wichtig...wo man bestimmte Exoten dann natürlich in eine 2.7 virtual-env verbannen könnte.

Da stellt sich einem dann aber natürlich die Frage, ob es designtechnisch schön ist, manches in 2.7 zu machen, währenddessen die Hauptsoftware in 3.X entwickelt wird.

Was sind da eure Erfahrungen?
Setzt ihr ohne Probleme bei größeren Projekten Python 3.X ein? Oder haltet ihr das (noch) für verfrüht und vertraut lieber auf 2.7?


viele Grüße

ascer
 
Zuletzt bearbeitet:
Zurück
Oben