Ein nicht ganz so kurzes Essay über aktuelle Programmiersprachen.
Programmieren ist toll, die Sprache spielt dabei eigentlich eine untergeordnete Rolle.
Vor einigen Jahren war C/C++ noch unangefochten und alleine auf weiter Flur an der Spitze (Anfang der Neunziger sprach kein Mensch mehr von Fortran, Cobol, Lisp, Algol und all dem anderen alten Kram den wir auf der Uni noch anschauen mussten). Dann kam Java und hat C/C++ zumindest den Projektanfragen von Gulp zufolge von der Spitze gestoßen.
Inzwischen wird auch JAVA von allen Seiten bedrängt, besonders nachteilig für den Platzhirschen ist dabei die JVM bedingte Schwere der Installation. Hoster bieten JAVA praktisch nie an, und selber hosten ist immer noch recht teuer. Billige VServer taugen für JAVA mangels Performance noch lange nicht. Und die ursprüngliche Idee, die JVM als Betriebssystem zu verstehen, hat sich angesichts der jetzt dominierenden Browser Interfaces auch erledigt.
Inzwischen ist die Aufteilung nach Anwendungssgebiet einigermaßen abgesteckt
C/C++ wird dort verwendet, wo es entweder recht systemnah zugeht (OS API’s), wo Resourcen knapp sind (Embedded) oder wo es auf Geschwindigkeit ankommt (physikalische Simulationen etc.) - Und übrigens: Nein, JAVA ist nicht annähernd so schnell wie C, auch nicht mit Compilern und sonstigen Tricks. Der Grund ist derselbe, warum C nicht so schnell ist wie Assembler. Optimizer sind immer noch schlechter als gute Entwickler und der JAVA Sprachstandard ist für schnelle Programmierung schlicht nicht geeignt - erstes Beispiel: [*ptr++ = wert] geht nicht, zweites Beispiel: Garbage Collection.
C/C++ ist übrigens (ordentlich programmiert) nicht plattformabhängig (siehe Linux)!
JAVA wird in erster Linie innerhalb großer Frameworks verwendet. Dank Reflection und Classloader ist JAVA hier sehr gut geeignet. Bis vor einiger Zeit hatten sich Firmen auch noch für JAVA entschieden, weil Entwickler hierfür zahlreicher und billiger zu bekommen waren als für C++ (ist inzwischen nicht mehr der Fall). Die Entwicklung in JAVA ist sicherlich einfacher als die in C++ (wer C++ kann, braucht keine Woche um JAVA zu lernen - aber wohl ein paar Zusatztage um mal alle JSE Komponenten durch zu sehen), allerdings wird meiner Ansicht nach dieser Vorteil in der teureren Konfiguration von Laufzeit- und Entwicklungsumgebung wieder verspielt.
Nützlich: Große Firmen bauen in zentralen Design- und Architekturabteilungen wenig komplexe Frameworks die von Fachabteilungen angewandt werden um Standardprobleme der EDV zu lösen (Daten holen, Daten modifizieren, Daten speichern). Die Programmierung dieser Frameworks gleicht dann eher dem Zusammenklicken von Komponenten denn der Programmierung von Software - der große Vorteil: Die Fachabteilung braucht keine qualifizierten (und darum teuren) Softwareentwickler. Der Nachteil ist natürlich, das die mögliche Komplexität der zu entwickelnden Software von den Möglichkeiten des Frameworks begrenzt wird.
Die JAVA Entwicklung ist ohne Eclipse nicht mehr denkbar. Die plattformunabhängigkeit reicht auch bei JAVA nur für Serverprozesse, schon Swing sieht überall anders aus.
Ruby wird eigentlich nur “on Rails” verwendet, zeigt im Zusammenspiel mit diesem hervorragenden Framework allerdings überdeutlich, was für eine eintönige Angelegenheit die “Legacy-Systems on Browsers” Entwicklung eigentlich ist. Mit Ruby on Rails lässt sich mit wenigen Zeilen eine CRUD Application nach dem MVC Paradigma erzeugen (CRUD = Create, Read, Update, Delete :: MVC = Model, View, Controller). Rails erzeugt dabei die Datenbanktabellen, die Datenzugriffsschicht, den HTML View und den Ruby Controller. Nebenbei werden noch Gerüste zur Up/Down Migration, Testcases und einiges mehr erzeugt. “RoR” ist eigentlich J2EE auf einfacher. Leider ist die Syntax von Ruby “ungewöhnlich”.
Pascal und Basic leben eigentlich nur noch in den Dialekten “Borland Pascal” und “Visual Basic” und dienen in diesen Fassungen nur noch der Erstellung von nativen Windows Anwendungen - und Windows Automatisierungen. Da ich lange Zeit Delphi programmiert habe bin ich über Borlands Untergang (zumindest was Pascal betrifft) traurig - aber Technologien haben eben nur eine kurze Lebenserwartung. Visual Basic finde ich nicht der Rede wert.
Perl hat die Liga der Scriptsprachen wieder stark gemacht und dient in verschiedenen Softwaresystemen als Konfigurationssprache. Die Vorteile gegenüber PHP sind aber gering (vor allem im Bereich der regulären Ausdrücke - also im Texthandling), die Sprachstruktur dagegen ist sehr gewöhnungsbedürftig. Außerdem hat Perl keinen Fokus auf Webapplikationen (obwohl es ls CGI Sprache populär wurde). Ich glaube Perl wird in seiner Bedeutung nicht mehr steigen.
Phyton - davon habe ich ehrlich gesagt nicht die geringste Ahnung.
PHP ist momentan der Shooting-Star unter den Programmiersprachen, hat laut letztem IX die höchsten Steigerungsraten in der Anwendung. Eigentlich ist PHP eine Scriptsprache zur Erstellung von Webapplikationen - und genau deshalb momentan auch so gefragt. PHP bietet einen einfachen, an C angelegten Syntax, ab Version 5 eine an JAVA angelehnte Objektorientierung (in V 4 gibt es rudimentäre Unterstützung) und eine ausreichend umfangreiche Funktionsbibliothek - eben mit Fokus auf Webanwendungen (MySQL, Mails senden, Konvertierungen üblicher Codepages, URL Funktionen etc.). PHP bietet mit Unterstützung von GTK auch die Möglichkeit PC Applikationen zu erstellen - ich kann mir aber nicht vorstellen, dass das jemand macht. Durchaus nützlich ist allerdings das CLI Interface mit dem man PHP als OS Scriptsprache verwenden kann. Unter Unix gut wenn man umfangreiches Stringhandling braucht (dann mann man aber auch Perl nehmen), unter Windows gut weil es da im Scriptbereich sonst nur Unsinn gibt.

Meine Prognosen
- Java hat seinen Zenit überschritten, mit dem Vordringen von “Webservices” (und Verwandtschaft) hat das letzte Stündlein für monolithische Applikationen geschlagen (und RMI etc. ist zu “dick”). Allerdings hat JAVA als Plattform meiner Meinung nach Zukunft (Ruby auf JVM, PHP auf JVM).
- Perl verschwindet mangels Alleinstellungsmerkmal
- C/C++ bleibt im Systembereich und da wo es auf Geschwindigkeit ankommt die Nummer 1. Interessant wird noch “D” werden, der halboffizielle Nachfolger von C++.
- PHP wird die Websprache Nummer 1 (nicht zuletzt wegen wichtiger Frameworks wie Drupal, Plone, Wordpress, b2evo etc.)
- Ruby wird wieder verschwinden weil die Vorteile zu gering sind und keine Lobby hinter der Sprache steht.