FLORIAN-JAEGER - FEBRUAR 2023 - 7 MIN.

Entdecke die Vorteile von Python - Warum es die perfekte Programmiersprache für Dich sein könnte

“Python - Die meistgenutzte Programmiersprache” - Florian zeigt Dir in unserem Blogpost die hilfreichsten Anwendungen und warum es sich lohnt, diese Sprache zu lernen.

academy

tech

Florian

"Welche Programmiersprache soll ich als Nächstes lernen?", fragen sich viele Developerinnen immer wieder. Es ist nicht leicht, diese Frage zu beantworten, da die scheinbar unendliche Auswahl der Programmiersprachen viele überfordert. Jeder kennt doch Aussagen wie: "Lern C++, dann hast Du die Grundlagen drauf!", "Eine Sprache fürs Backend wie PHP solltest Du können!", "Mit Java machst Du nichts falsch!". Man bekommt solche Ratschläge immer wieder zu hören, aber welche Programmiersprache sollte man sich nun letztendlich im Detail ansehen? Es gibt natürlich keine universell richtige Antwort, aber in diesem Blogpost macht unsere Expertin Florian auf eine Programmiersprache aufmerksam, welche mehr im Rampenlicht stehen sollte. Eine der meistgenutzten Programmiersprachen und dennoch stets ein Underdog: Python.\ Um zu zeigen, dass diese Aussage nicht weit hergeholt ist, findest Du nachfolgend eine Grafik der Programmiersprache aus dem TIOBE Index.

<imagesSection images={[ { devices: { mobileAndUp: { src: "/uploads/blogArticle/cloudindary/tiobe_oetyiu.png", aspectRatio: "4/3", alt: "TIOBE Index Python", originalWidth: 426, originalHeight: 542, objectFit: "contain" } } } ]} />

Aus den Graphen geht klar hervor, wie stark sich Python seit ca. 2018  im Aufschwung befindet. Seit 2020 ist Python übrigens auf TIOBE die Nummer 1 Programmiersprache weltweit und wenn der Graph nicht abstürzt wie NFTs in 2022 wird sich das auch nicht so schnell ändern.\ Deshalb gibt es in diesem Blogpost eine Einführung in das Python-Programmieren und einen Vergleich der Syntax mit JavaScript, die auf den ersten Blick doch sehr ungewohnt aussieht. 

Die Syntax im Direktvergleich

Wie unterschiedlich die Syntax Pythons von anderen gängigen Programmiersprachen ist, sieht man schon bei einem sehr einfachen Beispiel. Der Code funktioniert folgendermaßen:

  • Erstellen einer “for-Schleife” mit einer Variable, die von 0 bis 4 zählt * Der Wert dieser wird in eine zweite Variable “output” übergeben * “output” wird in der Konsole ausgegeben
<imagesSection images={[ { devices: { mobileAndUp: { src: "/uploads/blogArticle/cloudindary/python_and_js_uoqczj.png", aspectRatio: "4/3", alt: "Typescript and Python implementation", originalWidth: 1152, originalHeight: 678, objectFit: "contain" } } } ]} />

Natürlich gibt es Unterschiede, wie etwa einen anderen Ausdruck für die Ausgabe an die Konsole, aber viel wichtiger sind grundlegende Syntax-Unterschiede, die den meisten Kennerinnen anderer Sprachen auf den ersten Blick doch sehr komisch vorkommen werden:

  • Geschwungene Klammern gibt es in Python nicht
    • Anfang und Ende von Schleifen, Anweisungen und Funktionen werden mit Einzügen gekennzeichnet
  • Variablen brauchen keine Deklarierung
  • Am Ende einer Zeile wird kein “;” geschrieben

Diese Eigenheiten stoßen bei vielen Anfangs auf Abneigung. Blogbeiträge wie “Why is the syntax of Python so weird?”, “9 Reasons Why Python Is Weird For C++ Developers” oder sogar “8 Reasons Python Sucks” gibt es wie Sand am Meer. Aus den Erfahrungen von unseren JavaScript Developerinnen kann aber durchaus gesagt werden, dass man sich sehr schnell daran gewöhnt. Vor allem für die Anwendungsbereiche von Python ist die vergleichsweise einfach gehaltene Syntax mehr als ausreichend. 

Für was wird Python verwendet?

Das bringt uns auch gleich zum nächsten Punkt: Warum solltest Du Python überhaupt lernen? \ Gleich Vorweg: Riesige Projekte mit komplexen Frontend und Backend wirst und solltest Du wahrscheinlich nicht in Python starten. Dafür kannst Du einfache Skripts und vor allem Data Science und mathematische Anwendungen sehr effizient und schnell erstellen. Im letzten Kundenprojekt von Florian wurde z.B. das Frontend und Backend in JavaScript implementiert, für komplexe mathematische Funktionen wurde aber dennoch auf Python umgestellt. Auch bei künstlichen Intelligenzen, die immer wieder in aller Munde sind, brilliert Python durch externe Packages wie Pytorch, die Dich in wenigen Stunden eine einfache KI implementieren lassen.

Python’s Spitzendisziplin - Mathematik

Nun wollen wir uns eine relativ einfache, aber für den PC dennoch aufwendige Aufgabe ansehen: Das Erstellen von zwei 1000 x 1000 Matrizen und deren anschließende Multiplikation. Diese Aufgabe zeigt, wie viel schneller Python im Vergleich zu anderen Sprachen wie JavaScript ist. Dabei wird das externe “numpy”-Package für Python und das externe “math.js”-Package für JavaScript verwendet, da diese für komplexe mathematische Berechnungen in beiden Sprachen nicht wegzudenken sind.

<imagesSection images={[ { devices: { mobileAndUp: { src: "/uploads/blogArticle/cloudindary/PythonBsp_igumez.png", aspectRatio: "4/3", alt: "MatMul Python", originalWidth: 480, originalHeight: 458, objectFit: "contain" } } } ]} /><imagesSection images={[ { devices: { mobileAndUp: { src: "/uploads/blogArticle/cloudindary/JavaScriptBsp_new0xc.png", aspectRatio: "4/3", alt: "MatMul Javascript", originalWidth: 481, originalHeight: 431, objectFit: "contain" } } } ]} />

Wie man im ersten Code-Beispiel mit JavaScript sieht dauert die Durchführung 19,373 Sekunden. Python erledigt den Job in nur 0,03125 Sekunden. Natürlich kann dieser Versuch nicht wie eine wissenschaftliche Studie bewertet werden, aber das Ergebnis ist doch sehr deutlich ausgefallen. Es sollte auch noch erwähnt werden, dass der verwendete PC sehr leistungsstarke Komponenten verbaut hat. Das bedeutet, mehrere hochdimensionale Matrixmultiplikationen auf einem durchschnittlichen Rechner lassen sich in Javascript nicht sehr wirtschaftlich umsetzen.\ Der Zeitunterschied zieht sich übrigens, wenn auch in abgeschwächter Form, durch alle komplexeren Rechenbeispiele, die getestet wurden. Unter anderem waren das:

  • Matrix-Inverse berechnen (500 x 500 Matrix)
    • Python: 1,2 Sekunden
    • JavaScript: 3,5 Sekunden
  • Matrix-Determinante berechnen (300 x 300 Matrix)
    • Python: 0,06 Sekunden
    • JavaScript: 0,43 Sekunden
  • Matrix Addition
    • Python: 0,015 Sekunden
    • JavaScript: 1,1 Sekunden
  • Maximalen Eintrag einer Matrix finden (4000 x 4000 Matrix) Die Größe der Matrix liegt daran, dass Python mit kleineren Matrizen zu schnell für eine Zeitausgabe ist
    • Python: 0,015 Sekunden
    • JavaScript: 0,5 Sekunden

Des Weiteren bietet Python allgemein eine wesentlich größere Vielfalt an Funktionen.\ Singulärwertzerlegung, nur um ein Beispiel zu nennen, wird in der Mathematik häufig verwendet, ist aber in math.js gar nicht enthalten.

Für was kann Python im Web-Development verwendet werden?

Diese sehr berechtigte Frage stellt sich nun sicher die ein oder andere Developerin von euch und natürlich wird ab jetzt nicht jedes Projekt besser, nur weil ein Teil in Python implementiert werden könnte. Es lohnt sich aber, es im Hinterkopf zu behalten, um bei den geeigneten Projekten eine entsprechende Lösung anbieten zu können. Im vorher bereits erwähnten Kundenprojekt gab es insgesamt fünf hochdimensionale Matrizen, welche jeweils mehrere Berechnungen durchlaufen mussten. Am Ende konnte die Laufzeit des Algorithmus - natürlich mit einigen anderen Verbesserungen - von mehreren Stunden auf wenige Sekunden reduziert werden. Einige der verwendeten Methoden waren in Python bereits vorgefertigt und hätten in JavaScript selbst implementiert werden müssen. In diesem Projekt war die Verwendung von Python ein Make-or-Break für die Kundin.

Konnten wir Dich von Python überzeugen?

Wir hoffen, dass unsere Python-Expertin Florian gut aufzeigen konnte, dass Python doch nicht nur eine “Skripting-Sprache” mit “komischer Syntax” ist. Es ist keine Wundersprache, die für jedes Problem die beste Lösung bietet und wird es sehr wahrscheinlich auch nie sein. Dennoch kann es auch für Web-Developerinnen im Backend viel Zeit und Nerven sparen.

Wenn Du mehr über Python und AI erfahren möchtest, werden Dich sicher auch die nächsten Blogposts interessieren. In denen wird u. a. gezeigt wie man in kurzer Zeit eine einfache Künstliche Intelligenz in Pytorch implementiert kann. Wenn Du jedoch gleich mehr über Python erfahren möchtest und einfach nicht auf den nächsten Blogpost warten kannst, dann melde Dich gerne bei uns oder besuch uns auf einen Kaffee.

pcode - passion for people

Wir entwickeln digitale Produkte. Websites, Onlineshops und Apps für eine maßgeschneiderte User Experience. Projekte von pcode sind sinnstiftend und von Menschen für Menschen gemacht.