Intro


nach dem Tiobe-Index
nach dem Tiobe-Index

Quelle: tiobe.com/

Der PYPL-Index ist es auch wert, beachtet zu werden: Siehe diese Website!


Es folgt ein englischsprachiges Video:


Niklaus Wirth und Pascal


Programmieren is fun

Man müsste hier über die alteingesessenen und wieder "aktuellen" objektorientierten Programmiersprachen (wie Ruby, Java und C++), über die auch zurzeit wieder in Mode kommenden funktionalen Programmiersprachen (wie Lisp, Miranda, Erlang, Scala und Haskell), unter dem Dach "deklarativ" außer über die "funktionalen" auch noch über die "logische" Programmiersprache PROLOG, über die Datenbanksprache SQL ...

... über die mathematischen Programme wie MATLAB (o, Verzeihung: MATLAB ist auch objektorientiert), Octave, NumPy (eine mathematische Bibliothek für Python) und Mathematica, über die imperativen, prozeduralen oder strukturierten Programmiersprachen wie C und Pascal - und über die so genannten Skriptsprachen wie Perl und Python schreiben. Das mache ich hier nun. Nicht zu den Programmiersprachen im engeren Sinne gehören dann noch Auszeichnungssprachen wie HTML (Hypertext Markup Language) und CSS (Cascading Style Sheets).

Wie man die Programmiersprachen auch noch einteilen kann, ist so: Es gibt ja Interpreter und Compiler. Python, Javascript und HTML sind interpretierte Sprachen. C, C++, Java und C# sind - vereinfachend gesagt - compilierte Sprachen.

Programmierung der ersten (BASIC-)Jahre

Es handelt sich um Paradigmen, die einen geistigen Hintergrund geben.

1964 kam eine neue Programmiersprache, nämlich BASIC (Beginner’s All-purpose Symbolic Instruction Code). Damit wurden wirklich schlechte Programme geschrieben. Da diese Sprache wenige Vorgaben macht, entstand sogenannter Spaghetti-Code. Der Programmablauf entspricht einem Nudelteller, nachdem er gründlich durchgerührt wurde.

Zum Glück gab es mehr als BASIC. Pascal und C zum Beispiel. Prozedurales Programmieren bedeutet, in Prozeduren zu denken. Das heißt, das Programm wird in Teilprobleme, Prozeduren, zerlegt. Gemeinsam mit imperativem Programmieren stellt es meiner Meinung nach die Basis für die objektorientierte Programmierung dar. Imperativ heißt, in Befehlsform oder alles aneinandergereiht.

"Strukturiertes Programmieren" heißt, es gibt Sequenzen, also nacheinander ausgeführte Befehle. Verzweigungen (if-Abfragen) und Schleifen.

Daher braucht es keinen verhassten goto-Befehl mehr, den einst BASIC verwendete. Dabei ist das nur ein Fehler dieser Programmiersprache, die zum Glück heute niemand mehr verwendet.

Prozedurales , imperatives, strukturiertes Programmieren wird heute für traditionelles, konventionelles Programmieren verwendet, im Gegensatz zu funktionalem oder deklarativem Programmieren.

Paradigmen

Ich teile diese ganzen Programmiersprachen hier mal nach meiner Theorie ein, und zwar so: Imperative Programmiersprachen gibt es schon seit immer und ewig (na ja, fast), denn man kann schon lange eine Reihe von Befehlen sequenziell abarbeiten, was das Wesen des imperativen Paradigmas ist. Strukturierte Programmiersprachen können Verzweigungen und Schleifen wie for, while und do besitzen. Prozedurale Sprachen haben eigene Prozeduren und Funktionen - ein gutes Beispiel ist hier die klassische Lehr- und Ausbildungssprache Pascal; denn schon in Pascal konnte man, wenn man wollte, Prozeduren und Funktionen mit individuellen, sprechenden Namen schreiben. Objektorientierte Programme besitzen Klassen und Objekte (Genauer gesagt: Kapselung, Polymorphismus und Vererbung sind wichtige Bestandteile der objektorientierten Programmierung, wenn wir Alan Kay zitieren wollen.).

Haskell ist eine funktionale Sprache.
Haskell ist eine funktionale Sprache.

Das erste Programmierparadigma unter dem Oberthema "deklarative Sprachen" ist das funktionale. Diese zu diesem Paradigma gehörenden Programmiersprachen programmieren zu wollen, ist für viele geneigte Programmieranfänger ein schweres Unterfangen. Zu den funktionalen Programmiersprachen gehören LISP (Scheme) und Haskell. - Das zweite Paradigma unter dem Oberbegriff "deklarativ" ist das logische (dazu gehört z. B. PROLOG). - Und dann noch ein Spezialfall: SQL gibt es als Datenbanksprache schon sehr lange.

Wo stehe ich dabei? Also, ich kann so leidlich C und (wirklich nicht gut:) C++, um einfache Konsolenprogrämmchen zu erstellen. Ich kann mich in Java und nun auch in Haskell hineindenken und -arbeiten und versuche auch Python. Im Informatik-Bereich ist mein Spezialgebiet das "Zweierkomplement" und der damit verwandte "Exzesscode".