4 ms·
While we are at it, anyone knows what's the Common Lisp story in webdev? Both backend and frontend?
by ducktective 4y ago
While we are at it, anyone knows what's the Common Lisp story in webdev? Both backend and frontend?
- mejutoco 4y agoNot an expert, but I would expect hunchentoot https://edicl.github.io/hunchentoot/ https://edicl.github.io/hunchentoot/ for the backend and a Common Lisp "dsl" generating javascript for the frontend.
- aidenn0 4y agoI am a hobbyist lisp developer and have written webapps in CL. I use cl-who[1] for generating html and parenscript for javascript. I use clack on the backend, but hunchentoot is probably more popular. Both backends have plenty of routing libraries available (hunchentoot comes with a decent one baked in, clack does not). postmodern is a Postgres specific sql backend that is great. There are database-agnostic SQL libraries as well (clsql and cl-dbi I believe are the two big ones) but I haven't tried them. 1: People whose opinions I trust have told me that spinneret is a better choice. It did not exist when I learned cl-who. cl-who is "good enough" for me that I haven't switched.
- vindarel 4y agoWe have a number of libraries that are easy to use together for the backend, no fancy web framework (build your auth page yourself), no fancy client-side lispy libraries. We might have a Fighweel-like tool, but no one is interested (Trident-mode for Emacs). There's one framework that looks promising to build fully dynamic apps in pure CL with one code base (websockets inside). It provides a GUI-like experience to build all kind of apps (a website, a chat, the snake game…): https://github.com/rabbibotton/clog/ https://github.com/rabbibotton/clog/ I am using Hunchentoot, a routing library on top (easy-routes), the Mito ORM, and for the client side I am conservative: HTML templates with Djula, interactivity with HTMX, Vue if required, JS. The great thing is that I can build a standalone binary of my web app, including the static assets, the webserver, the lisp compiler and debugger… for ±28MB unzipped and instantaneous startup times. https://lispcookbook.github.io/cl-cookbook/web.html https://lispcookbook.github.io/cl-cookbook/web.html https://github.com/CodyReichert/awesome-cl#web-frameworks https://github.com/CodyReichert/awesome-cl#web-frameworks https://lisp-journey.gitlab.io/blog/lisp-for-the-web-deploy-with-systemd/ https://lisp-journey.gitlab.io/blog/lisp-for-the-web-deploy-...
- vindarel 4y agoHere's a nice interview of a company using CL for their document processing stack: https://lisp-journey.gitlab.io/blog/lisp-interview-kina/ https://lisp-journey.gitlab.io/blog/lisp-interview-kina/ (edit: not a pure CL web stack: Ruby to CL logic via websockets to a lispy client side) Example apps I can think of: Screenshot bot: https://github.com/screenshotbot/screenshotbot-oss https://github.com/screenshotbot/screenshotbot-oss Webcheckout: https://webcheckout.net/ https://webcheckout.net/ (they were hiring recently) Math Pastebin: https://github.com/susam/mathb https://github.com/susam/mathb Ultralisp: https://ultralisp.org/ https://ultralisp.org/ (built with their Weblocks refactoring) A programmable desktop and bookmark application with CLOG (TEASER) https://www.reddit.com/gallery/w4rj4k https://www.reddit.com/gallery/w4rj4k (https://codeberg.org/mmontone/mold-desktop/ https://codeberg.org/mmontone/mold-desktop/)