Vielleicht verstehe ich auch den Hype um die Sprachen nicht, wenn ich prinzipiell alles in jeder Sprache realisieren kann.
Sprachen sind keine 'Hype', sondern ein bei Programmierern
emotional besetztes Thema.Wenn du ein wenig programmiert hast, verstehst du das auch!
Die Kosten die du für die jeweilige Sprache hinsichtlich Laufzeitverhalten, Laufzeitsystem, Speicherverbrauch, besondere Eigenschaften, auch des Syntax, bezahlen mußt unterscheiden sich eben ganz erheblich weil sie auf einen bestimmten Verwendungszweck zugeschnitten sind. Natürlich gibt es sog. 'universale' Sprachen (C/C++, Pascal, ADA u.v.m). Hier bezahlst du den Preis mit einem ganz erheblichen Programmieraufwand. Das kann sich im Vergleich in der Größenordnung eines Faktors von 10 bis 100 und evtl. mehr bewegen. Reziprokes gilt aber auch hinsichtlich Geschwindigkeit, Speicherverbrauch etc. Man sagte früher: "Lisper kennen den Wert von allem, aber nicht seinen Preis; C Programmiere von allem den Preis, aber nicht seinen Wert!" Das gilt heute nicht mehr in dem Ausmaß da dank fortgeschrittener Compilationstechnologie Heigh-Level Sprachen (HL) wie Lisp, Ocaml, Haskel etc enorm aufgeholt haben. Das bezahlt man dann mit enorm anspruchsvollen Compilern (Wieviel Haskel-Compiler gibt es? Von Lisp, da älter, vielleicht 4-5) und Compilierzeit. Die HLSprachen habe auch oft einen interaktiven Modus was die Entwicklung vereinfacht.
Ein Beispiel: Ich habe lange Erlang bzw Elixier auf der
Erlang/OTP Platform verwendet. Das macht richtig Spass und ist enorm produktiv. Die Nachteile: Die Platform ist praktisch so etwas wie ein OS oberhalb des OS, d.h das jeder der das Programm benutzen will erst einmal Erlang/OTP installieren muss. Das ist ähnlich wie bei Java. Zwar ist Erlang weit langsamer als C++ (~
Faktor 10-30), dennoch sind größere Applikationen genau so schnell, evtl auch schneller. Der Grund ist einfach: In C++ muss man die Teile die Erlang mitbringt (und die lange Zeit ausgereift sind) wie Speicherverwaltung etc erst programmieren oder Libs verwenden die nur schwer und aufwendig zu integrieren sind. Die Lisper sagen dass in jedem hinreichend komplexen Programm ein kleines Lisp steckt. Das ist m.E. im Prinzip richtig! Da ich jetzt kleineres und anderes im Sinne habe, bin ich jetzt (zähneknirschend) auf C++ umgestiegen...
Du kannst im Prinzip 4 Gruppen von Programmiersprachen unterscheiden:
(1) Kompilierte Unviversalsprachen
(2) Kompilierte HL-Sprachen
(3) Spezifische Sprachen für einen bestimmten Zweck (Cobol, APL,
Julia etc).
(4) Interpretierte (Bytecode) Scriptsprachen wie Phyton, Ruby, Javascript, Perl, Lua etc.
Diese letzteren Sprachen sind vergleichweise sehr langsam und brauchen vergleichsweise viel Speicher. Wenn jemand versucht damit einige 1000 oder 100 000 Objekte (was z.B. in Erlang kein Problem ist) zu verwalten wird er mit großer Wahrscheinlichkeit scheitern, sowohl an den Grenzen der Hardware als auch an den Möglichkeiten der Sprache. Dafür sind sie eben nicht gedacht! Insofern ist die Aussage dass man alles in Perl schreiben könne, sehr theoretisch oder eben schlichter Blödsinn.
Eine interessante neuere Entwicklung für HL und Scriptsprachen sind Just in Time Compiler (JIT). Schau die z.B. mal
LuaJIT an. Bei Java wird das so gemacht,
NodeJS macht entsprechendes für Javascript auf dem Server. Das sind m.E. ingeniöse Meisterleistungen. Aber natürlich muss man auch hier seinen Preis bezahlen ...
Peter
PS: Ich teile die Auffassung das man ausgereifte Programmiersprachen verwenden sollte. Also C oder Lisp bzw Scheme ist immer ein guter Einstieg.