15. März 2023 von Marc Mezger
Eine kurze Einführung in Programmiersprachen: Python – Die Programmiersprache für Data Engineering und KI
Was ist Python?
Python ist eine vielseitige, hochentwickelte Programmiersprache, die in einer Vielzahl von Branchen eingesetzt wird. Ihre einfache Syntax und leicht zu erlernende Struktur machen sie zur idealen Wahl für Anfängerinnen und Anfänger sowie Expertinnen und Experten gleichermaßen. Einer der Hauptvorteile von Python ist die breite Palette von Bibliotheken und Frameworks, die es Developern ermöglichen, eine Vielzahl von Aufgaben mit minimalem Code auszuführen. Dies macht Python zu einem effizienten Werkzeug für viele Aufgaben wie Data Science, maschinelles Lernen, Webentwicklung und Automatisierung.
Im Bereich der Data Science bieten die Python-Bibliotheken wie NumPy, pandas und Matplotlib leistungsstarke Werkzeuge zur Datenmanipulation, -analyse und -visualisierung. Darüber hinaus ermöglichen die Python-Bibliotheken für maschinelles Lernen wie scikit-learn, PyTorch und TensorFlow die einfache Implementierung komplexer Algorithmen, was Python zu einer beliebten Wahl für die Erstellung von KI-Modellen macht.
Auch in der Webentwicklung ist Python dank seiner leistungsstarken Web-Frameworks wie Django und Flask verbreitet. Diese Frameworks geben Developern die Werkzeuge an die Hand, die sie für die Erstellung robuster und effizienter Webanwendungen benötigen.
Python wird auch häufig für Automatisierungsaufgaben wie Web Scraping und Tests verwendet. Die Flexibilität und Benutzerfreundlichkeit der Sprache machen sie zu einer hervorragenden Lösung für die Automatisierung sich wiederholender Aufgaben, die Zeit sparen und die Effizienz steigern.
Zusätzlich zu seinen Anwendungsmöglichkeiten in den oben genannten Bereichen kann Python auch für die Entwicklung von Desktop- und mobilen Anwendungen, Spielen und sogar für wissenschaftliche Berechnungen verwendet werden.
Eine kurze Geschichte von Python
Python ist eine interpretierte High-Level-Programmiersprache, die 1991 von Guido van Rossum erstmals veröffentlicht wurde. Die Sprache wurde mit dem Ziel entwickelt, einfach zu lesen und zu schreiben zu sein und so effizient wie möglich zu sein, aber dennoch die Verwendung fortgeschrittener Programmierkonzepte zu ermöglichen. Der Name Python kommt nicht von der Schlange, sondern von der Komikertruppe Monty Python.
Die Entwicklung von Python begann in den späten 1980er Jahren, als van Rossum daran arbeitete, eine neue Sprache zu schaffen, die einige der Einschränkungen der damals existierenden Programmiersprachen beseitigen sollte. Er war besonders daran interessiert, eine Sprache zu kreieren, die sich besser für schnelle Entwicklung und Scripting-Aufgaben eignet und sowohl für erfahrene als auch für unerfahrene Programmiererinnen und Programmierer leicht zu bedienen ist.
1989 begann van Rossum, Vollzeit an Python zu arbeiten, und die erste Version der Sprache wurde 1991 veröffentlicht. Diese erste Version von Python war der heutigen Sprache sehr ähnlich, wobei der Schwerpunkt auf Einfachheit und Benutzerfreundlichkeit lag. Im Jahr 1994 wurde die erste Vollversion Python 1.0 veröffentlicht, im Jahr 2000 dann Python 2.0. Python 2.0 besaß neue Features wie Garbage Collection (automatische Speicherbereinigung von nicht mehr verwendeten Variablen), List Comprehension (Verwaltung von Listen und iterierbaren Objekten) und Reference Counting (Verwaltung von Pointern und Referenzen im Speicher).
Abgelöst wurde es dann 2008 von Python 3 der aktuell verwendeten Major Version.
Python 3 entfernte viele Redundanzen und alten Code, was dazu geführt hat, dass Python 3 nicht abwärtskompatibel mit Python 2 ist. Allerdings wurde Python 2 mittlerweile fast vollständig verdrängt, so dass das auch kein Problem mehr ist. In den 2000er Jahren war Python zu einer der beliebtesten Programmiersprachen der Welt geworden, und sie wird auch heute noch häufig verwendet. Viele große Unternehmen und Organisationen, darunter Google, die NASA und die Europäische Weltraumorganisation, verwenden Python für ihre Softwareentwicklung.
In den letzten Jahren hat das Wachstum des maschinellen Lernens und der Data Science zur Entwicklung von beliebten Bibliotheken wie TensorFlow, Pytorch und scikit-learn geführt. Diese Bibliotheken haben Python leistungsfähiger und vielseitiger gemacht, damit komplexe Probleme gelöst werden können.
Python wird weiterhin aktiv von einer großen Gemeinschaft von Mitwirkenden entwickelt und gepflegt, und es werden regelmäßig neue Versionen der Sprache veröffentlicht. Die neueste Version von Python ist Python 3.12, die im Februar 2023 veröffentlicht wurde.
Eigenschaften der Sprache
Bei Python handelt es sich um eine interpretierte und objektorientierte Sprache. Eine Interpreter-Sprache ist eine Sprache, bei der der Code zur Laufzeit erst in Maschinencode übersetzt wird. Im Gegensatz dazu stehen kompilierte Sprachen wie zum Beispiel C++ und Rust, diese Sprachen werden vor der Ausführung in Maschinencode übersetzt. Der Vorteil von interpretierten Sprachen ist, dass Fehler zur Laufzeit vom Interpreter abgefangen werden, so dass Syntaxfehler oder andere Fehler bei der Ausführung des Programms erkannt werden.
Eine objektorientierte Sprache basiert auf dem Konzept von Objekten, die Instanzen einer Klasse sind. Eine Klasse ist dabei ein Entwurf für ein Objekt und definiert Eigenschaften (Variablen) und Methoden, die das Objekt haben können. Klassen können miteinander interagieren und von einer Eigenschaft und Methoden erben. Neben Python sind auch Java und C++ objektorientierte Sprachen.
Beispiel: In der folgenden Abbildung wird die Klasse „Animal“ dargestellt, darin sind die Grundeigenschaften definiert, die alle Tiere besitzen. Die zwei Klassen „Cat“ und „Dog“ erben die Grundeigenschaften und ergänzen sie durch zusätzliche Variablen und Methoden. Eine weitere Eigenschaft ist, dass Zugehörigkeiten in Python durch Einrückungen geregelt werden und nicht wie in anderen Sprachen durch Klammern.
Probleme von Python
Nun möchte ich kurz den Fokus auf Pythons Probleme lenken.
- 1. Leistung: Python ist eine interpretierte Sprache, was sie langsamer machen kann als kompilierte Sprachen wie C oder Java. Außerdem gibt es eine globale Interpreter-Sperre (GIL), die verhindert, dass mehrere Threads gleichzeitig Python-Bytecode ausführen, was die Leistung weiter beeinträchtigt.
- 2. Speicherverwaltung: Python verbraucht im Vergleich zu anderen Sprachen sehr viel Speicher und seine Speicherverwaltung kann zu Speicherlecks führen, wenn sie nicht richtig gehandhabt wird.
- 3. Dynamisch typisiert: Python ist eine dynamisch typisierte Sprache, was dazu führen kann, dass der Code weniger vorhersehbar und schwieriger zu warten ist. Je nach Anwendungsfall kann dies sowohl ein Vorteil als auch ein Nachteil sein.
- 4. Behandlung von Ausnahmen: Die in Python eingebaute Ausnahmebehandlung ist zwar sehr leistungsfähig, kann aber auch dazu führen, dass der Code schwerer zu lesen und zu verstehen ist, wenn er nicht richtig eingesetzt wird.
- 5. Fehlende Parallelisierung: Python verfügt zwar über Bibliotheken für die parallele Programmierung, bietet aber keine integrierte Unterstützung für echte Gleichzeitigkeit.
- 6. Eingeschränkte Entwicklung von Mobilgeräten und Spielen: Python eignet sich nicht gut für die Entwicklung von Mobiltelefonen oder Spielen, da es nicht so schnell ist wie Sprachen wie C++ und auch nicht so einfach zu bedienen für graphische Elemente.
- 7. Inkonsistente Bibliotheksunterstützung: Die Qualität und Unterstützung von Bibliotheken von Drittanbietern kann stark variieren, was es schwierig macht, zu entscheiden, welche Bibliotheken in einem bestimmten Projekt verwendet werden sollen.
Vorteile von Python
Natürlich gibt es auch Vorteile bei der Verwendung von Python:
- 1. Leicht zu erlernen und zu verwenden: Python hat eine einfache und geradlinige Syntax, so dass es sowohl für Anfängerinnen und Anfänger als auch für erfahrene Programmiererinnen und Programmierer leicht zu erlernen und zu verstehen ist.
- 2. Hochsprache: Python ist eine Hochsprache, das heißt, sie abstrahiert viele der Komplexitäten von Low-Level-Sprachen wie C oder Assembly. Das macht es einfacher, Code zu schreiben, zu pflegen und schneller zu entwickeln.
- 3. Große und aktive Gemeinschaft: Python hat eine große und aktive Gemeinschaft, was bedeutet, dass es eine Fülle von Ressourcen und Unterstützung für Entwicklerinnen und Entwickler gibt. Dazu gehören zahlreiche Bibliotheken, Frameworks und Tools, die die Entwicklung beschleunigen und effizienter machen.
- 4. Vielseitig einsetzbare Sprache: Python kann für eine Vielzahl von Aufgaben und Anwendungen benutzt werden, darunter Webentwicklung, Datenanalyse, wissenschaftliche Berechnungen, künstliche Intelligenz und vieles mehr.
- 5. Plattformübergreifend: Python kann auf einer Vielzahl von Plattformen ausgeführt werden, darunter Windows, Mac und Linux, was es zu einer vielseitigen und flexiblen Sprache macht.
- 6. Umfangreiche Standardbibliothek: Python verfügt über eine reichhaltige Standardbibliothek, die eine Vielzahl von Modulen abdeckt, zum Beispiel String-Operationen, Internetprotokolle, Werkzeuge für Webdienste, Betriebssystemschnittstellen und -protokolle.
- 7. Dynamisch und interpretiert: Python ist eine dynamisch getippte und interpretierte Sprache, die das Testen und Debuggen von Code erleichtert und außerdem mehr Flexibilität und Interaktion ermöglicht.
- 8. Objektorientiertes und funktionales Paradigma: Python unterstützt sowohl objektorientierte als auch funktionale Programmierparadigmen, so dass Developer den Ansatz verwenden können, der am besten zu ihren Bedürfnissen passt.
- 9. Beliebt in der Data Science: Die Python-Bibliotheken wie NumPy, pandas und scikit-learn machen Python zu einer beliebten Wahl für die Datenanalyse und -visualisierung.
Die Zukunft von Python
Es ist nicht zu erwarten, dass jemals Python 4 herauskommen wird. Der Grund dafür ist, dass die Migration von Python 2 zu Python 3 bereits kompliziert war und es in der Community große Ablehnung gibt, so einen Prozess noch einmal durchzuführen. Die einzigen Gründe für Python 4 wären laut Guido van Rossum, wenn die zugrunde liegenden C-Bibliotheken sich stark verändern würden oder wenn es eine Chance gäbe, den GIL (Global Interpreter Lock) zu verlieren. Der aktuelle Plan ist, bei Python 3 zu bleiben und keinen neuen Major Release zu veröffentlichen, demensprechend arbeitet auch niemand an Python 4.
Wie für jede Programmiersprache gibt es auch für Python Konkurrenten. Die wichtigste Konkurrenz für Python ist Julia. Julia ist eine hochentwickelte, leistungsstarke Programmiersprache, die speziell für numerische und wissenschaftliche Berechnungen entwickelt wurde. Ihre Syntax ähnelt der von MATLAB, was sie zu einer beliebten Wahl für Forschende und Wissenschaftlerinnen und Wissenschaftler macht, die mit dieser Sprache vertraut sind. Julia hat gegenüber Python mehrere Leistungsvorteile, darunter einen Just-in-Time-Compiler (JIT), der den Code zur Laufzeit kompiliert, und eine optimierte Unterstützung für die Parallelverarbeitung. Python hat jedoch eine viel größere Benutzerbasis und ein etablierteres Ökosystem, so dass es für viele Anwendungen die am weitesten verbreitete Lösung ist. Sowohl Python als auch Julia haben ihre eigenen Stärken und werden für unterschiedliche Zwecke verwendet, und die Wahl zwischen den beiden hängt oft von den spezifischen Anforderungen des Projekts ab. Dies könnte sich in der Zukunft aber ändern, da viele Deep-Learning-Bibliotheken auch mit Julia verwendet werden können.
Hier sind einige Gründe, warum Python voraussichtlich weiter an Popularität gewinnen wird:
- Maschinelles Lernen und künstliche Intelligenz (KI): Python wird häufig in den Bereichen maschinelles Lernen und KI eingesetzt und es wird erwartet, dass die Nachfrage nach diesen Technologien weiter steigt. Daher ist davon auszugehen, dass Python in diesen Bereichen auch in Zukunft weit verbreitet sein wird.
- Data Science: Python ist in den Bereichen Data Science und Big Data weit verbreitet und es wird prognostiziert, dass die Nachfrage nach diesen Technologien auch weiterhin steigen wird. Dies wird auch die Verwendung von Python vorantreiben.
- Internet der Dinge (IoT): Python spielt eine wachsende Rolle im Bereich IoT und eingebettete Systeme, da es über Bibliotheken und Frameworks verfügt, die die Interaktion mit Geräten und Sensoren erleichtern.
- Unterstützung durch große Unternehmen: Python wird von großen Unternehmen wie Google, Facebook und der NASA unterstützt und wird in vielen ihrer Projekte verwendet. Dies trifft vor allem auf die großen Deep-Learning-Frameworks zu (PyTorch von Facebook und TensorFlow von Google). Es ist zu erwarten, dass diese Unterstützung auch in Zukunft anhalten wird, was die Verwendung von Python weiter vorantreiben wird.
Zusammenfassend lässt sich sagen, dass die Popularität von Python in Zukunft weiter steigen wird, angetrieben von der steigenden Nachfrage nach maschinellem Lernen, Data Science, Webentwicklung, IoT und Unterstützung durch große Unternehmen. Infolgedessen wird erwartet, dass Python auch weiterhin weit verbreitet sein wird und eine glänzende Zukunft hat.
Weitere spannende Themen aus der adesso-Welt findet ihr in unseren bisher erschienen Blog-Beiträgen.