These Years in Widespread Lisp: 2022 in evaluate
And 2022 is over. The Widespread Lisp language and surroundings are stable
and secure, but evolve. Implementations, go-to libraries, finest
practices, communities evolve. We don’t want a “State of the
Ecosystem” each two weeks however nonetheless, what occurred and what did you
miss in 2022?
That is my choose of probably the most thrilling, fascinating, attention-grabbing or simply
cool tasks, instruments, libraries and articles that popped-up throughout
that point (with a number of exceptions that appeared in late 2021).
This overview shouldn’t be a “State of the CL ecosystem” (HN comments (133)) that I did in
2020, for which you’ll find complementary feedback on HN.
I feel this text (of kinds) is unquestionably useful for onlookers to Widespread Lisp, however doesn’t present the total “story” or “really feel” of Widespread Lisp, and I need to supply to HN my very own perspective.
And, suffice to say, I attempted to speak about crucial issues,
however this text (of kinds) is on no account a compilation of all new
CL tasks or all of the articles revealed on the web. Look on
Reddit, Quicklisp releases, Github, and my favorite assets:
If I needed to choose 3 achievements they might be:
- SBCL developments: SBCL is now callable as a shared library. See under in “Implementations”.
- a brand new 3D graphics undertaking: Kons-9: “The thought can be to develop a system alongside the traces of Blender/Maya/Houdini, however oriented in the direction of the strengths of Widespread Lisp”. And the undertaking progresses at tempo.
- CLOG, the Widespread Lisp Omnificent GUI. It’s like a GUI framework
to create net apps. Based mostly on websockets, it provides a lightweight
abstraction to create fully-dynamic net functions, in Widespread
Lisp. It has a number of demos to create web sites, net apps, video games, and
it ships an entire editor. For growth, we are able to join our Lisp
REPL to the browser, and see adjustments on the fly. The writer had a
comparable industrial product written in Ada, found Widespread Lisp,
and is now tremendous lively on this undertaking.
Let’s go for extra.
Due to @k1d77a, @Hexstream, @digikar and @stylewarning for his or her suggestions.
Desk of Contents
A newcomer to Lisp got here, requested a query, and all of a sudden he created a brilliant helpful rendering of the specification. Test it out!
However that’s not all, he additionally began work on a brand new Widespread Lisp editor, inbuilt Rust and Tauri, see under.
We proceed to counterpoint the Widespread Lisp Cookbook. You might be welcome to hitch, since documention is finest constructed by newcomers for newcomers.
A resurrected undertaking:
Additionally:
We noticed achievements in no less than 7 8 implementations.
- SBCL continues to ship monthly. In 2022:
- ???? SBCL is now callable as a shared library. See sbcl-librarian under.
- ???? sb-simd – SIMD programming in SBCL.
- core compression makes use of zstd as a substitute of zip: compression is about 4 occasions sooner, decompression about two occasions, compression saves ±10% of dimension.
hint
now helps tracing macro features, compiler-macro features, particular person strategies and native features (flet and labels) (SBCL 2.2.5)- the SBCL repository reached 20,000 commits.
- Prebuilt SBCL binary for Android (Termux) (unofficial)
- Clasp 2.0.0 released
- ECL:
- LispWorks Personal Edition updated to version 8.0.1, incl. native Apple Silicon model
- Major New release of Allegro Common Lisp Express Edition for 10.1
- Browser-based IDE for Linux and macOS
- no syntax highlighting for the editor although :S
- Functions constructed utilizing Widespread Graphics can use browsers for supply. Firefox, Chrome, Safari, Edge and plenty of different browsers are supported.
- New platforms: aarch64, x86_64
- obtain: https://franz.com/downloads/clp/survey
- ABCL 1.9.0 was launched in Could.
- “ABCL 1.9.0 has been finest examined on the openjdk8, openjdk11, and openjdk17 runtimes. It would run different locations however these are the perfect supported.”
- GNU Common Lisp 2.6.13 released, after 8 years.
New implementation! It’s 2022 and other people begin new CL implementations.
- NPT – an implementation of ANSI Widespread Lisp in C.
See additionally:
- LCL, Lua Common Lisp – The purpose of this undertaking is to supply an implementation of Widespread Lisp that can be utilized wherever an unmodified Lua VM is operating.
- not an entire implementation.
They’re doing nice work to revive a Lisp machine:
Medley Interlisp is a undertaking aiming to revive the Interlisp-D software program surroundings of the Lisp Machines Xerox produced because the early Eighties, and rehost it on trendy working methods and computer systems. It’s distinctive within the retrocomputing area in that most of the authentic designers and implementors of main elements of the system are collaborating within the effort.
Paolo Amoroso blog post: my encounter with Medley Interlisp.
I received’t listing expired job publicizes, however this yr Lispers might apply for jobs in: net growth(WebCheckout, freelance publicizes), cloud service suppliers (Keepit), big-data evaluation (Ravenpack, and chances are high they’re nonetheless hiring)), quantum computing (HLR Laboratories), AI (Mind AI, SRI International), real-time information aggregration and alerting engines for vitality methods (3E); for a startup constructing autism tech (and utilizing CLOG already); there have been a job searching for to rewrite a Python backend to Widespread Lisp (RIFFIT); there have been some bounties; and many others.
Prior Lisp expertise was not 100% mandatory. There have been openings for junior and senior ranges, distant and never distant (Australia for “a giant corp”, U.S., Spain, Ukraine…).
Comes a query:
I remind the reader that almost all Lisp jobs do not have a public job posting, as a substitute candidates are sometimes discovered organically on the neighborhood channels: IRC, Twitter, Discord, Reddit… or groups merely practice their new developer.
In 2022 we added a number of corporations to the continued, non-official listing on awesome-lisp-companies. If your organization makes use of Widespread Lisp, be happy to inform us on a difficulty or within the feedback!
For instance, Feetr.io “is totally Lisp”.
Lisp was a acutely aware resolution as a result of it permits a small staff to be extremely productive, plus the truth that it’s a reside picture means that you can hook up with it over the web and poke and prod the present state, which has actually allowed a a lot clearer understanding of the info.
They put up SLY screenshots on their Twitter^^
We’re utilizing CL in prod for an embedded system for some years now, pretty easy crusing. It began out as an MVP/prototype so implementation was of no concern, then gained sufficient velocity and market curiosity {that a} rewrite was infeasible. We re-train expertise on the job as a substitute.
Pandorabots, or barefootnetworks, designing the Intel Tofino programmable switches, and extra.
Language libraries
Editors, on-line editors, REPLs, plugins
New releases:
Concurrency
See additionally lisp-actors, which additionally does networking. It seems like extra of a analysis undertaking, because it doesn’t have unit-tests nor documentation, however it was used for the (stopped) Emotiq blockchain.
Discussions:
Databases
Extra selections: awesome-cl#databases.
There was excellent work performed there. It’s also nice to see the totally different entities engaged on this. That features SBCL builders, Doug Katzman of Google, and other people at HRL Laboratories (additionally accountable of Coalton, Haskell-like on prime of CL).
Have you ever ever wished to name into your Lisp library from C? Have you ever ever written your good scientific software in Lisp, solely to be requested by folks to rewrite it in Python, to allow them to use its performance? Or, possibly you’ve written an RPC or pipes library to coordinate totally different programming languages, operating issues in several processes and passing messages round to simulate overseas operate calls.
[…] When you favor utilizing SBCL, now you can take part on the cross-language programming frenzy too.
- ???? sbcl-librarian – An opinionated interface for creating C- and Python-compatible shared libraries in Widespread Lisp with SBCL. Requires SBCL model >2.1.10.
- ???? alien-works-delivery – WIP system for delivering Widespread Lisp functions as executable bundles. For now it solely helps AppImage format for Linux and MSIX for Home windows, however .APK for Android and later MacOSX and iOS bundle codecs are deliberate too.
- Support for compiling Common Lisp code using bazel.io, by the CL staff at Google.
Video games
Kandria launches on Steam on the eleventh of January, in two days!
???? Kandria trailer.
Graphics, GUIs
We noticed the discharge of contemporary bindings for Gtk4.
We had bindings for Qt5… however they’re nonetheless very tough, exhausting to put in to this point.
Additionally:
Historical past:
However an superior novelty of 2022 is Kons-9.
Kons-9, a brand new 3D graphics undertaking
???? A brand new 3D graphics undertaking: Kons-9.
The thought can be to develop a system alongside the traces of Blender/Maya/Houdini, however oriented in the direction of the strengths of Widespread Lisp.
I’m an old-time 3D developer who has labored in CL on and off for a few years.
I don’t think about myself an knowledgeable […] A bit of about me: • wrote 3D animation software program utilized in “Jurassic Park” • software program R&D lead on “Ultimate Fantasy: The Spirits Inside” film • senior software program developer on “The Hobbit” movies.
Interfaces with different languages
- py4cl2-cffi: CFFI based mostly various to py4cl2.
- it does one large new factor: it helps passing CL arrays by
reference. Which means we even have entry to numpy, scipy, and
mates. - “If py4cl2-cffi reaches stability, and I discover that the efficiency
of (i) cffi-numpy, (ii) magicl, in addition to (iii) a number of BLAS
features I’ve handcrafted for numericals develop into
comparable, I would now not must reinvent numpy.” @digikar
- it does one large new factor: it helps passing CL arrays by
- Small update to RDNZL (CL .NET bridge by Edi Weitz)
- forked undertaking, added assist for Int16, mounted Int64, re-building the supporting DLLs.
- see additionally: Bike
- jclass: Common Lisp library for Java class file manipulation
For extra, see awesome-cl.
Numerical and scientific
- ???? new Lisp Stats release
- “emphasis on plotting and sprucing of sharp edges. data-frames, array operations, documentation.”
- HN comments (55)
- ” I’ve been utilizing lisp-stat in manufacturing as a part of an algorithmic buying and selling software I wrote. It’s been very stable, and although the plotting is (maybe was, in mild of this new launch) kinda unwieldy, I actually loved utilizing it. Excited to take a look at the most recent launch.”
- “For instance, inside Lisp-Stat the statistics routines [1] have been written by an econometrician working for the Austrian authorities (Julia people may know him – Tamas Papp). It might not be exaggerating to say his job relying on it. These are state-of-the-art, excessive efficiency algorithms, equal to something out there in R or Python. So, when you’re doing econometrics, or one thing associated, the whole lot you want is already there within the tin.”
- “For machine studying, there’s CLML, developed by NTT. That is the most important telco in Japan, equal to ATT within the USA. As effectively, there’s MGL, used to win the Higgs Boson problem a number of years again. Each actively maintained.”
- “For linear algebra, MagicCL was point out elsewhere within the thread. My favorite is MGL-MAT, additionally by the writer of MGL. This helps each BLAS and CUBLAS (CUDA for GPUs) for options.”
- “Lastly, there’s the XLISP-STAT archive. Previous to Luke Tierney, the writer of XLISP-Stat becoming a member of the core R staff, XLISP-STAT was the dominate statistical computing platform. There’s heaps of stuff within the archive, most no less than pretty much as good as what’s in base R, that may very well be ported to Lisp-Stat.”
- “Widespread Lisp is a viable platform for statistics and machine studying. It isn’t (but) fairly as effectively organised as R or Python, however it’s all there.”
- numericals – Performance of NumPy with the goodness of Common Lisp
- MGL-MAT – a library for working with multi-dimensional arrays which helps environment friendly interfacing to overseas and CUDA code. BLAS and CUBLAS bindings can be found.
- hbook – Textual content-based histograms in Widespread Lisp impressed by the venerable HBOOK histogramming library from CERN.
Name to motion:
Internet
Screenshotbot (Github) was launched. It’s “a screenshot testing service to tie together with your present Android, iOS and Internet screenshot assessments”.
It’s simple to put in with a Docker command. They provide extra options and assist with their paid service.
LicensePrompt was launched. It’s “a single place to trace all recurring software program and IT bills and ship related reminders to all folks”. It’s inbuilt CL, interface with HTMX.
Libraries:
- jingle: Widespread Lisp net framework with bells and whistles (based mostly on ningle)
- jingle demo: OpenAPI 3.x spec, Swagger UI, Docker and command-line interface app with jingle.
- ciao: Ciao is an easy-to-use Widespread Lisp OAuth 2.0 consumer library. It’s a port of the Racket OAuth 2.0 Shopper to Widespread Lisp.
- stepster: an internet scraping library, on prime of Plump and Clss (new in QL)
- openrpc: Computerized OpenRPC spec era, automated JSON-RPC consumer constructing
- HTTP/2 implementation in Common Lisp
Bindings:
- ???? lisp-pay: Wrappers round numerous Fee Processors (Paypal, Stripe, Coinpayment)
- lunamech-matrix-api: Implementation of the Matrix API, LunaMech a Matrix bot
Apps:
- Ackfock – a platform of mini agreements and mini memos of understanding (constructed with CLOG, closed supply).
- todolist-cl: a pleasant wanting todolist with an internet UI, written in Widespread Lisp (and by a newcomer to CL, so as to add credit score)
I don’t have a number of open-source apps to indicate. Mines are operating in manufacturing and all goes effectively. I share the whole lot on my weblog posts. I even have an open-source one in growth, however that’s for the 2023 showcase 😀
CLOG
???? The superior novelty of 2022 I spoke of within the introduction is CLOG, the Widespread Lisp Omnificent GUI:
I do know of 1 open-source consequent CLOG app: mold-desktop, in growth.
I’m growing a programmable desktop and a bookmarks supervisor software with CLOG. I feel I do know one of many issues that make CLOG person interfaces really easy to develop. It’s that they’re effortlessly composable. That’s it for now 🙂
@mmontone
New releases
There are many superior tasks in music composition, together with OpusModus and OpenMusic which noticed new releases. I additionally wish to cite ScoreCloud, a cellular app constructed with LispWorks, the place you whistle, sing or play your instrument, and the app writes the music rating O_o
- ???? Opusmodus 3.0, Music Composition System, macOS Intel & Apple Silicon native, based on LispWorks, just released
- ???? OpenMusic 7.0, now also native for M1 Macs, visual programming language designed for music composition
- Consfigurator, a Common Lisp based declarative configuration management system, reaches v1.0
- April 1.0 released – APL in Widespread Lisp.
- cl-cmark approaching stable release
- cl-git: a Common Lisp CFFI interface to the libgit2 library
- tinmop 0.9.9.1, a terminal client for gopher, gemini, kami and pleroma.
- look right here for construct full-screen terminal functions in Widespread Lisp.
- clingon – new release, new features (command-line options parser)
- a full-featured choices parser. Helps sub-commands, bash and zsh completions, many arguments sorts…
See awesome-cl and Cliki for extra.
(re) discoveries
Graphics
Scripting
Across the language
Historical past:
Name for motion:
Different articles
New movies by me:
by Gavin Freeborn:
KONS-9 sequence:
CLOG sequence:
CL research group:
Others:
and naturally, discover 3h48+ of condensed Lisp content material on my Udemy video course! (I’m nonetheless engaged on new content material, as a pupil you get updates).
Apart screncasts, some podcasts:
Studying Lisp
Widespread Lisp VS …
- what were the lessons you learned from programming in Lisp that carried over to other languages (more on the imperative side)?
- For serious/industrial/business use, in what ways do you think Common Lisp beat Clojure, and vice versa?
- Common Lisp VS Racket (brazenly biased over CL, with testimonies of lispers understanding each)
- HN comments (143): “I’m a heavy person of Widespread Lisp, and I solely dabble in Racket every so often. Whereas Widespread Lisp is my device of selection for lots of causes acknowledged within the put up, because the put up largely skews favorably towards Widespread Lisp, I’ll supply two issues that Racket shines at.”
- Why not: from Common Lisp to Julia
- HackerNews comments (200) (for this put up and the put up it responds to)
- The writer of the primary put up mentioned he was “migrating from Widespread Lisp to Julia as [his] main programming language”. He was beginning “to develop more and more pissed off with numerous features of the language” and the CL ecosystem. Lots of his arguments have been harsh in the direction of CL and didn’t point out present higher options.
- Two months later, in another blog
post,
he admits the earlier article “was unfair to each languages”, and
whereas “[he] continues to be largely utilizing Julia”, “Widespread Lisp continues to be on the desk for [him]“. - On
LiberaChat,
he says he’s again from Julia to Widespread Lisp: “As of yesterday, I’m
again to creating libraries in CL. I can not think about Julia as a
critical language anymore, for it has deceived me after 7 years of
analysis.”
- Welcome again and because of him for the previous and future CL libraries.
- Is Lisp too malleable to use for serious development?
- Why Lisp? (version française). “We are going to present how our personal LispE interpreter was carried out.”
Thanks everybody, joyful lisping and see you round!