Ich habe keine Erfahrung in der Arbeit für ein echtes Unternehmen, aber ich weiß, warum es mir schwer gefallen ist, LISP anzuwenden.
Dies erinnert mich zunächst an diesen Blog-Beitrag: http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html
Das Hauptproblem, das ich mit Lisp habe, ist die "Welche Lisp" -Frage. Ich arbeite normalerweise unter Linux als Hauptplattform, aber die Dinge, die ich mache, müssen mit Windows kompatibel sein. Das heißt, wenn ich eine zu verwendende Technologie evaluiere, muss es mir das Leben erleichtern, wenn ich mit zwei völlig unterschiedlichen Betriebssystemen arbeite. Ich mag diese Anforderung nicht, aber sie für ein reales Projekt zu verwenden, ist eine Anforderung. Jetzt verwende ich Sprachen, die unter Windows nicht sehr gut unterstützt werden, für meine eigenen Nebenprojekte. Da ich jedoch nie die Möglichkeit habe, ein großes Softwareprojekt darin zu schreiben, habe ich nicht die erforderliche Erfahrung.
Als ich jetzt versuchte, eine funktionale Sprache zu lernen, wollte ich unbedingt Common Lisp lernen. Es schien das Richtige zu sein. Ich habe angefangen, Practical Common Lisp als Ausgangspunkt zu lesen, da ich die integrierten Funktionen wirklich nicht kannte und ein Projekt brauchte, an dem ich in Lisp arbeiten konnte. S-Ausdrücke waren schön und einfach. Alle diese Klammern waren unglaublich schön für mich, da klar war, was genau im Code vorging.
Also versuche ich mein erstes Programm in Lisp außerhalb des Buches zu schreiben. Ich wollte ein Befehlszeilentool, das Codezeilen zählt und triviale Zeilen aus der Codezählung entfernt. Nicht das nützlichste Werkzeug, aber es macht Spaß, es zu tun. Es beinhaltet Dateizugriff, ein bisschen Analysieren und Zählen. Ich hatte ungefähr eine Woche zuvor dasselbe Tool in Python implementiert.
Ich muss auf Befehlszeilenargumente zugreifen. Dann erfahre ich, dass es keine Standardmethode gibt, um Befehlszeilenargumente abzurufen. Sie sind alle nicht standardmäßige Funktionen. Es ist überhaupt nicht plattformübergreifend. Von da an wird es meistens nur schlimmer, da in der Sprache nicht viele Bibliotheken eingebaut sind. Am Ende bin ich zu Haskell gewechselt und bin nicht weit in Common Lisp vorgedrungen (daher sind meine Beschwerden möglicherweise nicht einmal gültig).
Diese Art von Nicht-Standard-Dingen hat mich in der Vergangenheit immer gequält. C ++ hat das gleiche Problem, aber mit Bibliotheken wie Boost können Sie diese Schwächen umgehen.
Es hilft auch nicht, dass die Lisp-Syntax für alles andere als S-Ausdrücke etwas hässlich ist.