SBCL 20: Steel Bank Common Lisp's 20th Anniversary Workshop
sbcl.org
sbcl.org
SBCL is a piece of software that’s not inundated with opinions, politics, drama, and other organizational issues. That is in part due to the fact that the folks who develop it must stay grounded. ANSI Common Lisp is, well, a standardized language and the SBCL aims to follow it to a tee.
SBCL is just a small-town coffee shop compared to the Starbucks and Dunkin Donuts of other language implementations. As a professional and commercial user of their software, the size of the user base and developer team used to worry me. But 20 years of stability—compared to even the most contemporary language ecosystems—has given me solace in my choice to use it.
[0] https://www.rigetti.com/forest
AFAIK, most Common Lisp applications are deployed in a single binary, bundled with the lisp implementation. SBCL isn’t an exception, so if someone would deploy an SBCL app to end-users, one would build a self-contained application with the `sb-ext:save-lisp-and-die` function [0].
[0]: https://lispcookbook.github.io/cl-cookbook/scripting.html
Compared to emitting C or whatever where you need to include code to stitch the runtime state together.
Makes compiling standalone executables so easy [1] it feels like cheating.
CL was my preference many years back, but practical usage at the fringes required me to be a SBCL expert. Sadly, I am/was not :-( so now I am a Python Pleb.
That being said, I am so dependent on SBCL's treatment of types that I always have a Slime session open in order to parallely develop non graphical code on both. It is truly an amazing implementation.
Here’s to another 20 years and beyond!
When developing I always detach the UI code so it lives in its own package, where I don't hesitate to make use of implementation goodies such as CAPI (of course) and the mp package. The rest of the stuff aims to be portable CL and uses the de-facto compatibility libraries.
As for the pricing of the Hobbyist edition, I think they are hurting their business this way in the long term. Times have changed and thanks to Quicklisp the ecosystem is better and more important than ever, but a lot of libraries go untested for LW because of such paywall. Not to mention the Personal Edition is barely usable and leaves a bad impression.
But then again, these are just my two cents. I am not going to tell one of the very few commercial vendors alive today how to run their business.
But being as it is, it is easy to load a GUI library of your choice and as a Lisp implementation SBCL is just great.
Unfortunately probably nobody has time to work on LW-level GUI library. Significant effort involved from people who mostly have no need for one.
[1]: See page 58 in Performance and evaluation of Lisp systems by Richard Gabriel http://rpgpoet.com/Files/Timrep.pdf
Being able to sit back and watch bug fixes and performance improvements trickle in without having to deal with the usual torrent of new/deprecated features is a nice change from other languages.
Using implementation-specific features is mostly frowned upon in the CL community, but SBCL is so rock-solid and readily available that I feel less and less motivated to deal with cross-implementation issues. Much like GHC in Haskell land.
Keep it up!
Also, Portacle [1] is a SBCL + (Emacs based) IDE distro that's super easy to setup and use.
I still use Windows and sometimes the machines I'm working on don't have dev environment to build SBCL.