Notiert, muss ich mir mal genauer angucken. Ich bin ja schon lange am Grübeln, was ich nach Python machen soll - Scheme wäre eine Alternative, aber irgendwie ist mir das nach meiner längeren Python-Zeit doch zu geschwätzig
Irgendwie ein nicht ganz unwichtiger Faktor, der gerne in der Lisp-Community ignoriert wird: die Namen sollten nicht zu lang sein, sonst tippt man sich den Wolf. Klar, mit Makros kann man das dann kompakter machen, aber das ist nicht der Sinn der Makros. Eine Sprache mit Script-Orientierung sollte einem helfen schnell sein Programm zu formulieren. In scsh zum Beispiel ist das alles andere als der Fall.
Wenn ich mir allerdings so die Sprachdefinition ansehe, ein bischen strange ist die Sache ja schon. Viele Bereiche wirken etwas unfertig und un-lispig. Auch sind einige der Konzepte (z.B. das Exception-Handling) eher primitiv. Auch die Basis auf stark seiteneffektiges Programmieren (dadurch das Symbole als Aufhänger für alles und jedes benutzt werden) ist unschön. Und last but not least der Todesstoss: dynamisches Scoping. Zwar durch lexikalische Namespace-Zuordnungen abgefedert, aber trotzdem: dynamisches Scoping ist fast immer mehr Grund zu Ärger als zu Freude.
Andere Aspekte aber gefallen durchaus gut, vor allem der sehr schlanke Sprachumfang und die wenigen aber effizienten Grunddatentypen.
Die Syntax sollte etwas logischer werden - z.B. alle destruktiven Funktionen mit ! kennzeichnen, alle Eigenschaftsprüfungen mit ? kennzeichen - das ist kompakt zu schreiben und gut zu merken. Zum Beispiel die Wahl von set-nth für die nicht-destruktive und nth-set für die destruktive Variante das n-te Element einer Datenstruktur zu ändern ist nicht wirklich gut zu merken und schreit nach Verwechslern.
Alles in allem eine witzige Idee, aber wohl weniger der weite Wurf als der es dargestellt wird. Eher in der Klasse von Emacs-Lisp anzusiedeln - Script-Lisp, aber ein bischen hackig.
Bei Lambda the Ultimate - Programming Languages Weblog gibts den Originalartikel.