Ist es möglich zu tun, (ernst) web-Entwicklung in Lisp?
Es offensichtlich möglich ist, zu schreiben, fast jede Art von Anwendung, die in fast jeder Programmiersprache, vor allem in einem so mächtig wie Lisp (Scheme oder Common Lisp). Aber ist es praktisch, es zu benutzen für die web-Entwicklung? Wenn dem so ist, was sollte ein guter Ausgangspunkt? Wo kann man die entsprechenden Ressourcen (tools, Bibliotheken, Dokumentation, best Practice Beispiele, etc.) für ein Projekt dieser Art?
InformationsquelleAutor der Frage Leonardo | 2009-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, web-Entwicklung ist eine Common Lisp die stärken von heute.
Als web-server, verwenden Sie Hunchentootfrüher bekannt als tbnl, die von Dr. Edmund Weitz.
Sie können es als einen back-end, um Apache mit mod_proxy als reverse-proxy oder als stand-alone-server.
Verschiedenen HTML-generation-Lösungen verfügbar sind, werden vom PHP-Stil-Vorlagen, um Lisp-makro-hacks zu XSLT. Nur treffen Sie Ihre Wahl.
HTML-VORLAGE ist ein Beispiel.
Schließung XML ist verfügbar für XML-parsing, Serialisierung, XPath 1.0, XSLT 1.0.
Es gibt auch Verschluss-HTML für HTML-tag-soup-parsing.
(Full disclosure: ich bin der maintainer von Schließung XML-Verschluss und HTML.)
Wenn Sie möchten, Parenscript können Sie Ihre JavaScript-Erfahrung lispier, aber Sie können auch schreiben plain old JavaScript selbst, natürlich.
Anderen coolen JavaScript-Verbesserung der Lösung in jwacsdas ist geschrieben in Common Lisp und verwandelt die JavaScript hinzufügen, um die Fortsetzung der Unterstützung.
Web-service-Projekte erfordern möglicherweise eine HTTP-client-server, zusätzlich zu.
Drakma ist die Bibliothek für heute.
PURI ist nützlich für die URI-manipulation.
Und es gibt noch mehr! Ein Ausgangspunkt ist cliki, zum Beispiel cliki.net/web.
Auf dem web, keiner kennt Ihre server-geschrieben in Common Lisp 🙂
InformationsquelleAutor der Antwort David Lichteblau
Web-Entwicklung in Common Lisp ist sowohl wirksam als auch Spaß.
Einige Beispiele:
CL-, erlaubt Ihnen, HTML zu schreiben, ohne zu vergessen, ein schließendes tag immer und immer wieder.
Weblocks können Sie definieren, Formen deklarativ mit eingebauter Validierung:
Es unterstützt auch AJAX in einer vollautomatischen Art und Weise, fallen wieder zurück zu normalen Verknüpfungen, wenn der browser es nicht unterstützt.
cl-Prävalenz ist eine unglaublich einfache alternative zu SQL.
Ganz viele Menschen sind mit diesen Technologien in letzter Zeit für mission-critical-Anwendungen-mit Erfolg.
Wichtigsten CL open-source-Projekte in der Tat haben hervorragende Unterstützung der Gemeinschaft.
InformationsquelleAutor der Antwort skypher
Gibt es einige web-frameworks für web-Entwicklung. Haben Sie einen Blick auf:
Wenn Sie wollen, auch unterstützt lisp-tools, dann müssen Sie für Sie zahlen. Es ist nicht nur eine sehr große community rund um die open-source-tools, so dass Sie don ' T haben das gleiche Maß an Dokumentation/Annahme als, sagen wir, Django für Python.
Hier sind einige kommerzielle lisp-Produkte:
Es ist auch erwähnenswert, dass Reddit wurde ursprünglich gebaut, in Lisp, aber die Autoren später migriert zu Python unter Berufung auf einen Mangel an gut genutzt und dokumentiert Bibliotheken. (link)
InformationsquelleAutor der Antwort d4nt
Ich kann nicht sprechen, andere Rahmen, aber ich hatte sehr viel Glück mit Hunchentoot für einen webserver (es funktioniert gut auf seine eigene, oder Sie können hinter Apache). Was macht wirklich es scheinen (dies wird wahrscheinlich ein Schock für einige) sind die Bibliotheken!
Was ich wirklich mag über die Verwendung von CL für das web ist, dass Sie einstellen können es alle, wie es läuft. Sie haben immer eine REPL-up und Betrieb Ihrer server-code, können Sie dann verbinden mit der REPL zu ändern oder zu überprüfen, wie der code arbeitet, alle, ohne zu stoppen, nichts. Ich habe neu definiert Funktionen, während die Website ausgeführt wird, das nächste mal wenn die Funktion aufgerufen wird, es ist einfach, nimmt den neuen code funktioniert.
InformationsquelleAutor der Antwort Chris