HNHacker News
TopNewBestAskShowJobs

vindarel

1,506 karma · joined July 7, 2017

Pythonista turned lisper.

https://lisp-journey.gitlab.io/pythonvslisp/

I run CL apps in production.

CL, batteries included, fast scripting: http://ciel-lang.org/

I create a Common Lisp course in videos. It's a progressive and structured course, where everything that was hard for me (especially hard to find) is made easy for you. Check it out! https://www.udemy.com/course/common-lisp-programming/?referralCode=2F3D698BBC4326F94358

---

@ vindarel mailz.org

submissionscomments
vindarel··on Steel Bank Common Lisp version 2.6.7
here:

    I’m curious: was Arc running Racket BC or CS? I understand it got a big performance boost after switching to Chez Scheme.

    dang: It was running BC. I had high hopes for switching to CS because I'd heard the same thing you had, but when I tried it, HN slowed to a crawl. This stuff is so unpredictable.
https://news.ycombinator.com/item?id=47140657
vindarel··on Steel Bank Common Lisp version 2.6.7
Use `C-c C-]` (`slime-close-all-parens-in-sexp`) in SLIME ;)
vindarel··on Steel Bank Common Lisp version 2.6.7
I collected the disparate words of Dang here: https://lisp-journey.gitlab.io/blog/hacker-news-now-runs-on-...
vindarel··on A Road to Lisp: Which Lisp
> Common Lisp lacks some conveniences that have become common in newer languages, such as concise literals for a wider variety of data structures, persistent immutable collections, lazy sequences and built-in general-purpose pattern matching.

we can explore libraries on https://github.com/CodyReichert/awesome-cl/

concise literals: serapeum's dict or other libraries bring you { } for hash tables and the like.

persistent collections: FSet (and more)

lazy sequences: series, gtwiwtg (generators) (and more)

pattern-matching: Trivia

many libraries are shipped in CIEL: https://ciel-lang.org/ (shameless plug)

---

> It’s currently used in …

more example companies: https://github.com/azzamsa/awesome-lisp-companies/

also: https://lisp-screenshots.org/

---

> at the cost of slightly slower startup times

that means ±30ms, not the Java-esque slow startup time ;)

---

editors: don't miss https://lispcookbook.github.io/cl-cookbook/editor-support.ht... and the new Mine, OLIVE for VSCode, ICL repl (terminal and browser).

vindarel··on A Road to Lisp: Which Lisp
So let's try: SBCL with

* [clj-coll](https://github.com/dtenny/clj-coll) - Clojure collection and sequence APIs in Common Lisp, with optional Clojure collection syntax.

  * provides immutable Cons, Queue, PersistentList, capabilities as well as Vector, Set, and Map analogues built on FSet (but accessed entirely via Clojure APIs).

  * optional read syntax so you can type `{:a 1 :b 2}`, `#{1 2 3}`, and `[1 2 3]`.

* [clj-con](https://github.com/dtenny/clj-con) - Clojure-style concurrency operations in Common Lisp.

* [clj-re](https://github.com/dtenny/clj-re/) - Clojure-style regular expression functions.

* [clj-arrows](https://github.com/dtenny/clj-arrows) - Clojure-compatible threading/transformation/arrow macros for Common Lisp.

editor: https://coalton-lang.github.io/20260424-mine/

type system: Coalton

vindarel··on A Road to Lisp: Which Lisp
What about this one? https://github.com/dotcl/dotcl

> Common Lisp implementation on .NET. Lisp source is compiled to CIL (Common Intermediate Language) and runs on the .NET JIT — so the same Lisp image runs on Windows, macOS, and Linux across x86-64 and ARM64 without per-platform porting work.

vindarel··on Turn your singing voice into printable notes (in the browser)
Reminds me of https://scorecloud.com/ "ScoreCloud Songwriter takes recordings of voice and instruments and turns it into Lead Sheets, with melody, lyrics and chords." except there is no live demo (but a free download for W$ and Mac, and an iPhone app) (didn't try)

(It's built in Common Lisp (LispWorks))

vindarel··on A road to Lisp: Why Lisp
Start here with Common Lisp 8-) https://lispcookbook.github.io/cl-cookbook/getting-started.h... To learn the language, look at the good books out there (Touretzky's etc).

ps: you don't need to learn Emacs. A terminal even is enough. See the Cookbook/ Editors section.

vindarel··on A road to Lisp: Why Lisp
Don't miss out, we had new excellent editors and tools being released in the last months:

Mine: a complete, single-download application that comes with everything needed to experience the interactive and incremental development programming workflow, including hot-reloading and on-the-fly debugging. For CL and Coalton.

https://coalton-lang.github.io/20260424-mine/

OLIVE: a new hand-made plugin for VSCode.

ICL: a new REPL for the terminal and the browser with advanced features.

as a bonus: a JupyterLite kernel based on JSCL that runs 100% in the browser.

find them all: https://lispcookbook.github.io/cl-cookbook/editor-support.ht...

vindarel··on A road to Lisp: Why Lisp
the python debugger is cool but is an inferior experience. It isn't only about a REPL, but about the editing experience, and about the language being thought from the ground up for long-living programs. See: https://mikelevins.github.io/posts/2020-12-18-repl-driven/
vindarel··on A road to Lisp: Why Lisp
Flight search (Google's ITA Software), underground planning (SISCOG), CAD software (PTC Creo et all), the Gollum face (Mirai), automation of document extraction, renewable energies resource planning (3E), project management (planisware),

games (Kandria),

Maxima,

a faster pgloader (https://tapoueh.org/blog/2014/05/why-is-pgloader-so-much-fas...),

hackernews (was rewritten to SBCL: https://lisp-journey.gitlab.io/blog/hacker-news-now-runs-on-...), first reddit…

https://lisp-screenshots.org/

https://www.lispworks.com/success-stories/

also Emacs (for another dialect).

vindarel··on (How to Write a (Lisp) Interpreter (In Python)) (2010)
also in the interop topic:

Common Lisp for Python: https://github.com/marcoheisig/cl4py

call Python from CL: https://github.com/digikar99/py4cl2-cffi

vindarel··on Lisp's Influence on Ruby
and the newer Moonli for CL: https://moonli-lang.github.io/ (:
vindarel··on Lisp in Web-Based Applications (2001)
I like History but I'll comment about Lisp in web apps today, if I may. We have a choice of web servers and web libraries (https://github.com/CodyReichert/awesome-cl/#web-development), and we live in happy times where HTMX or Datastar are great fit for Lisp -as with any stack. See these Datastar examples built in CL: https://github.com/fsmunoz/datastar-cl I use and like the Mito ORM too, which comes with automatic migrations and, since last year, a composable query engine (SxQL).

Here you will find some screenshots of some of today's web applications built in CL: http://lisp-screenshots.org/ and here an opinionated tutorial: https://web-apps-in-lisp.github.io/ One example: ScreenShotBot https://screenshotbot.io/ a successful open-source product and company. It now replaced Facebook's automatic screenshot testing tool (source: their blog). So, web apps in Lisp are possible -with a right amount of learning time and elbow grease.

The incremental development and interactive top-level are still precious and unmatched.

vindarel··on Hyperpolyglot Lisp: Common Lisp, Racket, Clojure, Emacs Lisp
The trap is using quote, with the list operator there are no issues:

    (defparameter *a* (list 1 2 3))
and of course, mutating top-level variables is bad style.
vindarel··on Hyperpolyglot Lisp: Common Lisp, Racket, Clojure, Emacs Lisp
Notes on CL:

- why nothing on the "compiler" line? Everytime you load a snippet or a file with SBCL, it compiles it (to machine code). There's also compile-file.

- interpreter: likewise, all code is compiled by default with SBCL, not interpreted, even in the REPL. To use the interpreter, we must do this: https://github.com/lisp-tips/lisp-tips/issues/52

- command line program: the racket cell shows the use of -e (eval), the same can be done with any CL implementation.

- since the string split line introduces cl-ppcre, one could mention cl-str :D (plug) (much terser join, trim, concat etc)

- ah ok, for dates and times, flattening a list, hash-table literals… we need more libraries.

- more files operations: https://lispcookbook.github.io/cl-cookbook/files.html

- emacs buffers: now compare with Lem buffers 8-)

- posix-getenv: I'd rather use uiop:getenv (comes in implementations).

- uiop:*command-line-arguments*

- exit: uiop:quit

- uiop:run-program (sync) / launch-program (async)

- java interop: with LispWorks or ABCL (or other libraries)

my 2c

vindarel··on Why I still reach for Lisp and Scheme instead of Haskell
Thanks for this. Saved: https://gist.github.com/vindarel/3484a4bcc944a5be143e74bfae1...
vindarel··on Mine, an IDE for Coalton and Common Lisp
Someone threw out a Zed LSP for Common Lisp with LLMs help: https://github.com/etyurkin/zed-cl It requires heavy compilation of the wasm toolchain so I finally didn't try it. It seems it doesn't have a lisp debugger.
vindarel··on Clojure: Transducers
its Common Lisp cousin: https://github.com/fosskers/transducers/
vindarel··on Common Lisp Development Tooling
more importantly, as you precise below, you edited (and somewhat corrected) the article after feedback from /r/lisp. So it isn't only AI output.
vindarel··on SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
It switched from Racket in late 2024. Context and discussion: https://news.ycombinator.com/item?id=44099006 (9 months ago, 435 comments)
vindarel··on SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
To be clear, we can talk in present tense: https://github.com/sbcl/sbcl/blob/master/doc/internals-notes...

discussion (2023): https://news.ycombinator.com/item?id=38052564

vindarel··on SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
Previously:

SBCL (16 days ago) https://news.ycombinator.com/item?id=47140657 (107 comments)

Porting SBCL to the Nintendo Switch https://news.ycombinator.com/item?id=41530783 (81 comments)

An exploration of SBCL internals https://news.ycombinator.com/item?id=40115083 (106 comments)

Arena Allocation in SBCL https://news.ycombinator.com/item?id=38052564 (32 comments)

SBCL (2023) https://news.ycombinator.com/item?id=36544573 (167 comments)

Parallel garbage collection for SBCL [pdf] https://news.ycombinator.com/item?id=37296153 (45 comments)

SBCL 2.3.5 released https://news.ycombinator.com/item?id=36107154 (31 comments)

Using SBCL Common Lisp as a Dynamic Library (2022) https://news.ycombinator.com/item?id=31054796 (67 comments)

etc

vindarel··on SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
Yes, SISCOG is still kicking. From last year's European Lisp Symposium: https://www.youtube.com/watch?v=hMVZLo1Ub7M
vindarel··on SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
Examples with screenshots: http://lisp-screenshots.org/

Some companies: https://github.com/azzamsa/awesome-lisp-companies/ (Routific, Google's ITA Software, SISCOG running resource planning in transportation, trading, big data analysis, cloud-to-cloud services, open-source tools (pgloader, re-written from Python), games (Kandria, on Steam and GOG, runs on the Switch), music composition software and apps…

More success stories: https://www.lispworks.com/success-stories/

I myself run web-apps and scripts for clients. Didn't ditch Django yet but working on that.

vindarel··on SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
+1 to explore Coalton. It's also talked about on this website and often by its authors.

Links to Coalton and related libraries and apps (included Lem editor's mode and a web playground): https://github.com/CodyReichert/awesome-cl/#typing

vindarel··on Steel Bank Common Lisp
lparallel's website is back here: https://sharplispers.github.io/lparallel/ :) (https://github.com/sharplispers/lparallel)
vindarel··on Steel Bank Common Lisp
Lem's Coalton mode looks good: https://lem-project.github.io/modes/coalton-lang/
vindarel··on Steel Bank Common Lisp
I'd prefer that a LispWorks user answer, but there are quite a few interesting features, such as:

- tree shaking and small binaries (±5MB a GUI app)

- the CAPI cross-platform and native GUI toolkit

- mobile platforme runtime (iOs, Android)

- its Java interface

- its KnowledgeWorks system for "rule-based, object-oriented, logical, functional and database programming"

- more?

ps: today we maintain a list of pretty decent libraries: https://github.com/CodyReichert/awesome-cl/

vindarel··on Steel Bank Common Lisp
I think LispWorks is fine (also look at these plugins https://github.com/apr3vau/lw-plugins - terminal integration, code folding, side tree, markdown highlighting, Nerd Fonts, fuzzy-matching, enhanced directory mode, expand region, pair editing, SVG rendering…) but I had this feeling with the newer web-based Allegro IDE (the poor syntax highlighting surprised me, did I do sthg wrong?).
Page 1 of 20Next →