Ist Python 3 ausgereift?

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.
lunar

Montag 30. Juli 2012, 09:40

@deets: Um Windows 8 oder andere Microsoft-Produkte geht es mir nicht, insofern ist mir auch der verlinkte Artikel egal. Ich finde die Sprachen und Plattformen von MS attraktiv, eben weil sie kontinuierlich weiterentwickelt werden. Deine Einschätzung, dass es MS an einer energetischen Community fehlt, entspricht nicht meiner Erfahrung. Für mich ist die .NET-Community sehr präsent.

C# hat sich in den letzten Jahren stark verändert, weil Microsoft die Sprache entwickelt hat, weg von einem Java-Klon, hinzu einer eigenen Sprache mit sehr vielen funktionalen Aspekten. Das Programm Deines Kollegen stammt vielleicht aus der Zeit von C# 2.0. Es wäre damit so alt wie Python 2.5 und mithin alles andere als modern.

Modern sind C# 4.0 und Bibliotheken wie Reactive Extensions und darauf aufbauend ReactiveUI. So sollte asynchrone GUI-Programmierung aussehen: Keine explizite Parallelität, dafür implizites Marshalling zwischen verschiedenen Threads, und alles mit einer funktionalen Syntax. Ob diese Ansätze in der „Brot-und-Butter“-Entwicklung relevant sind, weiß ich nicht, ich glaube es nicht. Aber Brot-und-Butter-Programmierung ist doch nicht das Maß der Dinge…

In Python sind die Lösungen für Parallelität bei "QThread" stehen geblieben, Brot und Butter eben… C# 5 bringt Syntax für task-basierte, parallele Programmierung. Ob die Syntax „gut schmeckt“, sprich sinnvoll ist, kann ich nicht beurteilen, aber es ist wenigstens ein Versuch, parallele Programmierung zu vereinfachen. Wo siehst Du solche Versuche, solche Entwicklungen in der Python-Community?

Dein Verweis auf Twisted bestätigt doch nur smas These, dass sich die Community auf Erreichtem ausruht. Twisted ist asynchron, ja, und funktioniert wirklich hervorragend. Modern, oder auch nur bequem, ist es nicht. Die API ist vorsintflutlich, ich möchte 2012 keine Klassen mehr ableiten und Handler überschreiben müssen, um asynchron auf Ereignisse reagieren zu dürfen.
deets

Montag 30. Juli 2012, 12:00

@lunar

Ich finde schon, das Brot-und-Butter relevant ist. Wenn sich in akademischen Ecken Dinge tun ist das schoen und gut, aber wenn diese Impulse nicht in die Koepfe der Entwickler diffundieren ist damit wenig getan. Und wenn ich mich nicht irre, hast auch du selbst an anderer Stelle (ich mag das jetzt nicht ewig raussuchen) gerade die Integration zB bezueglich Installer/Executable Generierung und GUI-Builder als Pluspunkt angefuehrt. Wenn die nun fuer alles, was innovativ ist (und mein Ausflug in VS Express GUI Building hat mir da nix gezeigt, dass ich zB mit dem Qt Designer nicht auch so hinbekomme) nicht gegeben ist, dann finde ich das als Argument fuer die Plattform weniger gewichtig.

Aber selbst wenn wir mal in der rein akademischen Ecke bleiben: Twisted ist *alt*, tornado, gevent & co sind es nicht. Alles Frameworks, mit denen du asynchron und moderneren Paradigmen arbeitest. Von Ausruhen kann da doch nicht die Rede sein.

Parallelitaet bei QThread? Wo ist multiprocessing, dass zum einen das GIL-Problem umschifft, und zum anderen message-passing beinhaltet? Das ist halt so mal nebenbei mit eingeflossen, funktioniert AFAIK aber gut und tut genau das, was es soll, mit dem richtigen Ansatz des message passing. Wo ist deiner Ansicht nach der Unterschied/Vorteil der C#-5 Ansaetze?

Last but not least: PyPy experimentiert im Moment mit transaktionalem Memory, um Parallelitaet + GIL in den Griff zu bekommen. ISt das *kein* fortschrittlicher Ansatz?

Meine These ist halt, dass vieles, das in anderen Bereichen hochgehangen wird in Python eher nebenbei Einzug erhaelt bzw. halt "einfach geht".

Die beiden grossen Themen Optimierung & Paralelisierung werden von PyPy in zumehmender Geschwindigkeit angegangen. RPython hat sich als solide Plattform bewaehrt, auf der sogar sprachfremde VMs mit JIT erstellt werden - und das ganz ohne den riesen Hype der zB damals um Parrot gemacht wurde, dass dann sang+klanglos verschwand.

Und irgendwie war das schon immer mein Eindruck: Python entwickelt sich ohne grossen Druck von aussen stetig weiter, und fuer vieles nach dem die Leute mit einem mal schreiben gibt's schon was.

Was halt schade ist (aber vielleicht auch gut, wer weiss) ist, dass zB Apple den Ansatz, Python mit pyobjc als Cocoa-Enwicklungsumgebung wieder eingestellt hat. Ich vermute dahinter das Streamlining mit iOS, womit der Fokus aus Performance-Gruenden doch wieder staerker auf Objective-C gelegt wurde. Und Microsoft ist ja anerkanntermassen niemals willig, etwas bestehendes zu nehmen & drumrum ein Oekosystem zu bauen, sondern baut alles neu. Von da wird also auch nix kommen.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Montag 30. Juli 2012, 14:11

Ich finde, eine Diskussion wie diese zeichnet das Forum aus. Eine harmlose Frage nach Python 3, der OT taucht nicht mehr auf, aber es entbrennt eine Diskussion über Innovation.

Danke dafür :)
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
snafu
User
Beiträge: 5909
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Montag 30. Juli 2012, 14:19

@jbs: Das ist jetzt aber nicht ironisch gemeint, oder? Weil, die Antworten mögen zwar an der Ausgangsfrage vorbeigehen, aber aufschlussreich sind sie ja dennoch.
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Montag 30. Juli 2012, 14:41

Python braucht nichts spektakuläres Neues machen, das Konzept ist gut. Eine Suchfunktion oder ein Datenverarbeitungsprogramm kann nicht das, was ich mir wünsche: schon schreibe ich eine Lösung in Python. Selbst wenn ich was im Webbereich machen würde, würde ich mir schon erst einmal Python und seine Frameworks anschauen. Es geht nur einfach nicht so glatt, wie man sich das vorstellt. Die Umstellung ist dabei ein Faktor, aber im Allgemeinen stört mich oft das Verhalten der Gemeinschaft (missachtet PEP8, Inkompatibilitäten, Abhängigkeit von Hobby-Entwicklern, die alle Jubeljahre mal weiter machen).
lunar hat geschrieben:@bremer: PyGtk ist wie Gtk 2 selbst veraltet, und durch PyGObject ersetzt, welches Python 3 unterstützt. py2exe lässt sich durch cx_freeze ersetzen, welches ebenfalls Python 3 unterstützt. Um wxPython ist es nicht schade, denn wx ist veraltet. Darüber hinaus unterstützen PyQt, PyQwt, numpy, scipy und diverse andere Bibliotheken Python 3. Die Situation ist also weiß Gott nicht so dramatisch, wie Du sie darstellst.
Da sind ein paar hilfreiche Ratschläge bei.

Ich könnte noch viele weitere erwähnen, auch welche, mit denen ich arbeiten wollte. Die Hemmung in der Entwicklung ist da, die Spaltung ist da, das lässt sich halt nicht wegdiskutieren. Wenn sie vorüber ist, sind vielleicht 7 Jahre vergangen. 7 Jahre, in denen Python nicht das Maximum an Mächtigkeit und Praktikabilität erreicht hat, die sie theorethisch besitzt.
sma hat geschrieben:
bremer hat geschrieben:Von ausgereift kann also keine Rede sein. Ich finde man muss da schon die Sprache als ganzes mit all seinen Abhängigkeiten betrachten und nicht nur den Kern.
Das sehe ich offensichtlich anders. Alle Module sind optional und letztlich ist es eine Entscheidung der Modul-Entwickler, nicht die letzten 4 Jahre genutzt und auf Python 3.x umgestellt zu haben. Python wäre bereit gewesen. Irgendwer muss einfach anfangen und nicht immer nur auf den jeweils anderen verweisen, der auch nicht umstellen will. Letztlich haben irgendwann alle Schuld, dass Python zwar nicht verschwindet, aber immer weniger attraktiv für neue Projekte ist und somit mit "mindset der community" keine Rolle spielt (ähnlich wie Perl, das mal "die" Sprache für Webentwicklung war und inzwischen dort keine Rolle mehr spielt).
Mit so einer politischen Haltung kann ich nichts anfangen, da bleiben wir also verschiedener Meinung.
deets

Montag 30. Juli 2012, 15:07

Ein paar weitere Thesen:

1) Und wenn Python Version 3 erst gar nicht eingefuehrt haette, dann wuerde es durch den akkumulierten Ballast in der Bedeutungslosigkeit verschwinden.

2) Wenn es den Umstieg auf 3 erzwungen haette fuer alle Module durch Abkuendigung von Version 2 waeren alle, die von diskontinuierten Modulen abhaengig waren, auf andere Plattformen migriert, und Python wuerde in der Bedeutungslosigkeit verschwinden.

3) Wenn es den Umstieg auf 3 erzwungen haette fuer alle Module durch Abkuendigung von Version 2 haette sich ein Fork von Python 2 gebildet, und die Community waere fragmentiert. Python wuerde in der Bedeutunglosigkeit verschwinden.

Alles genauso Wahrscheinlich oder unwahrscheinlich wie deine Annahmen ueber die relative Bedeutung (oder Losigkeit). Niemand hat ein Rezept fuer die richtige Balance zwischen Innovation und Konstanz. Wenn der gute problembaer noch hier waere, er wuerde sich ueber Python2.3 freuen als Mass aller Dinge.

Ich finde darum Diskussionen dieser Art ziemlich fruchtlos. Keiner hat eine Zeitmaschine, mit der man Gewissheit in diesen Fragen erzielen wuerde.

Ob Python im Vergleich zu anderen Plattformen/Sprachen/Oekosystemen relevant ist oder nicht hingegen kann man betrachten. Offensichtlich fuerchten da einige die Versenkung. Ich nicht. Wir werden sehen :)
BlackJack

Montag 30. Juli 2012, 15:20

@deets: Ich weiss es ist Spekulation aber These 1) ist IMHO unwahrscheinlich, weil Python 3 letztendlich nicht sooo viel geändert hat. Was einige als Grund sehen warum so zögerlich gewechselt wird — es bringt nicht so wirklich viele Vorteile oder Anreize auf 3 zu wechseln wenn man mit 2 ganz zufrieden ist.

Und angeblich hat Guido doch eine Zeitmaschine. Also muss das Vorgehen das beste sein was möglich war. ;-)
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Montag 30. Juli 2012, 15:21

snafu hat geschrieben:@jbs: Das ist jetzt aber nicht ironisch gemeint, oder? Weil, die Antworten mögen zwar an der Ausgangsfrage vorbeigehen, aber aufschlussreich sind sie ja dennoch.
Nein, das ist mein voller ernst.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Montag 30. Juli 2012, 15:28

jbs hat geschrieben:Ich finde, eine Diskussion wie diese zeichnet das Forum aus. Eine harmlose Frage nach Python 3, der OT taucht nicht mehr auf, aber es entbrennt eine Diskussion über Innovation.

Danke dafür :)
Ich fand die Diskussion auch super (keine Ironie). Ich sehe übrigens kein Problem darin das Python keine Sprache für Android, iOS, oder Windows GUIs für den Massenmarkt ist. Natürlich gibt es Ausnahmen, aber die sogenannten "Apps" werden doch zum Großteil mit dem Toolchain der Platform gecodet, genauso wie Windows Anwendungen mit irgendeiner NET Sprache oder C. Das Windows eines normalen Anwenders kommt ohne Java aus, weil er einfach kein (GUI-)Programm hat was das unbedingt benötigt.

Das tolle an Python sind die Bindings. Gerade im Moment fallen mir dazu ROS.org (Roboter Operating System) und openCV. Beides C/C++ Projekte die von sich aus Python Bindings pflegen. Der Fluch daran ist das einem dann genau diese vielen 3rd Party Libs auch den upgrade auf Python 3.X so schwer machen. Den wer will 2 verschiedenen Versionen nutzen, wenn er auch alles noch in 2.7 machen kann?

Ich habe die Hoffnung das der Umstieg auf 3.X durch die Linux Distros bei der Mehrheit der Menschen ankommt, unter anderem auch bei mir. Die neu organisierte stdlib, unicode überall und das neue Divisionsverhalten sind doch schon drei Gründe. Und zum anderen ist Python 3 keine neue Sprache und Python 2.3 nutzt auch keiner mehr der es nicht aus irgendeinem seltsamen Grund muss.
friedduck
User
Beiträge: 76
Registriert: Montag 23. Juli 2012, 20:41

Montag 30. Juli 2012, 17:58

jbs hat geschrieben:Ich finde, eine Diskussion wie diese zeichnet das Forum aus. Eine harmlose Frage nach Python 3, der OT taucht nicht mehr auf, aber es entbrennt eine Diskussion über Innovation.

Danke dafür :)
hehe, da habe ich ja was losgetreten ;)

Im ernst, ich war willig mit Python 3 anzufangen, aber der Weg dorthin ist verdammt steinig...
jerch
User
Beiträge: 1633
Registriert: Mittwoch 4. März 2009, 14:19

Donnerstag 2. August 2012, 00:34

:shock:

Ist Python tot? Oder im Begriff zu sterben? Sind wir auf dem Weg zum Perl-Grab, um der Sprache die letzte Ruhe daneben zu gewähren? Sind die Hipster alle weiter gezogen und lassen nur die Unverbesserlichen zurück? Ist eine multiparadigmatische Sprache zum Scheitern verurteilt, weil sie nix von allem richtig kann? Sind die PyPy/JIT-Versuche nur lose aufgelegte Matrosenhände auf die von schweren Geschützen in die Planken geschossene Lecks des Pythonschiffes?
lunar

Donnerstag 2. August 2012, 08:02

@jerch: Hatten wir diese Diskussion nicht gerade erst in verschiedenen Ausprägungen?
BlackJack

Donnerstag 2. August 2012, 08:25

Ist denn heute schon Freitag? Ist das hier das Heise-Forum? :twisted:
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Donnerstag 2. August 2012, 09:03

Hatten wir schon.

Zsfg: Python ist immer noch eine mäßig erfolgreiche Baustelle und populärer als PERL.
Benutzeravatar
jens
Moderator
Beiträge: 8487
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 2. August 2012, 11:20

lunar hat geschrieben:@jerch: Hatten wir diese Diskussion nicht gerade erst in verschiedenen Ausprägungen?
Genau, deswegen hab ich das zusammen gepackt.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten