Seite 1 von 2

Python 3.0 und alte Frameworks

Verfasst: Donnerstag 4. Dezember 2008, 17:14
von deamon
Sind eigentlich Probleme zu erwarten, wenn man Frameworks verwendet, die für Python < 3.0 geschrieben wurden, aber man Python 3.0 verwendet? Wenn ich das richtig sehe, sind die zu erwarten. Aber das würde ja bedeuten, dass man Python 3.0 auf absehbare Zeit nicht produktiv einsetzen könnte, weil erst alle Framworks portiert werden müssten. Ist das so?

Verfasst: Donnerstag 4. Dezember 2008, 17:27
von BlackVivi
Ja.

Projekte müssen zuerst nach Python 3 portiert werden. Man sollte keine Projekte schreiben, die für beide Versionen laufen. Allerdings ist's nich soooo unendlich schwer zu portieren. Python 2.6 installieren, Projekte mit -3 laufen lassen, alle Warnungen ausbessern und 2to3 laufen lassen... Natürlich kann es sehr doof sein, insbesondere wenn man ganz schlechten Code geschrieben hat :)

Verfasst: Donnerstag 4. Dezember 2008, 17:37
von deamon
Ich bezog mich auf externe Bibliotheken wie meinetwegen CherryPy oder SQLAlchemy. Die müssen ja alle erst portiert werden, bevor man die mit Python 3 verwenden kann. So lange muss man wohl auch neue Projekte noch in Python 2.6 schreiben.

Re: Python 3.0 und alte Frameworks

Verfasst: Donnerstag 4. Dezember 2008, 17:39
von Leonidas
deamon hat geschrieben:Aber das würde ja bedeuten, dass man Python 3.0 auf absehbare Zeit nicht produktiv einsetzen könnte, weil erst alle Framworks portiert werden müssten. Ist das so?
Richtig.

Verfasst: Donnerstag 4. Dezember 2008, 19:06
von Hyperion
Wobei "produktiv" ja immer eine sehr subjektive Sache ist. Wenn man außer der Standard-Lib nichts braucht, spricht ja nicht viel dagegen; außer dass es eben einer 3.0er ist ...

Verfasst: Donnerstag 4. Dezember 2008, 19:31
von lunar
Wer kann schon produktiv mit der Standardbibliothek arbeiten? Für alles größere benötigt man früher oder später externe Bibliotheken ...

Wobei einige auch schon portiert sind, lxml ist z.B. seit Version 2.1 3k-kompatibel.

Verfasst: Donnerstag 4. Dezember 2008, 20:32
von Hyperion
lunar hat geschrieben:Wer kann schon produktiv mit der Standardbibliothek arbeiten? Für alles größere benötigt man früher oder später externe Bibliotheken ...
Sicher! Aber manche Dinge sind ja eben durch aus auch Standalone. Und nen XML-Parser ist ja schon etwas, womit man so einiges machen kann in der Praxis.

Ist nur eine Frage der Zeit

Verfasst: Freitag 5. Dezember 2008, 19:39
von farid
BlackVivi hat geschrieben:Projekte müssen zuerst nach Python 3 portiert werden.
Bei aktiven Projekten duerfte es nicht so lange dauern, besonders jetzt wo 3 auch offiziell released wurde. Probleme gibt's allenfalls bei verwaisten oder selten gepflegten Projekten. Da kann's eine ganze Weile dauern. Und auch bei Projekten, die an einer bestimmten Version von Python gekettet zu sein scheinen (Zope2 z.B.).

Der entscheidende Punkt duerfte sein, wie gut die neuliche Anpassung des SWIG-Backends auf die 3-er API in der Praxis sein wird.

Re: Ist nur eine Frage der Zeit

Verfasst: Freitag 5. Dezember 2008, 19:46
von Leonidas
farid hat geschrieben:Der entscheidende Punkt duerfte sein, wie gut die neuliche Anpassung des SWIG-Backends auf die 3-er API in der Praxis sein wird.
DIe C-API hat sich laut birkenfeld nicht sonderlich verändert, daher glaube ich nicht dass von der Seite besonders große Probleme zu erwarten sind. Zudem SWIG ja inzwischen auch nicht mehr so populär ist wie das früher mal der Fall war.

Verfasst: Samstag 6. Dezember 2008, 13:21
von sma
Tja, welches der Zillionen von Webrahmenwerken für Python bietet sich mir denn jetzt an, wenn ich Python 3 benutzen will? Nun wäre die Chance für jedes Rahmenwerk gekommen, meine Gunst zu gewinnen :)

Django hat sie verstreichen lassen. Da es keine externen Abhängigkeiten hat, wäre es eigentlich eine überschaubare Aufgabe. Da es aber mit diversen Tricks noch Kompatbilität bis 2.3 gewähren will, ist es aber offenbar auch nicht so einfach. Die Kernentwickler haben AFAIK bislang kein ernsthaftes Interesse gezeigt, Python 3 zu unterstützen.

Die Argumentation ist dabei immer die selbe: Die Bedeutung der Version ist ja noch zu gering, da es zu wenige User gibt. Aber natürlich gibt es wenige User, wenn die bekannten Bibliotheken nicht verfügbar sind. Irgendwer muss da mal den ersten Schritt gehen.

Der endlich zeitgemäße Einsatz von Unicode sollte doch vieles einfacher machen; ebenso das vereinfachte Objektsystem. Naja, mal abwarten...

Stefan

Verfasst: Samstag 6. Dezember 2008, 23:54
von birkenfeld
Django ist eines der wenigen Frameworks, die (zumindest teilweise) portiert wurden: http://wiki.python.org/moin/PortingDjangoTo3k

Verfasst: Sonntag 7. Dezember 2008, 05:07
von Leonidas
Persönlich benötige ich nur lxml was Py3k-kompatibel ist und pyparsing. Von dem her werde ich wohl mit meinem Web-Kram wohl bald auf 3.0 sein unc auf die anderen Leute die nocht 2.x nutzen müssen mit einem Grinsen gerabschauen ;)

Verfasst: Sonntag 7. Dezember 2008, 12:26
von Hyperion
Weiß jemand, wie es bei werkzeug aussieht? Sind da schon PLäne in Richtung Py3k? Afaik käuft ja mod-wsgi schon auf Py3k, wäre also demnach für werkzeug schon ein Anreiz imho :-)

Verfasst: Sonntag 7. Dezember 2008, 12:48
von Y0Gi
Mir ist es wichtig, zunächst 2.6 benutzen zu können. Das wird aber wohl nur in Debian (und damit Ubuntu) von 2.5 aktualisiert werden, wenn Debian Lenny released ist. Und so wie der Verlauf die letzten Wochen ausgesehen hat, kann das noch eine ganze Weile dauern.

Ein `python3'-Paket (mit 3.0b3) gibt es zwar in Ubuntu, aber noch nicht in Debian und nützt mir damit für meine öffentlichen Web-Apps nichts.

Verfasst: Sonntag 7. Dezember 2008, 14:53
von Leonidas
Hyperion hat geschrieben:Weiß jemand, wie es bei werkzeug aussieht? Sind da schon PLäne in Richtung Py3k?
Also so wie ich mitsuhiko verstanden habe wird es wohl in naher Zukunft keine Python 3-Version geben.

An dieser Stelle muss man zugeben, dass Django einen Vorteil hat, denn Django-User nutzen zu einem großen Teil eben nur Django und wenn Django auf 3.0 läuft dann sind sie fit für 3.0. Bei Pylons und Werkzeug muss man eben warten bis die Autoren der einzelnen Komponenten ihre Software migrieren oder eben auf etwas anderes umsteigen.

Verfasst: Sonntag 7. Dezember 2008, 17:28
von Y0Gi
Eben der übliche Vorteil bei quasi-monolithischen Systemen :)

Verfasst: Sonntag 7. Dezember 2008, 18:09
von Leonidas
Y0Gi hat geschrieben:Eben der übliche Vorteil bei quasi-monolithischen Systemen :)
Ja, stimmt. Die Portierung macht auch noch einige Probleme aber wenn sie mal da ist wird sie der Adaptation von Python 3 einen wohl ziemlich beträchtlichen Schub geben. Daher bin ich insbesondere gespannt wie es bei Django weitergeht.

Verfasst: Sonntag 7. Dezember 2008, 20:12
von Y0Gi
Guter Einwand. Ich sehe nur das Problem, dass einfach die Basis - zumindest in der Unix-Welt - fehlt.

Verfasst: Sonntag 7. Dezember 2008, 20:24
von Leonidas
Guter Einwand. Ich sehe nur das Problem, dass einfach die Basis - zumindest in der Unix-Welt - fehlt.
Momentan ja, aber das nächste Ubuntu wird 2.6 und 3.0 mitbringen, selbiges gilt für Fedora. Problematischer ists da bei Debian, das in Lenny nur mit 2.5 kommt und so weder die Vorwärtskompatibilität bietet noch "The Real Thing", 3.0. Aber vielleicht ist ja dann bei Lenny+1 3.0 ja schon etabliert. Das ist wichtig, weil eben Debian für Server gerne eingesetzt wird. Da müsste man dann in dieser Zeit auf Backports zurückgreifen was natürlich nicht ganz so optimal ist.

Verfasst: Samstag 13. Dezember 2008, 09:56
von sma
Y0Gi hat geschrieben:Guter Einwand. Ich sehe nur das Problem, dass einfach die Basis - zumindest in der Unix-Welt - fehlt.
Bei Python mag das anders sein, aber ansonten würde ich mal sagen, die Unix-Welt ist eher egal. Wer sich für Python interessiert und Windows nutzt, wird sich die aktuelle Version 3.0 laden und damit beginnen. Sobald er (oder sie) bemerkt, dass viele Bibliotheken nicht funktioniert, gibt es zwei Möglichkeiten: Wechsel auf eine ältere Version oder wechsel zu einer anderen Programmiersprache. Ich würde wahrscheinlich den zweiten Weg gehen.

Hey, selbst Rails hat es inzwischen geschafft, auf Ruby 1.9 lauffähig zu sein und statt die gute alte Zeit zu beschwören, beschwören dort Leute wie Dave Thomas die Community, Gems 1.9 kompatibel und so den Fortschritt möglich zu machen.

Übrigens: Django macht es sich mit seiner Rückwärtskompatibilität bis 2.3 auch nicht gerade einfacher, auf 3.0 portiert werden zu können. Ich denke, man muss das System letzlich branchen, alle alten Zöpfe abschneiden und sauber auf 3.0 aufsetzen. An sonsten wird dieses str/unicode-Gehühnere entgültig undurchschaubar.

Stefan