Eine Programmiersprache ist eine formale Sprache zur Formulierung von Datenstrukturen und Algorithmen, d. h. von Rechenvorschriften, die von einem Computer ausgeführt werden können.[1] Sie setzen sich üblicherweise aus schrittweisen Anweisungen aus erlaubten (Text-)Mustern zusammen, der sogenannten Syntax.
Während die ersten Programmiersprachen noch unmittelbar an den Eigenschaften der jeweiligen Rechner ausgerichtet waren, werden heute meist problemorientierte oder auch (allgemeiner) höhere Programmiersprachen verwendet, die eine maschinenunabhängigere[2] und somit für den Menschen leichter verständliche Ausdrucksweise erlauben. In diesen Sprachen geschriebene Programme können automatisiert in Maschinensprache übersetzt werden, welche unmittelbar von einem Prozessor ausgeführt werden kann. Zunehmend kommen auch visuelle Programmiersprachen zum Einsatz, welche den Zugang zu Programmiersprachen erleichtern.
Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es werden nur seine Anfangswerte und Bedingungen festgelegt, sowie die Regeln, die das Ergebnis erfüllen muss.
Die Programmiersprachen lassen sich in Kategorien einteilen, die sich im evolutionären Verlauf der Programmiersprachen-Entwicklung als sog. Programmierparadigmen gebildet haben. Grundlegend sind die Paradigmen der strukturierten, der imperativen, der deklarativen und der objektorientierten Programmierung – mit jeweils weiteren Unterteilungen. Eine Programmiersprache kann jedoch auch mehreren Paradigmen gehorchen, das heißt die begriffsbestimmenden Merkmale mehrerer Paradigmen unterstützen.
Strukturierte Programmiersprachen[Bearbeiten | Quelltext bearbeiten]
→ Hauptartikel: Strukturierte Programmierung
Strukturierte Programmierung ist Anfang der 1970er Jahre auch aufgrund der Softwarekrise populär geworden. Es beinhaltet die Zerlegung eines Programms in Unterprogramme (prozedurale Programmierung) und die Beschränkung auf die drei elementaren Kontrollstrukturen Anweisungs-Reihenfolge, Verzweigung und Wiederholung.
Programmierparadigmen
Imperative Programmiersprachen
Ein in einer imperativen Programmiersprache geschriebenes Programm besteht aus Anweisungen (latein. imperare = befehlen), die beschreiben, wie das Programm seine Ergebnisse erzeugt (zum Beispiel Wenn-dann-Folgen, Schleifen, Multiplikationen etc.).
Deklarative Programmiersprachen
Den genau umgekehrten Ansatz verfolgen die deklarativen Programmiersprachen. Dabei beschreibt der Programmierer, welche Bedingungen die Ausgabe des Programms (das Was) erfüllen muss. Wie die Ergebnisse konkret erzeugt werden, wird bei der Übersetzung, zum Beispiel durch einen Interpreter festgelegt. Ein Beispiel ist die Datenbankabfragesprache SQL.
Ein Programm muss nicht unbedingt eine Liste von Anweisungen enthalten. Stattdessen können grafische Programmieransätze, zum Beispiel wie bei der in der Automatisierung verwendeten Plattform STEP 7, benutzt werden.
Die Art der formulierten Bedingungen unterteilen die deklarativen Programmiersprachen in logische Programmiersprachen, die mathematische Logik benutzen, und funktionale Programmiersprachen, die dafür mathematische Funktionen einsetzen.
Objektorientierte Programmiersprachen
→ Hauptartikel: Objektorientierte Programmierung
Im Gegensatz zur prozeduralen Programmierung, wo zuerst die verarbeitenden Prozeduren im Fokus stehen („Was will ich rechnen?“) und die Daten „irgendwie durchgeschleust“ werden, konzentriert sich die objektorientierte Programmierung zunächst auf die Daten: „Mit welchen Dingen (der Real-/Außenwelt) soll gearbeitet werden? Welche Attribute/Daten beschreiben diese (→ Objekt-Klassen)?“ Erst anschließend wird die Handhabung zu den Objekten entworfen (→ Methoden, „was kann man mit diesem Objekt machen? Was kann dieses Objekt für das Programm machen?“). Die Methoden werden den Daten zugeordnet, und zusammen werden beide in Objekten/Objekt-Klassen zusammengefasst. Objektorientierung verringert die Komplexität der entstehenden Programme, macht sie wiederverwendbarer und bildet die Realität meist genauer ab als dies bei rein prozeduraler Programmierung der Fall ist.
Objektorientierung bietet die folgenden Paradigmen:[6]
Verbergen von Implementierungsdetails: Ein Objekt bietet dem Verwender eine festgelegte Menge an Möglichkeiten (Methoden), es zu ändern, zu beeinflussen, etwas zu berechnen oder Auskünfte zu erhalten. Darüber hinausgehende Hilfsroutinen oder Zustandsspeicher werden verborgen, auf sie kann nicht (direkt) zugegriffen werden.
Vererbung, Spezialisierung und GeneralisierungVererbung heißt vereinfacht, dass eine abgeleitete Klasse die Methoden und Attribute der Basisklasse ebenfalls besitzt, also erbt. Zudem kann sie zusätzliche Attribute und Eigenschaften besitzen und zusätzliche Handlungsmöglichkeiten bieten – eine abgeleitete Klasse ist ein „Spezialfall“ der Basisklasse.
Umgekehrt kann gleiche Funktionalität mehrerer Klassen in eine gemeinsamen Basisklasse „ausgelagert“ werden, wo sie nur noch 1 Mal programmiert ist, was Code spart, leichter wartbar ist und ggf. für weitere Spezialklassen wiederverwendbar ist – sie erben einfach von dieser Basisklasse; die Basisklasse beschreibt das generelle Verhalten aller abgeleiteten (Spezial-)Klassen.
Ein Objekt einer Spezialklasse kann stets auch als Mitglied der Basisklasse betrachtet werden. Dadurch kann in einer Variable, die ein Objekt der Basisklasse aufnehmen kann, auch ein Objekt einer abgeleiteten Klasse gespeichert werden, denn aufgrund der Vererbung bietet es ja die Methoden und Attribute der Basisklasse.
Quelle: Programmiersprache – WikipediaDieser Artikel soll dir einen Überblick über die verschiedenen Programmiersprachen geben und soll dir zeigen, dass die Programmiersprachen an sich gar nicht so verschieden sind. Hier werden die gängigsten Programmiersprachen kurz vorgestellt und erklärt, diese wurden aus dem sogenannten TIOBE-Index genommen, welcher die Beliebtheit von Programmiersprachen misst. Mit welcher Programmiersprache nun loslegen sollte, wird hier nicht empfohlen auch wenn es einen klaren Favoriten gibt. Welcher das ist und warum, liest du in diesem Artikel.
Wie fängt man das Programmieren lernen an?
Programmiersprachen in 2021/2022
Hier werden die folgenden Programmiersprachen kurz erklärt:
JavaScript
Java
C und C++
C# (C Sharp)
Visual Basic
PHP
Python
Scratch
Delphi/Object Pascal
Swift
SQL
HTML & CSS (Vorsicht Hater!)
Bei der Erklärung wird die Sprache kurz vorgestellt und erläutert, was mit den jeweiligen Sprachen programmiert werden kann.
Damit solltest du einen guten Überblick bekommen und findest hier die richtige Programmiersprache für deine Umsetzung.
Ausserdem erhälst du einen Mikroeinblick, wie diese Sprache tatsächlich aussieht, damit wirst du schnell merken, dass die meisten Sprachen sich ziemlich ähnlich sind.
Nur wenige Sprachen sehen komplett anders aus. Das Beispiel welches dabei verwendet wird, ist natürlich kein funktionsfähiges Programm, es soll lediglich einen Auschnitt zum Verständnis abgeben. Aber es enthält alle Grundelemente, die eine moderne Programmiersprache enthält, diese Grundelemente wären:
Funktionen/Methoden
Variablen/Objekte
Befehle/Anweisungen
Operatoren
Entscheidungen
Schleifen
Kommentar
Wenn du diese nicht verstehst, kein Problem. Diese wirst du später ohnehin erlernen, egal in welcher Sprache du loslegst.
ACHTUNG: Wähle die Sprache nicht wegen des Aussehens aus! Wähle die Sprache, die dir am meisten nutzt und mit der du lange Erfahrung sammeln kannst. Mit genügend Erfahrung wird dir der Wechsel zu einer anderen Programmiersprache sehr leicht fallen.
Javascript
Die wohl bekannteste Sprache für Webanwendungen ist Javascript. Mit dieser Sprache lassen sich nicht nur dynamische Webseiten programmieren, sondern auch richtige Anwendungen und sogar Spiele erstellen.
Ein riesiger Vorteil ist, dass Javascript keine Zusatzprogramme benötigt, denn es kann einfach in jedem gängigen Internetbrowser ausgeführt werden. Dazu kommt noch eine weitere Stärke:
Dadurch, dass Javascript im Browser ausführbar ist, können damit auch Apps für Mobilgeräte programmiert werden. Das Javascript Programm wird einfach innerhalb eines Browsers gestartet, den der Benutzer nicht sehen kann.
So hat es den Anschein, dass eine ganz normale App verwendet wird und diese App läuft genauso gut auf Android und iOS zugleich. Das allerbeste dabei ist, dass man sich dabei doppelte Programmierarbeit spart. Somit ist diese Sprache eigentlich der Favorit für jeden, der möglichst viele verschiedene Computerprogramme erstellen will.
Für Anfänger gibt es den Anfängerkurs, der die Anfänge der Programmierung in Javascript zeigt. Klicke hier um Javascript Programmieren zu lernen. Dies ist ein Programmausschnitt aus Javascript:
...
Java
Diese Programmiersprache hat sich auf Millionen Computern und Geräten etabliert.
Java ist plattformunabhängig, das heißt es läuft auf Windows genau so gut wie auf Linux oder Mac OSX. Auch Android setzt auf diese Programmiersprache. Somit kannst du mit Java Anwendungen, Apps und Spiele programmieren.
Java ist eine sehr moderne Programmiersprache und beinhaltet immer die neuesten technischen Konzepte aus der Softwareentwicklung. Was im mobilen Bereich leider fehlt ist meistens die Unterstützung für Apple-Geräte, so dass man dafür dann separaten Quellcode schreiben muss.
Am besten eignet sich diese Sprachen also für den Backendbereich in großen Webanwendungen. Wenn man mit Javascript nicht mehr weiterkommt, sollte man sich definitiv Java anschauen.
Hier ein Java-Codesnippet:
...
C und C++
C und C++ sind die Urgesteine in dieser Sammlung der Programmiersprachen.
In C haben fast alle heutigen Betriebssysteme ihren Ursprung, selbst heute noch wird in C und C++ programmiert und der Code läuft auch heute noch in unseren Betriebssystemen. C++ ist die Erweiterung von C um die objektorientierten Ansätze. In C++ ist es also möglich Klassen und Objekte zu nutzen.
C und C++ eignen sich für die Hardwarenahe Programmierung, da diese Sprachen in Maschinencode übersetzt werden. Betriebssysteme, Anwendungen und Spiele lassen sich mit diesen Sprachen realisieren und sind sehr performant. Dadurch, dass man sich teilweise selbst um Speicherbehandlung und Zugriff kümmern muss, kann es etwas kompliziert für Anfänger werden.
Hier ein Beispiel in C (C++ ist ähnlich):
...
C# (C Sharp)
C# ist die konsequente Weiterentwicklung von C++ durch Microsoft. Sie ist vom Aufbau her sehr ähnlich wie Java, hat aber wenig mit Java zutun. Mit C# (C-Sharp) kann man Anwendungen mit dem .NET-Framework schreiben und auch Spiele für PC und XBox sind mit dem XNA-Framework möglich.
Diese Sprache ist wie Java objektorientiert. Die Möglichkeiten C#-Programme auf anderen Plattformen zu nutzen waren bis 2014 begrenzt. Mittlerweile gibt es durch .NET Core eine plattformunabhängige Variante, die es ermöglicht C#-Programme auf mehreren Plattformen nutzen zu können. Man ist also nicht mehr nur auf Windows beschränkt und muss auch keine Sonderframework wie mono mehr nutzen.
Das Codesnippet in C# sieht in etwa so aus:
...
Visual Basic
Oft als Anfängersprache betitelt. Die erste Version BASIC war tatsächlich als Einstiegssprache für Programmieranfänger gedacht. Heutzutage wird Visual Basic als Sprache für Anwendungen im .NET-Framework benutzt.
Aber auch in der Officewelt findet man Visual Basic wieder. Immer, wenn du kleine Zusatzfunktionen für Word, Powerpoint oder Outlook etc. benötigst, kannst du dir mit Visual Basic kleine Makros schreiben, die für dich Großes bewirken können. In dieser Sprache wird es am besten vom Hersteller unterstützt (z.B. kann man Exceldateien auch mit Javascript erstellen).
Visual Basic sieht so aus:
...
PHP
PHP ist eine Sprache die in Verbindung mit Webseitenprogrammierung benutzt wird. Der Hauptzweck von PHP ist das Ausgeben einer Webseite und alles was im Hintergrund auf dem Webserver geschieht (sogenanntes Backend).
Hier kann man durch das PHP Programm beinflussen welcher Teil und Inhalt der Webseite angezeigt werden soll. Dabei wird das PHP-Programm immer auf dem Webserver gestartet, auf dem die Webseite gehostet wird.
Besonders beliebt: Abfragen auf Datenbanken um bestimmte Daten auf einer Webseite anzuzeigen. In Verbindung mit Javascript/HTML/CSS ist PHP eine sehr mächtige Sprache.
Der Code sieht bei PHP so aus:
...
Python
Python ist sehr beliebt bei Anfängern und ist aus einem Hobbyprojekt entstanden. Der Name lehnt sich nicht an die Schlangenart an, sondern an die Komiker Monthy Python.
Mit Python kann man eine Menge Skripte bis hin zu vollständigen Webservern schreiben. Inwiefern die Programme auf verschiednenen Plattformen ausführbar sind hängt davon ab, ob es auf dem jeweiligen Gerät und Betriebssystem eine lauffähige Pythonversion gibt.
Anbei das Codesnippet zu Python:
...
Delphi/Object Pascal
Pascal ist eine der ältesten Programmiersprachen und wurde in der Schweiz entwickelt. Mit den Weiterentwicklungen ObjectPascal in Verbindung mit Delphi konnte man Desktopprogramme für PC und Notebooks schreiben. Viele Ideen aus ObjectPascal und Delphi wurden in C# übernommen.
Leider gibt es nicht mehr soviele bekannte Bibliotheken für ObjectPascal, weshalb die Sprache langsam an Bedeutung verliert.
Die Syntax sieht etwa so aus:
...
Swift
Diese Sprache ist extra von Apple für Apple-Geräte entwickelt worden.
Und das will wörtlich genommen werden, denn um Swift programmieren zu können, benötigt man XCode welches nur für das Betriebssystem macOSX verfügbar ist.
Wer sich also auschließlich mit der Apple-Plattform beschäftigen möchte und bereits passende Geräte zuhause stehen hat, sollte sich diese Sprache einmal anschauen.
...
Scratch
Du hast grade bei den anderen Sprachen einen Schrecken bekommen, weil diese so text-lastig sind?
Okay, auch dafür gibt es zumindest eine kleine Abhilfe. Scratch ist eine Sprache, die rein dazu dient Programmieren zu lernen und wurde extra für Kinder und Jugendliche entwickelt.
Logischerweise lassen sich damit nur relativ kleine Projekte erstellen, die dafür aber begeistern. Kleine Spiele, Minifilmchen und sogar die Steuerung z.B. von LEGO-Robotern ist möglich. Ein Beispiel, wie man in Scratch ein Spiel erstellt, findest du in unserem kostenlosen Scratch-Tutorial. Die Sprache sieht in etwa so aus (und hier macht das Beispielprogramm gar keinen Sinn mehr):
...
HTML & CSS
Diese Sprachen sind eigentlich keine Programmiersprachen, werden aber gerne zusammen mit anderen Programmiersprachen genannt.
Diese sind wichtig, wenn du Webseiten und Webanwendungen erstellen willst. Mit HTML beschreibt du die Struktur und Inhalte deiner Webseite und mit CSS (Cascading Style Sheets) legst du fest wie diese HTML-Struktur dargestellt werden soll.
Möchtest du mit der Programmierung von Webseiten starten ist der Punkt den du anpacken musst HTML und CSS. Logischerweise kann man das Beispielprogramm nicht in HTML/CSS zeigen.
SQL
SQL ist eine Sprache mit der man Datenbankabfragen machen kann. Damit lässt sich eine Datenbank erstellen, befüllen und wieder auslesen.
Auch diese Sprache wird oft in Verbindung mit Webseiten benutzt. Zum Beispiel um einen Artikel in einem Webshop darzustellen.
Bei SQL ist es erstmal wichtig zu erlernen wie eine Datenbank an sich funktioniert und wie man diese überhaupt benutzt. Datenbanken sind die "performante" Alternative zu Dateien, haben aber ein paar Spezialitäten, die man erstmal verstehen muss.
Fazit zu den Programmiersprachen
Dies ist nur ein kleiner Überblick über Programmiersprachen die heute noch Verwendung finden.
Natürlich gibt es noch viel mehr Sprachen. Ganz klarer Vorteil geht an Javascript, da man hier mit einer Sprache quasi alle Arten von Computerprogrammen erstellen kann und man dazu prinzipiell nicht mehr als einen Browser benötigt.
Scratch ist dann die Variante für Kinder und Jugendliche, die noch nicht so viel Erfahrung mit dem Computer haben.
Was würdest du mit welcher Programmiersprache erstellen? Kommentiere unten!
Quelle: Übersicht über die Programmiersprachen (2022) (lerneprogrammieren.de)
Kriterien zur Beurteilung von Programmiersprachen
Kapselung: Die Programmiersprache muss die Moeglichkeit bieten, Daten, Methoden und Regeln zu einer syntaktischen Einheit zusammenzufassen. Diese Komponenten eines ADTs werden in der Programmiersprache zu einer Klasse zusammengefasst.
...