I have a suspicion that outside of the 10 people writing lisp seriously—shirakumo, stylewarning, lispm, and some others— there’s more characters of prose praising lisp being written than lisp being written. It’s a great language. I really like it and am using it for some projects. I just want people to actually use it rather than talking about using it.<p>Edit: I’m wrong in the present case! Author has some cool projects on GitHub under themetaschemer. Still though I’m struck by the ratio of lisp project articles vs lisp praising articles hitting HN’s front page.
I vehemently disagree with <i>dynamically typed</i> being a winning point of Lisp. SBCL's strong support for type checking is the main reason I was drawn from Scheme to CL, and Coalton (<a href="https://github.com/coalton-lang/coalton">https://github.com/coalton-lang/coalton</a>) is one of the most interesting Lisp projects I have encountered.<p>Type checking can remove an entire class of bugs from even being a consideration. Yes, it could be argued that type mismatches are a trivial class of bug, and yes, proper testing should catch any issues... but catching problems <i>before</i> you go to testing can save you precious seconds, especially when coding in the typical interactive style of Lisp. Lisp lets you code at amazingly high velocity, good support for type checking helps increase that velocity even further.
Been doing Clojure for the past 5 years and while the language itself is great, the ecosystem really isn't. The tooling is subpar, editor support is clunky at best, everything is for some odd reason much harder to set up and explained in a more difficult way. A ton of libraries don't even provide documentation, they just expect you to REPL their functions to find out what they do.<p>The older I get the more I realize that what makes something great to use isn't all about the language, but the surrounding environment, and how pleasant _that_ is to use. Personally I think I will most likely not Lisp for much longer because I'm seeing many other languages have much nicer to use ecosystems, even if they probably pay less.
I haven't used a lisp for a few years, but I still remember after it finally "clicked" the weird _velocity_. Code just flooded out.<p>In other languages I hop around from class defs to class defs, different files. Just richocheting all over the file system. Something about LISP removes a lot of the ricochet. It's a weird sensation.
As author of #Script Lisp [1] I'd say LISP really shines as an embeddable REPL language where you can use it to script larger compiled code-bases like Unity3D games while it's running [2] it's also been useful to open a TCP REPL on a deployed .NET App to inspect its running state and execute its configured dependencies [3].<p>But I don't use it outside of Scripting .NET Apps anymore other than when needing to perform quick calculations while I'm already in the command-line, I can bring up a quick LISP REPL with `x lisp`.<p>[1] <a href="https://sharpscript.net/lisp/" rel="nofollow">https://sharpscript.net/lisp/</a><p>[2] <a href="https://sharpscript.net/lisp/unity" rel="nofollow">https://sharpscript.net/lisp/unity</a><p>[3] <a href="https://sharpscript.net/lisp/#lisp-repl-tcp-server" rel="nofollow">https://sharpscript.net/lisp/#lisp-repl-tcp-server</a>
I've been digging into Common Lisp again lately. I'm really enjoying some parts: CLIM is weird but interesting, and the fact that I'm basically developing inside a debugger makes testing and iterating on stuff pretty straightforward. On the other hand, library documentation frequently feels more like the programmer was making notes to himself rather than illustrating how the code might actually be used. I was also pretty shocked when, after using a quick shell script to generate a file containing a big list (~80MB on disk, 800k items) defined in s-expressions, reading it into SBCL exhausted the heap. After telling SBCL it could allocate two gigabytes I was able to read the file, but <i>doing</i> anything with it was a sure-fire way to run out of memory again. I would never think twice about reading an 80MB file into a Go program!<p>I sort of feel like I'm walking through an abandoned alien city and wondering what size they were, how many limbs they had, and if we share the same 5 senses or not.
Lisp feels more creative. You can bend the language, it's malleable.
Rust may be the new Engineer's best friend but to me, Lisp remains the tool for the artist.
Use Rust to Do It Right. Use Lisp to have fun.
for clojure/jvm, there are a lot of good competitors and not an obvious winner.<p>for js/react, there is nothing even close to reagent/shadowcljs.<p>lisp is thriving on frontend, and doing just fine on backend.