Programmiersprachen: Arten, Beispiele und Einsatzgebiete

Programmiersprachen sind in der Programmierung verwendete Regelsysteme, deren Befehle und Logiken von einem Computer ausgelesen und umgesetzt werden.
Programmiersprache ist die stumme Sprache der Technik. Eine Frau hält sich die Hand vor dem Mund, auf der ein Papp-Mund geklebt ist.
© deniskomarov

Definition

Programmiersprachen sind Strukturen und Algorithmen, die als Befehle für einen Computer fungieren, der daraufhin eine Rechenleistung ausführt. Sie folgen dabei einem Regelsystem bzw. Muster, welches Syntax genannt wird. Ein Beispiel für eine Syntax, welche fälschlicherweise oft als Programmiersprache bezeichnet wird, ist HTML, kurz für HyperText Markup Language. Es ist eine reine Auszeichnungssprache ohne die für Programmiersprachen typischen Logiken und Bedingungen.

Programmiersprachen werden für die Softwareentwicklung und die Webentwicklung verwendet. Dabei werden sie in ein Dokument eingetragen, das in einem Text-Editor erstellt wird und Anweisungen enthält. Die Gesamtheit der Anweisungen nennt sich Quelltext. Der Prozessor, die Recheneinheit eines Computers, versteht diese Zeichenfolgen allerdings nicht, um den Quelltext auszuführen, muss er also in Computersprache übersetzt werden.

Die Computersprache ist ein Binärcode, der nur aus zwei (daher: bi) Zahlen besteht, nämlich Einsen und Nullen. Die Zahl 2 wäre ausgedrückt im Binärcode also 10. Auf dieser Tatsache basiert auch ein Programmierer-Witz, der besagt, dass es genau 10 Arten von Menschen gebe: Die, die den Binärcode verstehen und die, die ihn nicht verstehen.

Die Einsen und Nullen, die nichts anderes als wahr (1) oder falsch (0) bedeuten, heißen Bits und lassen sich digital und technisch nutzen. Wenn also beispielsweise eine Spannung anliegt, würde dies im Code als 1 ausgedrückt werden und keine Spannung entsprechend als 0.

Sequenzen aus Einsen und Nullen, sogenannte Bitfolgen, lassen sich per ASCII abbilden. ASCII steht für American Standard Code for Information Interchange und dabei handelt es sich um siebenstellige Bitfolgen. Alle Zeichen, einschließlich Buchstaben und Sonderzeichen, lassen sich in einen ASCII-Code umwandeln.

Ursprünglich musste dies manuell vorgenommen werden, heutzutage wird der Quelltext durch einen sogenannten Assembler, welcher eine mechanische Übersetzung in Maschinensprache vornimmt, oder einen Compiler in die Computersprache übersetzt. Ein Compiler bietet mehr Freiheiten als ein Assembler und optimiert den Code teilweise sogar. Assembler und Compiler sind entweder eigenständige Programme oder sind im Framework enthalten.

Geschichte

Geht man vom Grundgedanken aus, so existierten Programmiersprachen und Codes sogar, bevor es Computer gab. 1805, im Rahmen der Industrialisierung, wurde der erste mechanische Webstuhl nach Lochkarten entwickelt. Das Prinzip war sehr nahe am Binärcode: Je nach Bedingung, ob ein Loch (1) oder kein Loch (0) vorhanden war, entstand im Prinzip je nach Abstand ein unterschiedlicher Code. Auch der Morsecode aus dem Jahr 1837 lässt sich als Vorläufer von Programmiersprachen bezeichnen.

Erstes Computerprogramm und erster Computer

Das erste Computerprogramm wurde 1843 von Ada Lovelace veröffentlicht. Es diente zur Verarbeitung von Zahlen, Musiknoten, Buchstaben und Bildern. Ende der 1970er Jahre wurde nach ihr auch die Programmiersprache Ada benannt. Erst ein ganzes Jahrhundert nach der Entwicklung des ersten Computerprogramms wurde der erste Computer von Konrad Zuse entwickelt. Der Z3 basierte, wie auch der erste mechanische Webstuhl, auf dem Lochkartenprinzip. Darauf folgten die ersten binären Computer- und Assemblersprachen, welche Prozessor-Befehle ausgaben.

Erste Programmiersprachen

1959 entstand die Programmiersprache COBOL, kurz für Common Business Oriented Language, welche bis heute noch als Programmiersprache für kaufmännische Anwendungen verwendet wird. Im Jahre 1960 entstand Algol60, eine prozedurale Programmiersprache, die für numerische Zwecke eingesetzt wurde. Sie folgte einem imperativen Prinzip und legte den Grundstein für spätere Sprachen wie BASIC und C.

Diese Sprachen haben allerdings nur wenig mit der menschlichen Sprache zu tun. Aus diesem Grund entwickelten sich höhere Programmiersprachen, deren Befehle verbaler formuliert wurden, sodass sie zugänglicher wurden. Anders als der Name vermuten lässt, sind “höhere” Programmiersprachen also nicht komplizierter, sondern vereinfacht. Dies brachte allerdings den Nachteil mit sich, dass sie nicht mehr von (Mikro-)Prozessoren gelesen werden konnten, sodass sie in die Computersprache rückübersetzt werden müssen, wie es auch heute noch üblich ist.

Ungefähr ab 1980 wurden objektorientierte Sprachen weiterentwickelt. Seit den Anfängen des Internets in den 1990er Jahren haben sich sogenannte Skriptsprachen zur Programmierung von kleineren Anwendungen oder Webanwendungen entwickelt, wie beispielsweise PHP.

Heutiger Stand

Vor allem das Aufkommen von Entwicklungsumgebungen und Entwicklungsframeworks hat die Arbeit von Programmierern revolutioniert und zu einer großen Zeit- und Kostenersparnis geführt, da dort teilweise bereits Codefragmente enthalten sind oder sich zumindest leicht aufrufen lassen.

Im Bereich der Webentwicklung ist es als Laie nicht mehr zwingend notwendig, eine Programmiersprache zu beherrschen, da durch Baukästen, CMS und andere Tools die Erstellung einer Homepage oder mindestens des Frontenddesigns, also der Bedienoberfläche von Websites und Webanwendungen, größtenteils visuell oder per Drag and Drop möglich ist.

Arten von Programmiersprachen

Abgrenzung zu HTML oder XML

Wie eingangs erwähnt gehören HTML und XML nicht zu den Programmiersprachen, sondern zu den Auszeichnungssprachen. Ursprünglich haben sie sich aus der SGML, kurz für Standard Generalized Markup Language, weiterentwickelt. Als Syntax enthalten sie keine Logiken oder Bedingungen, sondern sind ein reines Regelsystem, mit dem sich beispielsweise das Grundgerüst von Websites festlegen lässt.

Die HTML Syntax besteht aus Elementen, welche Absätze, Bilder und Buttons sein können. Diese werden mit sogenannten Tags und Attributen geöffnet und geschlossen: Ein Eröffnungs-Tag für einen neuen Absatz, dessen Attribut ein p ist, lautet beispielsweise <p>, um diesen abzuschließen, wird ein Schrägstrich hinzugefügt: </p>. So wird für das jeweilige Element der Gültigkeitsbereich abgegrenzt. Zwischen diesen beiden Tags befindet sich der Elementinhalt, also beispielsweise ein Text. So lassen sich Schriftgrößen (gekennzeichnet als H1, H2, H3, usw.) festlegen, Elemente wie Listen einfügen oder multimediale Inhalte wie Bilder oder Videos setzen. Um vor allem optische Details festzulegen und diese für wiederkehrende Elemente zu vereinheitlichen, wird CSS verwendet.

Abgrenzung zu CSS

Auch CSS, kurz für Cascading Style Sheets, ist keine Programmiersprache, sondern eine Auszeichnungssprache, die für die visuelle Gestaltung, beispielsweise einer Website, verantwortlich ist. Oft geht es Hand in Hand mit HTML. Hier können Farben, Schriftfamilien und andere optische Parameter festgelegt werden, auf die wiederum im HTML-Dokument Bezug genommen werden kann. Dadurch ergibt sich eine enorme Zeitersparnis, weil die unterschiedlichen Elemente so nach dem Klassenprinzip definiert werden können und ihre Eigenschaften nicht manuell und immer wieder aufs Neue zugeordnet werden müssen.

Maschinensprachen

Maschinensprachen können direkt vom Computer ausgeführt werden. Sie bestehen aus Prozessor-Anweisungen, Meta-Statements, also sogenannten Pseudo-Ops, Daten und Kommentaren. In den meisten Fällen sind Maschinensprachen plattformabhängig, was bedeutet, dass ein Code nicht auf unterschiedlichen Chips ausgeführt werden kann und beispielsweise nur Windows-kompatibel ist. Sie bilden die Basis für alle anderen Programmiersprachen, die höheren Programmiersprachen sind zwar plattformunabhängig, müssen aber immer wieder in die Maschinensprache zurückübersetzt werden.

Systemprogrammiersprachen

Mit Systemprogrammiersprachen wird der Quellcode für das Ausführen von Betriebssystemen oder Computerprogrammen verfasst. Dieser nimmt Einfluss auf die nativen Fähigkeiten und Funktionen eines Computers.

Überblick über die meistverwendeten Programmiersprachen

Es gibt unzählige Programmiersprachen, die es aufzuzählen unmöglich wäre. Dennoch sollen die wichtigsten und am häufigsten verwendeten hier kurz genannt sein.

C

Die Programmiersprache C wird als die “Mutter” der Programmiersprachen bezeichnet. Es gibt sie schon seit 1972 und sie wird für Betriebssysteme, Anwendungen und im Bereich Games angewendet.

C++

C++ gilt als Erweiterung von C und wurde 1979 entwickelt. Sie wird für objektorientierte Ansätze und Hardwareprogrammierung mit Klassen und Objekten verwendet. Im Zusammenhang mit C++ verwendete Frameworks sind beispielsweise .NET, Visual Studio und QT.

C#

Im Jahr 2000 stellte Microsoft mit C# eine eigene Sprache vor, die sich stark an C++ und Java orientiert. C# wird für Anwendungen mit dem .NET-Framework und für Games (z.B. für XBox) mit dem XNA-Framework herangezogen. Insgesamt ist C# hauptsächlich für Windows ausgelegt.

Java

Java wurde im Jahre 1995 entwickelt und wird für Anwendungen, Apps, Games und für das Backend von Webanwendungen verwendet. Der große Vorteil von Java ist seine Plattformunabhängigkeit, allerdings mit der Ausnahme von mobilen Apple-Geräten, mit Java werden eher native Apps für Android geschrieben oder von anderen Sprachen kompiliert, beispielsweise von JavaScript. In universitären Kontexten findet diese Programmiersprache viel Anwendung. Zu den mit Java verwendeten Frameworks zählen Spring MVC, Spring Boot und Jakarta EE.

Skriptsprachen

Skriptsprachen haben im Gegensatz zu Systemprogrammiersprachen keinen so großen Einfluss auf die nativen Fähigkeiten von Computern, da sie auf einer Teilmenge der ursprünglichen Programmiersprache ausgeführt werden. Skriptsprachen haben einen Fokus auf Webanwendungen.

JavaScript

JavaScript gibt es seit 1995 und ist bis heute eine der wichtigsten Skriptsprachen im Bereich der Webentwicklung. Sie wird vor allem für die Programmierung von dynamischen Websites, Anwendungen und Games eingesetzt.

JavaScript wird im Browser ausgeführt und eignet sich daher auch für die Entwicklung von Apps, es muss nur ein Code erstellt werden, der für alle Plattformen ausführbar ist. Es ist der heutige Standard bei hybriden Apps und kaum eine Internetseite kommt ohne JavaScript aus. Die gängigsten Frameworks für JavaScript sind unter anderem React.js, Angular.js und Node.js. Die Zugehörigkeit dieser Frameworks lässt sich auch an ihrer Endung “js” erkennen, welche für JavaScript steht.

PHP

Die Programmiersprache PHP wurde 1995 primär für Webanwendungen entwickelt und wird auch heute noch dafür verwendet, mittlerweile haben sich aber auch andere Anwendungsbereiche für PHP ergeben. Sie lehnt sich an C und Perl an, ist allerdings hauptsächlich für die dynamische Websiteerstellung ausgelegt, für die technisch gesehen kaum Grenzen gesetzt sind. Für PHP verwendete Frameworks sind unter anderem Laravel, Symfony, CakePHP und Zend. Seit PHP 7 und insbesondere seit PHP 8 sind bei Performance und Sprachfunktionen deutliche Fortschritte zu verzeichnen.

Python

Python gibt es seit dem Jahre 1991. Zu seinen Anwendungsbereichen gehören kleine Werkzeuge und Webserver. Auch wird Python im Bereich Machine Learning, künstliche Intelligenz und Grafik eingesetzt. Für Python geeignete Frameworks sind unter anderem Django, Pyramid und Turbo Gears. Zu den CMS, die auf Python basieren, zählen Wagtail und django CMS.

Ruby

Im Jahre 1995 entwickelt, wird Ruby vor allem für die Programmierung von Webservern angewendet. Dabei handelt es sich um eine Kombination aus den Programmiersprachen Perl, Smalltalk, Eiffel, Ada und Lisp. Bei Rechnern mit dem Betriebssystem Linux ist es meist dabei und für den Mac sogar vorinstalliert. Ohne das zugehörige Framework Ruby on Rails hätte diese Programmiersprache nicht so sehr an Popularität gewonnen. Andere Frameworks sind beispielsweise Padrino oder Sinatra.

SQL

SQL ist eine deklarative Datenbanksprache, die Mitte der 1970er Jahre entwickelt wurde. Ihr Anwendungsbereich ist vor allem Datenbanken. Heutzutage ist es so, dass die Datenbank häufig nicht mehr direkt angesprochen wird, sondern durch einen Abstraktions-Layer, der in einer der Programmiersprachen geschrieben ist. Dieser übernimmt die Übersetzungsleistung zwischen unterschiedlichen Datenbank-Systemen. Datenbankabfragen können also unabhängig erfolgen, was gerade im Web-Bereich Anwendung findet.

Auf SQL aufbauende Datenbanksysteme sind unter anderem MySQL, eine Open-Source-Software, sowie SQLite, das beispielsweise in Betriebssystemen von Mobiltelefonen oder im Browser Mozilla Firefox verwendet wird. Nicht zu verwechseln damit ist SQL Injection (SQLi), eine Angriffstechnik, mit der über unzureichend geprüfte Eingaben Daten aus einer Datenbank abgegriffen werden können.

Swift

Swift ist eine noch sehr junge Programmiersprache aus dem Jahr 2014 und eine Weiterentwicklung von Objective-C. Sie wurde von Apple entwickelt und ist auch hauptsächlich für Apple-Anwendungen ausgelegt, ist aber auch mit Linux kompatibel. Sie kommt für Software, Desktop-Anwendungen für den Mac und iOS-Apps zum Einsatz.

Go

Go ist eine Programmiersprache von Google, die 2009 vorgestellt wurde und deren erste stabile Version 2012 erschien. Sie wurde entwickelt, um Probleme von C++ und Java zu lösen und verfügt über eine hohe Übersetzungsgeschwindigkeit bei der Kompilierung. Die bekanntesten Frameworks für Go sind unter anderem Beego, Buffalo, Echo oder Gin.

Frameworks und CMS

Wie sich schon bei den Kurzbeschreibungen der Programmiersprachen abzeichnet, gehen diese meist mit bestimmten Frameworks Hand in Hand. Mehr noch drückt sich die Beliebtheit der Sprachen in den Frameworks aus, ohne die einige Programmiersprachen nicht mehr existent wären. Einige von ihnen sollen hier kurz genannt sein, ausführliche Beschreibungen finden sich auf der Glossarseite zu Entwicklungsframeworks.

Laravel

Laravel ist ein freies Webframework, das 2011 als Alternative zu CodeIgniter auf den Markt kam. Es beinhaltet Features wie Authentifizierung und Autorisierung und ist aufgrund seines Out-of-The-Box-Prinzips sehr beliebt.

Angular

Im Jahre 2016 brachte Google das Framework Angular als Nachfolger von AngularJS heraus, welches speziell für die Entwicklung von dynamischen Websites geeignet ist und einen Mobile-First-Ansatz verfolgt.

.NET

.NET ist ein 2002 von Microsoft veröffentlichtes Framework, das vor allem für Windows- und Serveranwendungen herangezogen wird, mit ASP.NET aber auch Webanwendungen abdeckt, und mit einer Vielzahl an Programmiersprachen kompatibel ist. Durch die integrierte Laufzeitumgebung können Programme nicht nur entwickelt, sondern auch ausgeführt werden.

Ruby On Rails

Ruby on Rails ist ein 2005 entwickeltes Webframework, welches anders als die meisten Frameworks nur für eine einzige Programmiersprache, nämlich Ruby, verwendbar ist. Durch sein ungewöhnliches Prinzip, welches Wiederholungen beim Verfassen des Codes vermeiden soll, kann die Entwicklungszeit erheblich verkürzt werden.

Symfony

Symfony ist ein PHP-Framework aus dem Jahre 2005, welches wiederverwendbare Bibliotheken und Komponenten enthält und als Antwort auf Ruby on Rails entstand, da dieses nur mit der Programmiersprache Ruby verwendbar ist und der Wunsch nach einem ähnlichen Framework für PHP bestand.

CMS

Content Management Systeme, kurz CMS, erfordern in der Regel keine Programmiersprache, da ihre Benutzeroberfläche das Einpflegen von Inhalten nach dem What-You-See-Is-What-You-Get-Prinzip erlauben. Damit sind CMS weitaus weniger komplex als Frameworks, basieren aber manchmal darauf.

Performance: Programmiersprachen im Vergleich

Das Ermitteln der Performance, also der Leistung von Programmiersprachen, ist ein komplexer Vorgang. Da viele unterschiedliche Faktoren, wie beispielsweise das System und die Hardware einen großen Einfluss auf die Schnelligkeit haben können, wird mit sogenannten Benchmarks gemessen. Dies sind neutrale Mess- und Bewertungsverfahren, die unter anderem für Hard- und Software, Frameworks und Programmiersprachen verwendet werden können. Sollen Programmiersprachen verglichen werden, wird der Quellcode kompiliert und mithilfe von Virtuellen Maschinen, Interpretern oder Librarys ausgeführt. Gemessen wird die Performance dann anhand der Parameter Ausführungszeit, Speicherverbrauch und Energieverbrauch.

Nicht zu verwechseln mit der Performance ist die Verbreitung einer Sprache. Der TIOBE Index misst ausdrücklich keine Geschwindigkeit, sondern die Popularität von Programmiersprachen anhand von Suchanfragen, Kursen und verfügbaren Entwicklern. Sprachen wie Python, C, C++, Java und JavaScript liegen dort regelmäßig weit vorn, was jedoch keine Aussage über ihre Ausführungsgeschwindigkeit in einem konkreten Projekt zulässt.

TenMedia: Web-, App- und Softwareentwicklung

TenMedia ist eine dynamische Internetagentur direkt im Herzen Berlins. Wir haben uns seit 2011 auf die Softwareentwicklung sowie die technische Entwicklung von Websites, Online-Portalen, Onlineshops, Apps und Cloud-Software spezialisiert. Neben unseren eigenen Projekten entwickeln wir maßgeschneiderte Web- und Softwarelösungen genau nach Kundenauftrag und verwenden dafür modernste Technologien. Je nach Vorhaben entscheiden wir uns individuell für das für das Projekt passendste Framework, CMS und Programmiersprache wie beispielsweise Java, JavaScript, PHP, Python, Ruby, SQL, Swift und viele weitere.

Aktuelle Themen