I like Common Lisp but I no longer use it. I'm pretty much completely burned out on dynamic typing. It feels like building on sand. I want calmer programming, even if it's less powerful. At present I'm building a new language[0] with that goal in mind.
I also want static type-checking in my programs. However, reluctant to give up CL, I've been using type annotations, which SBCL will check at compile-time. Is there a particular reason you're not doing this?
I'm curious how extensively you use automated tests in dynamically-typed languages? I find that the types in statically-typed languages, especially OCaml, take up a lot of the load of tests.
Of course, types can prove things tests can't, and especially the linear types you're using in Austral.
I've been wondering what a "tiny Rust" would look like, so Austral looks pretty interesting.
"One of the state-of-the-art optimizing quantum compilers is an open-source program called QUILC with a companion quantum computer simulator called the Quantum Virtual Machine. Both of these programs are written in 100% Common Lisp, and contain a total of around 50,000 lines of sophisticated, mathematical, data structure–heavy code. And that excludes the plethora of first-party dependencies.
Common Lisp is a fantastic language for developing these programs; it’s fast, stable, extremely flexible, and the developer experience is unmatched. But, both new and seasoned developers sometimes get tripped up and tangled in the web of complex data structures, and inadvertently introduce type errors that the relatively comprehensive test suite doesn’t catch. In addition, such developers heavily rely on documentation strings (“docstrings”) in order to discover what the probable inputs and outputs of the functions are, and those docstrings sometimes go stale.
Coalton’s aim is to allow us to reap the benefits of Common Lisp, and not have to rewrite 50,000 lines of tricky code in order to realize some of the benefits offered by statically typed functional programming languages."
https://coalton-lang.github.io/20211010-introducing-coalton/
[0]: https://github.com/austral/austral