Der Python-Grundsatz im vergleich zu anderen Sprachen

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.
Antworten
sfx2k
User
Beiträge: 48
Registriert: Dienstag 2. September 2014, 13:29

Freitag 12. September 2014, 13:25

Hallo zusammen,

ich bin hauptberuflicher Entwickler in Delphi.
Seit einiger Zeit beschäftige ich mich mit Python.

Auf der einen Seite denke ich, dass es einige Vorteile beim Lernen einer neuen Sprache bringt, wenn man bereits eine andere beherrscht.
Auf der anderen Seite habe ich nun bemerkt, dass dieses auch Probleme mit sich bringen kann.

Mittlerweile habe ich nämlich die Befürchtung, dass ich diese Sprache 'falsch' einsetze.
Soll heißen, dann ich Programme in Python genau so schreibe, wie ich es auch in Delphi tun würde.

Ich glaube aber, nein - ich bin mir sicher, dass manche Probleme in Python ganz anders gelöst werden, als ich anderen Hochsprachen und daher wollte ich mal fragen, ob Euch Seiten/Dokumente etc. bekannt sind, die Problemlösungen anderer Sprachen denen von Python gegenüber stellt.
Ich bin dahingehend leider nicht fündig geworden.

Ich hoffe, dass klar geworden ist, auf was ich hinaus möchte.

Besten Dank.
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 12. September 2014, 13:51

Ich glaube nicht, dass es solche Dokumente gibt. Und wenn doch, dann stehen die Chancen sehr schlecht, dass die sich auch noch mit Delphi und Python beschaeftigen.

Idiomatisches Python bezeichnet man als "pythonic" (evtl lohnt sich eine Suche danach fuer dich), richtet sich grob am "Zen of Python" aus (-> PEP 20 & `import this`) und ist - wie auch bei natuerlichen Sprachen - vor allem eine unklar definierte Empfindung gegenueber dem Text.

Der beste Ansatz, um sich so ein Gefuehl anzutrainieren ist sich bei erfahreneren Feedback zu holen. Hier im Forum wirst du immer jemanden finden, der sich deinen Code anschaut und dir Feedback gibt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 12. September 2014, 13:58

sfx2k hat geschrieben: Auf der einen Seite denke ich, dass es einige Vorteile beim Lernen einer neuen Sprache bringt, wenn man bereits eine andere beherrscht.
Sofern die Sprachen gleiche oder ähnliche Paradigmen haben, ja; wenn nicht, dann ist der Vorteil deutlich geringer, in manchen Bereichen sogar störend (unbefangen lernt sich manches einfacher!).
sfx2k hat geschrieben: Auf der anderen Seite habe ich nun bemerkt, dass dieses auch Probleme mit sich bringen kann.

Mittlerweile habe ich nämlich die Befürchtung, dass ich diese Sprache 'falsch' einsetze.
Soll heißen, dann ich Programme in Python genau so schreibe, wie ich es auch in Delphi tun würde.
Hehe... ja, das ist aber ein weit verbreitetes Problem! Das kann man aber nur durchbrechen, wenn man sich dessen bewusst wird (hast Du ja offenbar erkannt) und sich dann entsprechend gezielt auf die gängigen Idiome einer Sprache einlässt. Schau Dir einfach Grundlagen- oder weiterführende Tutorials an, in denen solche "pythonischen" Vorgehensweisen gezeigt werden. Poste Beispiel-Code hier und Du bekommst eine Menge Feedback darüber, was gut und was weniger gut gelungen ist. Lies Code-Reviews hier mit und versuche zu erfassen, *was* und *wieso* etwas als "unpythonisch" kritisiert wird.

Als Schnellschuss kann man das nicht dauerhaft und tiefgründig "lernen" - imho bringen solche "language X for Y users" Seiten nicht wirklich viel...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3))
assert encoding_kapiert
BlackJack

Freitag 12. September 2014, 14:50

Eventuell könnte man auch in Verbindung mit Python nach „anti patterns” und „idiomatic” suchen. Und wenn der eigene Quelltext eher wie die ersten Ergebnisse aussieht und weniger wie die zweiten, dann macht man wahrscheinlich etwas falsch. :-)
Benutzeravatar
/me
User
Beiträge: 3206
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Freitag 12. September 2014, 15:48

sfx2k hat geschrieben:Mittlerweile habe ich nämlich die Befürchtung, dass ich diese Sprache 'falsch' einsetze.
Soll heißen, dann ich Programme in Python genau so schreibe, wie ich es auch in Delphi tun würde.
Das ist nicht ungewöhnlich. Bei meinen Python-Programmen der ersten 3 Monate könnte ich jetzt noch schreiend weglaufen und das gesamte Zeug aus dem ersten Jahr ist sicher interessant als Studie in kompliziertem Denken, aber gewiss nicht als Beispiel für elegante Python-Programmierung.

Zwei Dinge haben mir im Endeffekt richtig geholfen. Das erste war das Lesen und Verstehen des Tutorials. Zu Beginn bin ich nach der Devise "Ich kann doch programmieren, was soll ich mit dem Tutorial" vorgegangen, aber dann bin ich einige Male virtuell auf die Schnauze gefallen und habe mir dann glücklicherweise doch das Tutorial angeschaut. Noch mehr hat mir - und das ist der zweite Punkt -das Mitlesen hier geholfen. Zu Beginn steht man staunend vor einigen Codeausschnitten. Dann versucht man diesen Code nachzuvollziehen und lernt äußerst viel dabei.
sfx2k
User
Beiträge: 48
Registriert: Dienstag 2. September 2014, 13:29

Freitag 12. September 2014, 19:20

Hallo zusammen,

ich danke Euch für Eure Erläuterungen.

Ich werde in einem separaten Thread mal Quelltext von mir posten, mit der Bitte, diesen zu bewerten.
Besser jetzt als wenn sich die anti pattern fest eingenistet haben :)
Antworten