Beiträge

Was ist Python?

Bei Python handelt es sich um eine performante, objektorientierte Programmiersprache, die sich durch eine leicht zu lernende Syntax auszeichnet. Die Alpha-Version der Programmiersprache hat der niederländischen Informatiker Guido Van Rossum Ende der 1980er Jahre entwickelt. Die öffentliche Vorstellung fand im Februar 1991 statt.

Woher stammt der Name?

Die Programmiersprache hat ihren Namen nicht, wie es oft vermutet wird, in Anlehnung an die Riesenschlange bekommen. Der Programmierer Guido Van Rossum war ein leidenschaftlicher Fan der britischen Comedy-Show „Monty Python’s Flying Circus“. Namensgeber für die Programmiersprache war diese Serie.

Wodurch zeichnet sich die Programmiersprache aus?

Im Vergleich zu ähnlichen Programmier- und Skriptsprachen, wie beispielsweise C, C++ oder Node.js ist Python wesentlich leichter zu verstehen und zu schreiben. Generell ist die Syntax äußerst elegant und sehr ausdrucksvoll, sodass Sie mit wenigen Zeilen Code viel erreichen können. Python wird unter der Open Source-Lizenz vertrieben und kann kostenlos auch für den kommerziellen Gebrauch genutzt werden.

Das objektorientierte Programmierparadigma gibt Ihnen die Möglichkeit, durch die Erstellung logischer Objekte komplexe Vorgänge in kleinere und übersichtliche Einzelteile aufzuteilen. Durch die Micro-Service-Architektur ist es möglich, Python-Code in Kombination mit anderen Programmiersprachen wie Rust oder C++ zu nutzen.

Auch auf andren Plattformen nutzbar

Einer der wesentlichen Vorteile der Programmiersprache ist ihre hohe Flexibilität sowie Portabilität. In Python geschriebene Anwendungen lassen sich prinzipiell, ohne größere Änderungen im Programmcode vornehmen zu müssen, auf unterschiedlichen Plattformen nutzen. Man kann die Anwendungen auf Windows-, Linux– und Max OS-Systemen nutzen.

Bei Python handelt es sich wie bei PHP oder JavaScript um eine sogenannte „Interpretirsprache“. Das bedeutet, dass der Programmcode wie bei traditionellen Programmiersprachen nicht erst vor der Ausführung kompiliert werden muss, sondern Pythonanwendungen werden direkt aus dem Quellcode heraus interpretiert und ausgeführt. Das vereinfacht  den Prozess der Programmierung wesentlich, da Sie  nicht auf die manuelle Speicherverwaltung achten müssen. Darüber hinaus müssen Sie sich auch nicht darum kümmern, ob die korrekten Programmbibliotheken richtig verlinkt und geladen wurden.

Reine Anwendungen von Python sind langsamer

Python bringt jedoch auch einige Nachteile mit sich. Da es sich hierbei um eine interpretierte Skriptsprache handelt, sind reine Pythonanwendungen langsamer in ihrer Ausführung und benötigen mehr Arbeitsspeicher. Wenn Sie Anwendungen benötigen, die äußerst performant und effizient sind, dann setzen Sie bei einem Teil der Anwendung auf anderen Programmiersprache, wie zum Beispiel C++.

Was sind die Einsatzgebiete von Python?

Aufgrund der übersichtlichen und intuitiven Syntax und Programmstruktur wird Python sowohl in der Entwicklung komplexer Anwendungen als auch bei der Erstellung einzelner Module, die in andere Programmiersprachen integriert werden können, verwendet.  Man nutzt Python , um einzelne Module zu entwickeln, die sich immer wieder verwenden lassen. Einer der wesentlichen Vorteile der Sprache ist die gigantische Auswahl an Bibliotheken für numerische und wissenschaftliche Kalkulationen, die sich schnell und unkompliziert in bestehende Module einbinden lassen.

Große Unternehmen nutzen Software

Python wird von bekannten Unternehmen wie Google, Microsoft, Tesla oder Netflix in den Bereichen KI (künstliche Intelligenz), Spracherkennung und neuronale Netzwerke eingesetzt, um Anwendungen zu entwickeln, die sich durch ein hohes Maß an Autonomität auszeichnen. Darüber hinaus nutzt man Python auch bei der Entwicklung skalierbarer Webanwendungen. Hier kommen sogenannte „Frameworks“ wie Django und Flask zum Einsatz, die auf der Programmiersprache aufbauen und die Entwicklung moderner Webapps wesentlich beschleunigen. Viele bekannte Websites, wie zum Beispiel reddit oder Instagram basieren auf diesen Frameworks. Einsatzgebiete von Python sind ebenso Deep Learning, Data Mining und Maschine Learning.

Welche Softwareprodukte basieren auf dem Programm

Die Programmiersprache kommt aktuell in einer Vielzahl unterschiedlicher kommerzieller Softwareprodukte und Open-Source-Lösungen zum Einsatz. Einige bekannte Anwendungen, die auf Python aufbauen sind:

–              Blender

–              OpeShot

–              OpenOffice

–              Civilization 4

–              Battlefield 2

 

Ist es schwer Python zu lernen?

Falls Sie Kenntnisse in anderen Programmiersprachen wie Java oder Go haben, sollten Sie in der Regel nicht mehr als 10 Tage benötigen, um die Grundlagen dieser Skriptsprache zu erlernen, um einen einfachen Code schreiben zu können. Zahlreiche Online-Plattformen bieten Python-Video-Kurse an, die Sie zum Lernen benutzen können. Darüber hinaus stehen Ihnen zahlreiche Tutorials mit Übungen im Netz kostenlos zur Verfügung. Insgesamt sollten Sie etwa 2 Wochen einplanen, um Basiswissen in der Programmiersprache zu erlangen.

C++ ist eine der beliebtesten und weitverbreitetsten Programmiersprachen, die in der modernen Softwareentwicklung eingesetzt werden, um eine Vielzahl unterschiedlicher Anwendungen zu entwickeln. Als Weiterführung der strukturierten C-Programmierung setzt die Programmiersprache auf ein objektorientiertes Modell.

Entwicklungsgeschichte und Eigenschaften von C++

Die Programmiersprache C++ ist weit verbreitet und wird vielfältig genutzt. Ursprünglich ist sie als eine Weiterentwicklung zu der Programmiersprache C entstanden. Aufgrund der engen Verwandtschaft der beiden Programmiersprachen ist es möglich, auch in C++ hardwareorientierte, effiziente und performante Anwendungen zu entwickeln. Die Programmiersprache ermöglicht es, ein reines objektorientiertes Paradigma zu benutzen, also mit Klassen, Objekten, Methoden und Attributen komplexe Konstrukte zu erstellen. Da es sich hierbei um eine sehr umfangreiche Sprache handelt, ist es empfehlenswert, zunächst mit den Grundkonstrukten (Datentypen, Operatoren, Kontrollstrukturen) zu starten.

Die unterschiedlichen Versionen des Programms im Überblick

Die Programmiersprachen C++ wurde im Jahr 1979 von dem dänischen Informatiker Bjarne Stroustrup entwickelt. Im Laufe der Jahre wurde die Sprache kontinuierliche weiterentwickelt und durch neue Funktionalitäten und Features erweitert. Im Jahr 1998 wurde die standardisierte Version mit der Bezeichnung C++98 veröffentlicht. Weitere neue Funktionen und Verbesserungen wurden mit den Standards 03, 11, 14 und 17 in den Jahren 2003, 2011, 2014 und 2017 eingeführt. An der Version 20 wird schon mit Hochdruck gearbeitet.

 

Entwickler, die mit C++ arbeiten möchten, sollten unbedingt eine IDE (Integrated Development Environment) nutzen, die volle Unterstützung für den 11-Standard bietet. Bekannte und weitverbreitete IDEs für C++ sind:

–              NetBeans

–              Visual Studio

–              Eclipse

–              Xcode

Optionale Objektorientierung bei C++

Entwickler werden bei C++ nicht dazu gezwungen, ein bestimmtes Programmierparadigma befolgen zu müssen. So wird beispielsweise Objektorientierung weder vorausgesetzt noch erzwungen. Sie können auch rein imperativen Code schreiben, der von einem C-Compiler akzeptiert wird. Dies hat sich im Laufe der Jahre als wesentlicher Vorteil für die Verbreitung der Sprache erwiesen und ermöglicht, performante und effiziente Anwendungen zu entwickeln. Im Gegensatz zu traditionellen objektorientierten Sprachen, wie zum Beispiel Java oder C#, können Programmierer mit C++ eine mehrfache Vererbung (multiple Inheritance) realisieren. Konkret bedeutet das, dass eine Klasse mehr als eine Basisklasse haben kann. Im Folgenden gehen wir auf ein Beispiel für Vererbung in C++ im Detail ein:

Um ein Gesellschaftsspiel zu entwickeln, benötigen Sie u. a. Klassen für Kugelschreiber, Geldstücke und die Basisklasse.

–              Den Würfel können Sie mittels eines Zufallsgenerators realisieren. Zu diesem Zweck existiert in C++ bereits die nötige Basisklasse „RandomNumberGenerator“, von der die Klasse alle Methoden und Attribute erbt.

–              Für den Kugelschreiber können Sie einen Binärzähler benutzen. Die angemessene Basisklasse wäre hierfür „BinaryCounter“.

–              Die Geldstücke sind ein Zahlungsmittel und erben von der Basisklasse „Currency“. Sie können die Gelstücke aber auch als Binärzähler definieren (Zahl = Null, Kopf = Eins).

Java, C#, C++

In traditionellen objektorientierten Programmiersprachen, wie beispielsweise Java oder C# muss sich der Entwickler für eine Basisklasse entscheiden. Zusätzliche Vererbungen kann nur durch den Einsatz von Interfaces realisieren, die ausschließlich abstrakte Funktionen enthalten können. Wie bereits C bietet C++ die Unterstützung für Makros und ein performantes generisches Programmierparadigma mittels Templates. Generische Programmierung gibt Entwicklern die Möglichkeit, einen parametrischen Polymorphismus einzusetzen, der das Überladen mit gleichnamigen Funktionen mit unterschiedlichen Argumenten ermöglicht.

Benutzeroberfläche und Bibliotheken

Es sind zahlreiche Bibliotheken erhältlich, welche die bereits sehr umfangreiche Funktionsvielfalt von C++ noch zusätzlich erweitern. So sind beispielsweise für die Entwicklung von Anwendungen mit Benutzeroberflächen und Zugriff auf Datenbanken verschiedene Bibliotheken erhältlich. Die bekannteste und beliebteste ist die Bibliothek Qt mit der dazugehörigen IDE Qt-Creator. Seit der Version 5.7, die im Juni 2016 veröffentlicht wurde, bietet Qt volle Unterstützung für C++ 11. Obwohl Qt primär mit C++ genutzt wird, kann die IDE auch mit anderen Programmiersprachen wie Python genutzt werden.

In Qt kommt die sogenannte ereignisorientierte Programmierung zum Einsatz. Auf den Benutzeroberflächen sind Steuerungselemente (Widgets) platziert, mit deren Hilfe der Nutzer die Anwendung bedient. Bei einem Ereignis handelt es sich zum Beispiel um einen Klick auf eine Schaltfläche oder die Auswahl eines Eintrags. Bei diesem Vorgang gibt es ein Signal, welches mit einem Slot verbunden sein kann. Dabei handelt es sich in den meisten Fällen um eine Funktion, deren Code aufgrund des Ereignisses aufgerufen wird.

Sprachdesign des Programms

Bei C++ kommen nur etwa 60 Schlüsselwörter zum Einsatz, die den sogenannten „Sprachkern“ bilden. Die eigentliche Funktionalität wird der Sprache durch ihre Standardbibliothek verliehen. Diese bringt der Sprache wichtige Funktionalitäten bei, wie beispielsweise Arrays, Listen oder Vektoren, und stellt die Verbindungen zum Betriebssystem dar (iostream, fstream, …). Je nach Einsatzgebiet kann man die Programmiersprache durch den Einsatz zusätzlicher Bibliotheken erweiterten. Eine der wichtigsten Stärken der Programmiersprache liegt in der Kombination effizienter, maschinennaher Programmierung mit mächtigen Sprachmitteln, mit denen sich komplexe Implementierungsdetails weitestgehend zusammenfassen und hinter einer abstrakten und leicht verständlichen Befehlsfolge verbergen lassen.

Einige Designelemente der Sprache werden jedoch auch häufig kritisiert. So hat die Programmiersprache beispielsweise keine Garbage Collection.Man kann jedoch den Speicher manuell verwalten, was jedoch ein hohes Maß an Erfahrung voraussetzt. Denn eine fehlerhafte Speicherverwaltung kann schwerwiegende Folgen haben, die meist in Programmabstürzen und diversen ähnlichen Bugs enden.