A Road to Lisp: Which Lisp

18 points by silcoon 22 hours ago on lobsters | 4 comments

Rovanion | 21 hours ago

Clojure doesn’t have types, but clojure.spec can be used to describe, validate and generate data without introducing a static type system, useful in large applications.

Nit: Clojure does have dynamic types, it is just not statically typed. Though you may provide type hints for function arguments in order to help the compiler eliminate dynamic dispatch through the (fn [^Int arg] (+ arg 1)) syntax.

vindarel | 11 hours ago

Common Lisp lacks some conveniences that have become common in newer languages, such as concise literals for a wider variety of data structures, persistent immutable collections, lazy sequences and built-in general-purpose pattern matching.

we can explore libraries on https://github.com/CodyReichert/awesome-cl/

concise literals: serapeum's dict or other libraries bring you { } for hash tables and the like (BTW I don't mind literals. I prefer words, such as dict).

persistent collections: FSet (and more)

lazy sequences: series, gtwiwtg (generators) (and more)

pattern-matching: Trivia

they aren't built-ins except if you build your distribution, like CIEL: https://ciel-lang.org/ (shameless plug)


It’s currently used in …

more companies: https://github.com/azzamsa/awesome-lisp-companies/

also: https://lisp-screenshots.org/


at the cost of slightly slower startup times

that means ±30ms, not the Java-esque slow startup time ;)

Kratacoa | 11 hours ago

I expected more personal opinions and judgments from the author.

Can you elaborate? I thought it was interesting, though as someone who has been using Clojure at work for ~7 years I’m not in the target market.

jklowden | 20 hours ago

Comment removed by author