Seite 1 von 1

Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Samstag 19. November 2011, 20:34
von Nebelhom
Es ist jetzt schon ein Weilchen her, dass Python 3 eingefuehrt wurde und mittlerweile sind wir bei Python 3.2.2 angelangt. Der Grund warum ich, wie so viele andere auch, noch nicht umgestiegen bin, ist, weil die libraries, die ich benutze, einfach noch keine Unterstuetzung fuer Python 3 geben (wxPython ist einer der Hauptschuldigen mitsamt ein paar kleineren Projekten, die wohl nie ihre Version 3.x erleben werden). Google App Engine ist noch nicht mal ueber Python 2.5 hinausgekommen.

Ich frage mich mittlerweile wirklich, wie lange es dauern wird, bis die Hauptlibraries (also die am weitesten verbreiteten) uebersatteln werden und alle Benutzer uniform Python 3.x als Standard nehmen koennen.

Will einer von euch wagen es abzuschaetzen, ab wann das der Fall sein wird? Gab es schon Praezedenzfaelle in anderen Sprachen, an denen man soetwas abschaetzen kann (In Jahren)? Ich weiss, der Schritt mit der fehlenden Rueckwaertskompatibilitaet war eine Zaesur, die viel Arbeit auf den Plan gerufen hat, aber ich versuche aktuell abzuschaetzen, ab wann es sinnvoll waere, sich mit der "neuen" Version (so neu isse jetzt ja auch nicht mehr) so richtig zu beschaeftigen.

Ich finde es aktuell leider eine eher suboptimale Situation und kann mir vorstellen, dass es auch fuer viele Anfaenger, die sich bestimmt in einem gewissen Nimbus der Untentschlossenheit befinden, eher schlecht darstellt. Da will man dann Python lernen und muss dann noch zwischen zwei Versionen entscheiden. Obendrein gibt es bestimmt viele tolle Neuerungen, aber die sehen die meisten ja nicht, weil die in 2.7 nicht mehr implementiert werden. Es erscheint mir, dass sich die Python community kurzfristig selber ein Bein gestellt hat.

so, monolog aus. Bitte belehrt mich eines Besseren ;)

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Samstag 19. November 2011, 21:08
von Barabbas
Ach, ich sehe das mittlerweile eigentlich wenig verbissen. Unter Arch ist bspw. Python3 Standard aber natürlich ist es gar kein Problem, Python2-Software laufen zu lassen. Auch wenn ich selbst eigentlich noch eher auf Python2 setze, beginne ich allmählich, kleinere Skripte auch mal in Python3 zu schreiben - einfach weil es ohnehin auf der Platte liegt und mir der Umstieg so sehr leicht gemacht wird. Was geht, geht und was nicht geht, geht halt nicht :).

Es ist doch so: Die großen Projekte für tausende von Nutzern, die noch Python2 nutzen, sind nicht der Python-Programmier-Alltag (zumindest bei mir). Also schreibe ich die kleinen Skripte und Helferlein in Python3 und würde für andere Sachen Python2 nutzen.

Ich stelle auf alle Fälle fest, dass nach und nach immer mehr Sachen in Python3 verfügbar sind. GTK bspw. war lange (m)ein Sorgenkind und ist nun gar kein Problem mehr. Ist doch super. Und was die Anfänger angeht: Sollen die doch zur Not noch Python2 lernen und später dann ihre Projekte portieren. Der (Portierungs-)Weg von Python2 nach Python3 ist doch eigentlich relativ kurz. Hängt jetzt natürlich stark vom Projekt ab - aber wieviel Arbeitsstunden (oder Minuten) würde man realistischerweise für tausend Zeilen Python 2to3-Portierung veranschlagen? Zumal es ja auch noch automatisierte Hilfe gibt. Ich mache mir da keine Sorgen :).

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Samstag 19. November 2011, 22:49
von BlackJack
Eigentlich sage ich ja immer das gleiche wenn diese Frage aufkommt: Ich muss unter anderem mit Jython arbeiten, bin da also noch auf 2.5 angewiesen. Des weiteren müssen einige Skripte auf einer Anzahl von Servern funktionieren wo die „ältesten“ auf ein Debian setzt, dass CPython 2.5 als Standard-Python verwendet.

Ansonsten ist Standard-Python das Stichwort: Solange mit meiner Linux-Distribution 2.x als Standard mit all den vorkompilierten Paketen daher kommt, sehe ich keine Veranlassung umzusteigen. Das würde mir Arbeit machen als es mir Nutzen bringt.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Sonntag 20. November 2011, 00:00
von MikeDee
Barabbas hat geschrieben:Und was die Anfänger angeht: Sollen die doch zur Not noch Python2 lernen und später dann ihre Projekte portieren. Der (Portierungs-)Weg von Python2 nach Python3 ist doch eigentlich relativ kurz. Hängt jetzt natürlich stark vom Projekt ab - aber wieviel Arbeitsstunden (oder Minuten) würde man realistischerweise für tausend Zeilen Python 2to3-Portierung veranschlagen? Zumal es ja auch noch automatisierte Hilfe gibt. Ich mache mir da keine Sorgen :).
Also ich fange mit Python 3 an, ich hatte zwar mit Python 2 angefangen, aber recht bald kam der dreier raus, und da ich glaube dass, bis ich es wirklich beherrsche schon genug Module (und so was) portiert sind, ich nicht wirklich Probleme damit haben werde. Und der Umgang mit dem zweier bei anderen Projekten wird wahrscheinlich auch kein Problem.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Sonntag 20. November 2011, 11:54
von snafu
Kann man sehr schlecht abschätzen. Denn aufgrund welcher Fakten sollte man da auch eine einigermaßen fundierte Voraussage treffen? So bleibt einfach nur Raten.

Hinsichtlich Linux kommt ja noch dazu, wie schon erwähnt wurde, dass der Python-Interpreter in einer Distri "ab Werk" nur in einer Version installiert ist - derzeit noch in 2.x. Und die wechseln auch erst die Major-Version, wenn garantiert ist, dass die von der Distribution angebotenen Zusatzpakete für Python lauffähig bleiben. Das kann also noch dauern, bis alles nötige portiert ist.

Generell würde ich sagen: Warte mal besser noch 1-2 Jahre. Möglichweise hat sich das nach dem 21.12.2012 aber eh erledigt. ;)

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Sonntag 20. November 2011, 16:19
von DasIch
Es gibt noch zig Projekte die 2.5 oder sogar 2.4 unterstützen müssen, dadurch ist der Aufwand den ein Port benötigt einfach zu hoch.

Wenn Debian 2.7 in den Repos hat dürfte sich die Situation schnell ändern.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Sonntag 20. November 2011, 19:02
von lunar
@DasIch: Eine einzige Distribution wird die Situation nicht wesentlich verändern.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Sonntag 20. November 2011, 20:53
von sma
Ich glaube nicht, dass der Erfolg von Python 3 an eine relativ kleine Nische wie eine Linux-Distribution anders als Ubuntu gekoppelt ist.

Das Problem ist IMHO eher, dass Python 3 aus der Sicht der Mehrheit der Entwickler zu wenig Vorteile bietet im Vergleich zur Mühe, die ein Wechsel kostet. Ich denke, man hat bei der Konzeption den Fehler begangen, zwar abzuweichen, dann aber nicht so weit, dass sich daraus radikale Vorteile ergeben.

Eine Sprache, die sich auch 3 Jahre nach Veröffentlichung (3. Dezember 2008) nicht durchgesetzt hat - wobei es ja schon Jahre zuvor Betaversionen gab und es eher 5 Jahre sind - halte ich für gescheitert. Man lasse sie am besten in Frieden ruhen...

Dart mit Python-Syntax statt Java(script)-Syntax hätte so eine radikale Verbesserung sein können. Dart ist der Versuch, ein optionales Typsystem auf eine dynamische Sprache zu setzen, welches keine scheinbaren Korrektheitsgarantieren bietet, sondern eine Hilfestellung bei der Programmierung. Dart soll auch der Versuch sein, ein System zu schaffen, das aus mehr als einem Texteditor und einem Kommandozeilen-Übersetzer besteht, sondern integrierten Werkzeugen angefangen von einer REPL über einen Debugger bis hin zu einer IDE, die den Namen auch verdient und nicht meint, dass ich aus "vi" oder "emacs" einfach "make" aufrufen kann. Gleichzeitig ist Dart eine total langweilige Sprache, in der bewusst auf alle experimentellen Features verzichtet wird. Schließlich ist das Ziel, die Sprache so exakt wie möglich und mindestens so gut wie ECMAScript zu spezifizieren.

Stefan

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 11:09
von jens
Auf http://wiki.python.org/moin/Python2orPython3 sind zwei Argumente für Python 3 Aufgeführt: Bessere Unicode Unterstützung und Aufgeräumter und somit besser für Einsteiger...

So ein richtiges Problem mit unicode hat man in Python 2 allerdings auch nicht, wenn man versteht was man tut.

Das Argument das Python 3 besser für Einsteiger sei, weil ein wenig Konsistenter ist z.Z. im Prinzip falsch. Was nützt einem Einsteiger das er beim lernen von Python 3 vielleicht etwas schneller/weiter kommt um dann zu erfahren, das es besser wäre erst mal Python 2 zu nutzten, weil es einige Libs (noch) nicht in 3 gibt. Das ist doch nun schon häufiger hier im Forum aufgetreten...

Somit kann ich mich sma anschließen. Python 3 bietet zu wenig. Das sehen andere anscheinend auch ähnlich...

IMHO wird es mit Python 3 nix, solange es Support für Python 2 gibt.
v2.7.x soll ja die letzte v2 sein, oder?

Irgendwie würde ich PyPy mehr Changen ausweisen der Zukünftige Nachfolger zu werden. PyPy kann mehr bieten als Python 3. Aber auch hier hat man genau das selbe Problem: Einige Libs gibt es noch nicht.


Ach, es gibt die Seite http://getpython3.net die den Status von Libs aufzeigen soll (Wobei man in der setup.py ja schon angeben kann, welche Version unterstützt wird)... Als ich ein Kommentar hinterlassen wollte, bekam ich allerdings nur ein Internal Server Error :(

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 11:28
von 0x1cedd1ce
Ich nutze python 3 weil ich gleich damit angefangen habe. Mit externen libs hatte ich bislang keine Probleme, weil es immer irgendeine gab die Python3 unterstützt hat. Falls es so etwas nicht gab konnte ich eine bestehende konvertieren und an meine bedürfnisse Anpassen.
@jens PyPy ist keine Sprache sondern ein alternativer Interpreter für Python 2.7. Das PyPy-Projekt ist auch gerade dabei eine Python 3 Version zu programmieren

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 11:41
von frabron
snafu hat geschrieben:Möglichweise hat sich das nach dem 21.12.2012 aber eh erledigt. ;)
Huh? Hab ich was verpasst? Oder ist mal wieder

Code: Alles auswählen

import apocalypse
- Zeit? :D

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 11:46
von jens
0x1cedd1ce hat geschrieben:@jens PyPy ist keine Sprache sondern ein alternativer Interpreter für Python 2.7. Das PyPy-Projekt ist auch gerade dabei eine Python 3 Version zu programmieren
Mir ist klar, das PyPy keine eigene Sprache ist. PyPy und Python 3 haben aber IMHO ähnliche Probleme: Bei beiden hapert es an den Libs...

Ich würde PyPy gern mit Django einsetzten, aber z.Z. wird IMHO nur SQLite voll unterstützt :(

Den Mehrwert bei PyPy (schneller) finde ich aber interessanter als der Mehrwert beim Wechsel auf Python 3.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 14:57
von DasIch
@jens Quora nutzt PyPy, die werden wahrscheinlich nicht SQLite nutzen.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 15:54
von 0x1cedd1ce
@jens, das manche libs nicht funktionieren liegt aber nicht an den libs, sondern an der nicht kompletten Unterstützung der C-Api Seitens pypy.
Wenn du aber einen reinen python Treiber für deine Datenbank nutzt kannst du das auch mit pypy umsetzen. Django selbst läuft mit pypy.

Der Sinn von Python3 ist auch nicht das es schneller ist als Python 2.x. Das ist per se Sinnlos, da es immer auf den Interpreter ankommt. Siehe standard Python und pypy.

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 16:06
von jens
0x1cedd1ce hat geschrieben:Der Sinn von Python3 ist auch nicht das es schneller ist als Python 2.x. Das ist per se Sinnlos, da es immer auf den Interpreter ankommt. Siehe standard Python und pypy.
Das wollte ich auch nicht behaupten ;) Ich sehe es aus dem Standpunkt der Mehrwerts zwischen v2 -> v3 oder v2 -> PyPy...

Re: Python3.x. wann glaubt ihr kann man getrost wechseln?

Verfasst: Montag 21. November 2011, 16:07
von lunar
@0x1cedd1ce: Niemand hat behauptet, der Sinn von Python 3 wäre ein Geschwindigkeitszuwachs gegenüber Python 2. Lies nicht mehr aus Beiträgen heraus als drin steht.

Man kann auch genauso gut sagen, dass es an den Bibliotheken liegt, wenn sie nicht mit PyPy funktionieren. Die Bibliothek könnte schließlich auch ctypes verwenden, dann würde sich die Frage nach der C-API gar nicht stellen. Letztlich ist es aber vollkommen egal, woran es nun liegt, dass eine Bibliothek mit PyPy nicht zu verwenden ist. Für den Entwickler ist nur relevant, dass sie nicht mit PyPy verwendet werden kann, und dass der Entwickler PyPy mithin nicht einsetzen kann. Die Behauptung, man könnte Django mit PyPy verwenden, wenn man einen mit PyPy funktionierenden DB-API-Treiber verwendet, ist vor diesem Hintergrund zwar unbestritten richtig, aber irgendwie nicht so richtig hilfreich, wenn es halt keinen solchen Treiber für die gewählte Datenbank gibt.