I'm won over. I'm now officially a big fan of Clojure.
A LispLanguage dialect that compiles to JavaByteCode.
I originally thought it would be a faff. Lisp's verbose-when-compared-to-HaskellLanguage meets the JavaVirtualMachine. But now I got into it I'm starting to love it.
- Great language design. Very clean and intuitive. Exemplary use of interfaces in the standard collections libraries.
- Immutable and lazy collections as default and prefered way of doing things.
- Great library via full Java compatibility / integration. (Clojure compiles to JVM bytecode and can both call and be called from Java)
- Emacs with ParEdit is a good dev environment.
- Great concurrency libraries.
How do you make a really great language?
Start with an already great one, and have the courage to make tasteful breaking changes.
In this case ... start with Lisp.
And then add :
- extra syntax. For data. This goes against Lisp's traditional disdain for syntax. But while extra syntax for code doesn't buy much, a bit of extra syntax for data turns out to be a great trade-off.
- immutability. Common Lisp and Scheme both tried to sell themselves as "multi-paradigm". Clojure reclaims its place as a FunctionalProgramming language. With the associated benefits.
My software in Clojure :
- CardiganBay the wiki-engine that runs this (ThoughtStorms) wiki. You are probably reading a static HTML site that was exported from Cardigan Bay. All of ThoughtStorms is now written in CardiganBay.
- Patterning makes geometric patterns with FP
- MindTrafficControl command-line edition is now Clojure.
Getting Stuff Done
- HyperFiddle to abstract away from the web client / server distinction in Clojure
Funding for Clojure FreeSoftware projects : https://www.clojuriststogether.org/
See also :
- I checked out RacketLanguage too, and I think it's great. I just prefer certain things about Clojure. ClojureVsRacket
Backlinks (96 items)