Web Development in Emacs, Common Lisp and Clojurescript - Emacs SG

Engineers.SG · 13K views · 2016 · 1:18:42

Open on YouTube

Functional programmingTesting, debugging & developer toolsWeb developmenttalk

Why Hacker News recommends it

HN commenters point to it as a live demonstration of interactive Lisp development, including compiling single functions in a running program and debugger-driven workflows.

What it is

Elias Martenson presents his Emacs-based workflow for building a web application (the Potato chat platform) with Common Lisp on the backend and ClojureScript on the frontend. He demonstrates SLIME, Paredit, CIDER and debugger-driven interactive development. The talk is 79 minutes and was given at Emacs SG.

Recommended by 2 HN commenters across 2 different months, 2018 to 2022.

What Hacker News said

Recommends grovehaw · 2018-03 · on “Portacle – A Portable Common Lisp Development Environment”

The Potato open source chat platform has a Common Lisp backend and a Clojurescript frontend. There is a fascinating talk by one of the authors on Youtube [0], and the code is on github [1]. A relatively new Web Application Environment called Radiance may also be worth looking at.[2] [0] [this video] [1] [LINK] [2] [LINK]

Recommends tgbugs · 2021-08 · on “Hell Is Other REPLs”

The workflow for slime/sly and swank/slynk described at the end of the article is standard if you are in the Emacs world. Sometimes I work in an Org file, sometimes in a lisp file directly. In both cases I will C-x C-e (eval-last-sexp) or run blocks, or the whole file (depending on Org vs lisp file). It is copy and paste on steroids (same for slime-eval-defun were you can be working deep inside some large function and update the whole without changing your view). There are some examples of developing in the debugger in [0] around 55 minutes (linked). This video also has great examples of other crazy interactive development workflows and is worth watching in its entirety if you are interested

Cites lokedhs · 2020-01 · on “PHP in 2020”

I've used Common Lisp for this purpose. You get instant results without even having to reload. You can simply compile a single function while the code is running. I did a talk about this a few years back: [this video]

Cites lokedhs · 2022-04 · on “Common Lisp Resources”

A few years back I did a presentation on this very topic. Some people have said they appreciated it so I'm sharing a link here in the hope someone find it useful: [this video]

Cites lokedhs · 2022-10 · on “Stop Writing Dead Programs [video]”

The sound in this video is pretty bad, but several years ago I did a talk showing how this development style work on a real project, and I think it may answer some of these questions. [this video]