Intro


Tiobe-Index und PYPL-Index

Der TIOBE Index ist nach Wikipedia ein seit 2001 publiziertes und monatlich aktualisiertes Ranking von Programmiersprachen nach ihrer Popularität.

So sieht er aus:

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:


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 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.

Prozedurales Programmieren bedeutet, in Prozeduren zu denken. Das heißt, das Programm wird in Teilprobleme, Prozeduren, zerlegt. Gemeinsam mit imperativem Programmieren stellt es in gewissem Sinne das Gegenteil zur objektorientierten 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, objektorientierten oder nach anderen Paradigmen gestaltetem Code. - Weil es auch das wirklich ganz konträre Paradigma "funktional" gibt, kann man aber auch sagen, dass das funktionale Programmieren das Gegenteil von den konventionellen Arten zu programmieren ist.

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 hineindenken und -arbeiten. Im Informatik-Bereich ist mein Spezialgebiet "Zweierkomplement".