Python 3.0 und alte Frameworks

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
deamon
User
Beiträge: 63
Registriert: Mittwoch 8. Oktober 2008, 11:14

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?
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

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 :)
deamon
User
Beiträge: 63
Registriert: Mittwoch 8. Oktober 2008, 11:14

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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 ...
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.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Django ist eines der wenigen Frameworks, die (zumindest teilweise) portiert wurden: http://wiki.python.org/moin/PortingDjangoTo3k
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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 :-)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Eben der übliche Vorteil bei quasi-monolithischen Systemen :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Guter Einwand. Ich sehe nur das Problem, dass einfach die Basis - zumindest in der Unix-Welt - fehlt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
Antworten