Web Development in Emacs, Common Lisp and Clojurescript - Emacs SG
Engineers.SG2 HN recommenders · 2018–2022
14K views · talk · evergreen · Uploaded 2016-11-01
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.
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.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
38:47RailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
42:03The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
26:53What the heck is the event loop anyway? | Philip Roberts | JSConf EU
JSConf
36:45Rich Harris - Rethinking reactivity
You Gotta Love Frontend
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
5 comments from Hacker News
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] [VIDEO] [1] [LINK] [2] [LINK]
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: [VIDEO]
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 in this kind of thing. 0. [VIDEO]
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: [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. [VIDEO]