I'm one of the (less active) maintainers. Four years ago I migrated the CL cookbook from sourceforge where it'd been gently resting for quite a few years (nearly a decade), and put it onto github, put together a CI system, and away it went. A few volunteers have been diligently working away on improving it, particularly `vindarel`, who has really taken the lead for content work in the last couple years as I've been pulled away by other things.
since 2015 we've had 492 commits into git, and these fine people have contributed to the git tree:
Alexander Artemenko
Andrew
Andrew Hill
Ben Dudson
Burhanuddin Baharuddin
chuchana
Danny YUE
Dmitry Petrov
Fernando Borretti
HiPhish
Johan Sjölén
Kevin Layer
LdBeth
Momozor
Nisar Ahmad
Nisen
otjura
Paul Donnelly
Pavel Kulyov
Pierre Neidhardt
Salad Tea
Victor Anyakin
vindarel
Vityok
YUE Daian
thanks be to the contributors!
I'll be around to answer any Qs for an hour or two, then I'll keep an eye out tomorrow!
Had a general question about CL. What advantages does it have over things like Racket and Chicken? And how could I potentially pitch the language to a non-dev?
There are a handful high-quality implementations, both free and commercial, many of which can generate efficient native code. When you can stick to the standard, you can reasonably expect your code to work across implementations and platforms.
The existence of the standard also means that you can often use code that is decades old with few changes. Furthermore, there are actually bodies of old code that you might want to use, because of its relatively common use in AI and academic communities in the 80s and 90s. See, for example (https://www.cs.cmu.edu/Groups/AI/0.html).
It's designed to support interactive programming to a greater extent that any other language except perhaps Smalltalk. For example, the ANSI standard defines functions you can use to change the definitions of classes at runtime and have existing instances automatically updated to use the new definitions.
Like Racket and Chicken, it has a good library ecosystem. The ecosystem is supported by a good package manager (https://www.quicklisp.org/beta/). That package manager is in turn supported by a decent documentation-search site (http://quickdocs.org).
Several Common Lisp implementations support easy delivery of programs as a single, self-contained executable. The buildapp library (http://quickdocs.org/buildapp/) shows how this may be done in a cross-implementation way by supporting both SBCL and CCL.
The Common Lisp community has been around for decades, as have some of its prominent members. There's a ton of useful, practical knowledge in the community. It does have a bit of an unfriendly reputation, and that's sometimes deserved, but with some patience and persistence you'll find that it also contains friendly and helpful people who know a lot about the language and its effective use.
- it's all interactive and that's a productivity boost. Write a function, compile it (yes, compile function by function), see warnings or get a debugger on errors, try it right away. Same for web development. No process has to restart to test your changes.
- build a self-contained executable: a joy to deploy.
- strong typing, catches many common errors (and coming: an ML extension for CL: https://github.com/stylewarning/coalton, already used in a large Rigetti codebase)
- stable.
- fast
- take in every language feature you want with libraries
- parenthesis: they help to edit code by structure, by semantic units, instead of by line or characters.
- most flexible language. Like Python's decorators or context managers ? Yet they're limited and have their idiosyncrasies.
- unmatched object system, with generic functions that help maintain your logic small.
Another excellent companion with the Cookbook is `Common Lisp Recipes` by Edi Weitz. Edi Weitz is a profilic CL programmer and his libraries are worth their weight in gold.
Anyone learning CL must read his code if I were to say to learn from a master.
For a Vim user, what is a good plugin to provide SLIME like paredit and REPL capabilities for programming in Common Lisp? Is there a clear winner plugin in Vim like there is SLIME for Emacs?
Steve Losh in his already-classic CL blog post [^1] suggests either Vlime or Slimv, quote:
„If you’re like me and already have Vim burned too deeply into your fingers to ever get it out, I’d recommend Vim with Vlime. It will give you 80% of the experience you’ll get with Emacs.”
If you want 100% of SLIME goodness without sacrificing vim, try spacemacs [^2]. I switched about two years ago and am very happy.
I'm in the process of switching after many years of using vim, and it’s been incredible so far. Spacemacs really is like vim, only with way more features out of the box, and way better discoverability, so it's really quick to get up to speed.
I have not heard before about evil-collection. I have thought about having a custom setup, but my .spacemacs has grown a bit, so it's going to be a major work. I will try it at some point, just to check my elisp-fu
I'm one of the (less active) maintainers. Four years ago I migrated the CL cookbook from sourceforge where it'd been gently resting for quite a few years (nearly a decade), and put it onto github, put together a CI system, and away it went. A few volunteers have been diligently working away on improving it, particularly `vindarel`, who has really taken the lead for content work in the last couple years as I've been pulled away by other things.
since 2015 we've had 492 commits into git, and these fine people have contributed to the git tree:
thanks be to the contributors!I'll be around to answer any Qs for an hour or two, then I'll keep an eye out tomorrow!