Ich möchte mal etwas los werden. Auch wenn ich damit wohl alleine da stehe, aber ich finde, dass alles was Python komplizierter macht, nicht in Python rein gehört.
Ich habe das schon mal mitgemacht. Aus Visual Basic 6 wurde Visual Basic.NET. Alles wurde komplizierter. Keiner wollte VB.NET, aber es wurde einem einfach von Microsoft aufgezwungen. Viele Programmierer (ich auch) wanden sich damals von Visual Basic ab.
Und bei Python beobachte ich ähnliche Züge. Zwar nicht so schlimm, aber imerhin. Anscheinend ist es den Python-Entwicklern längst nicht mehr so wichtig, dass Python einfach bleibt. Statt vorhandene Module zu verbessern und gute, neue Module hinzuzufügen, wird an der Sprache gedreht. Man muss ja unbedingt den anderen Programmierern imponieren.
Leute, die komplizierte Einzeiler schön finden, sollten nicht an Python programmieren.
Die für mich schlimmsten Negativbeispiele sind Dekoratoren und Metaklassen. Was soll das? Anstatt am Ende einer Funktion eine andere Funktion aufzurufen, wird bei der Verwendung von Dekoratoren die ganze Funktion an eine andere Funktion (Dekorator) weitergegeben, die dann irgendetwas damit anstellen soll???
Das kommt mir immer so vor wie über den Arsch eine Mandeloperation durchzuführen. Ich habe noch keinen Fall entdeckt, der nicht auch ohne Dekoratoren schön lösbar gewesen wäre.
Schade, dass ich mit dieser Meinung alleine da stehe. Denn sonst hätte sich schon längst ein anderer über diese unnötigen Verkomplizierungen bzw. Veränderungen aufgeregt.
Aber es geht ja noch weiter: ``print`` z.B. wird zu einer Funktion. Warum? Weil sich manche einbilden, dass man das unbedingt überschreiben können soll. Warum wird es nicht so gelassen wie es ist? Warum dieses ständige Umlernen?
Wenn ich ein "print" brauche das nicht so wie das derzeit vorhandene "print" arbeitet, dann schreibe ich eine Funktion und nenne sie "printX" oder "printY". Egal wie! Die Funktion muss doch nicht unbedingt "print" überschreiben! Aber dafür darf man jetzt bei jedem "print" ein Klammernpaar mit angeben -- super! Was macht das für einen Sinn? Aber egal. Statt dass man nach ein paar Jahren endlich sagen kann, dass man *Python-Profi* ist, muss man genauer differenzieren. Man kann nur sagen, dass man *Python 2.0-2.4 Profi* ist. Python 3.0 muss man ja wieder neu lernen. Wenn man überhaupt möchte. Wer weiß was alles in Python 3.0 verkompliziert wurde. Wenn man dann nicht auf die *neuen* Techniken eingeht, dann ist man nicht cool genug.
Aber wenn ich mal ein paar Funktionen statt in einem eigenen Modul in einer Klasse zusammenfassen möchte, weil das Programm damit einfacher und durchschaubarer wird, dann werde ich ausgelacht. Danke!
lg
Gerold
