Python 3.0 und alte Frameworks
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?
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
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
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Richtig.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?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
Wobei einige auch schon portiert sind, lxml ist z.B. seit Version 2.1 3k-kompatibel.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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.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 ...
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.).BlackVivi hat geschrieben:Projekte müssen zuerst nach Python 3 portiert werden.
Der entscheidende Punkt duerfte sein, wie gut die neuliche Anpassung des SWIG-Backends auf die 3-er API in der Praxis sein wird.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
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
- 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
-
- 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
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.
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also so wie ich mitsuhiko verstanden habe wird es wohl in naher Zukunft keine Python 3-Version geben.Hyperion hat geschrieben:Weiß jemand, wie es bei werkzeug aussieht? Sind da schon PLäne in Richtung Py3k?
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
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.Y0Gi hat geschrieben:Eben der übliche Vorteil bei quasi-monolithischen Systemen
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.Guter Einwand. Ich sehe nur das Problem, dass einfach die Basis - zumindest in der Unix-Welt - fehlt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.Y0Gi hat geschrieben:Guter Einwand. Ich sehe nur das Problem, dass einfach die Basis - zumindest in der Unix-Welt - fehlt.
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