Programmiersprachen
June 3rd, 2008Neben meines Schreibanfalls wegen dieser verdammten Maus, habe ich mir heute mal wieder ein paar Gedanken zum Thema Programmiersprachen gemacht; vor allem, da ich ja Lisp (derzeitig am ehesten Scheme durch das SICP) lerne und es - imo - eine Ausdrucksfaehigkeit hat, die von keiner anderen Sprache angegriffen werden kann. Allerdings: Wenn man allein durch die Ausdrucksfaehigkeit seine Sprache waehlt, so programmiert man in einem Vakuum; man laesst den Luftwiderstand - oder, um es passender zu formulieren, den “Ich-entwerfe-noch-einmal-das-Rad-und-zwar-doppelt-so-gut”-Faktor - weg.
Was ist denn dieser komische Faktor? Einfach: In Python (oder ein Java, wer diese gehypte Sprache mag) hat man schon eine Menge von Libraries, die einem vieles abnehmen. Du musst HTML parsen? Kein Problem - Python hat dafuer schon ‘ne Lib - `Modul’ auf Pythonisch. In Scheme sucht man vergeblich nach so ‘ner Lib - es soll ja eine abgespeckte Version von Common Lisp, der gigantischen Multiparadigmapsprache, die mehr Augen hat, als Java Libs, sein. (Das Standard von Scheme passt eigentlich fast gar in den Index des Standards von CL; da erkennt man den unglaublichen Unterschied zwischen diesen beiden Dialekten von Lisp.)
Wenn man sich traut, sich diese Libs selbst zu schreiben - und nebenbei produktiv zu sein, d.h. etwas anderes machen als die Libs zu schreiben - dann soll man es ruhig tun. Klar - es ist ein gigantischer Gewinn, wenn’s um Faehigkeit geht, aus dem geringem, welchem man in Scheme hat, solche Libs zu bauen - allerdings hat der schlechte Javaprogrammierer, waehrend der Schemeprogrammierer unglaublich produktiv seine Libs macht, schon laengst seinen Auftrag erledigt. CL hat nicht allzu viel von diesem Defizit; dafuer wollen aber viele schon wegen den Sexps (“S-expressions”, ihr notgeilen Deppen!) und der komischen Makrosyntax gar nichts davon wissen - obwohl beide eben den LISP-Programmierer so unglaublich maechtig machen.
Insofern kann man sagen, dass CL - auch wenn es so gigantisch ist und, nebenbei bemerkt, ein veraltetes Librarysystem hat - durchaus eine Alternative zu Java ist. Bloß warum wird CL nicht oefters benutzt? Weil Java einfach nur richtig dick von Sun gehypt wurde. CL ist schneller, besser und ausdrucksfaehiger als Java - und je mehr Personen eine Sprache nutzen, desto mehr Libs wird es dafuer geben. (Nebenbei bemerkt: Manche Compiler von Scheme schaffen - wirklich - eine Geschwindigkeit von Code, die die Herrschaft von C im Bereich der Geschwindigkeit angreift - und diese Compiler sind selbst in Scheme geschrieben.)

