CL21 and thoughts on a modern lisp

Published

I’m a great lisp lover, and for years I’ve been thinking about updating common lisp into a more modern idiom. Today, I’ve just saw that someone was working on CL21, a Common Lisp for the 21th century. Here are the things I wish I had.

    • Fluent Data Structures – This is something that I love from Python, JavaScript, or any other script language. You can declare a dictionary or an array as : a = { "elements" : ["one", "two", "three"] } I can’t tell you the number of times this time of syntax allowed me to prototype something. Also, I would like to have slices and comprehensions.
    • String manipulation – This is a big one. When lisp was created, the focus was symbolic programming. Today most of my day is occupied doing some kind of  string manipulation, being JSON or some CSV. String manipulation in Lisp is ridiculous. What in python is done by: a = "foo" + "bar" Is done in lisp by: (setq a (string-concatenation "foo" "bar))
    • The 90’s – This is a simple but hard one. File I/O API that doesn’t feel it was stuck on dot matrix printers times. A standard thread API. A standard HTTP library. Etc..
    • Better package management – I still prefer the namespace method of C++, instead of the package model of Java. But at least something better.
    • Cased programming – Yeah, we now have better character-encoding schemes, can we use Lower and Upper characters?

More than this, what I wish lisp gave me is the simplicity and pleasure I get when using python to do some task. I still do this day can use lisp as a go to language, because all of these small inefficiencies remove me the focus on solving the actual problem.