4 ms·
I actually switched from Clojure to CL. I switched because I was making command line tools and clojure's startup time is abysmal. Babashka doesn't have all the
by djha-skin 2y ago
I actually switched from Clojure to CL.
I switched because I was making command line tools and clojure's startup time is abysmal. Babashka doesn't have all the libraries and GraalVM's native image requires herculean effort to work even a little bit and spits out monstrously huge binaries.
Common Lisp is actually a lot more popular than I thought it was. I think perhaps it doesn't look that way, but it's very strong I assure you. Join us on the lisp Discord!
It is possible to create relatively small binaries out of the box with nearly instant startup time. There's plenty of libraries and a strong community. There's also a great number of implementations.
A lot of the things that are not standardized in the standard have been standardized via implementation agreement and libraries abstracting away different implementation differences, such as cffi and bordeaux-threads. I defy closure to have anything nearly as feature complete for parallelization as parallels, blackbird, and CL-async. Speaking of which, the C FFI story is strong enough with lisp that any major missing library or language feature usually has a wrapping list Library around that feature written in C. While it's not standard, all the major implementations have adopted gray streams and people use flexi streams to open sockets. It's the same kind of du jour standard that Clojure relies on.
The standard is flexible enough to have several different implementations on several different platforms. If I need to interface with jvm languages, I can use armed bear common lisp. If I need just a really strong implementation that works in most situations I can use CCL or sbcl. If I need to integrate heavily with C or C++ code I can use ecl or clasp.
It is clunkier because it takes the view that agreement between programmers is more important than clean syntax. The standard was created to unite the different lisp implementations instead of divide them. I value this view.