Calcit is mostly a ClojureScript dialect. So it should also be considered a Clojure dialect.
There are some significant features Calcit is learning from Clojure,
- Runtime persistent data by default, you can only simulate states with
- Hygienic macros(although less powerful)
- Higher order functions
- Hot code swapping while code modified, and trigger an
Also there are some differences:
|Host Language||Rust, and use ||Java/Clojure, import Mavan packages|
|Syntax||Indentations / Syntax Tree Editor||Parentheses|
|Persistent data||unbalanced 2-3 Tree, with tricks from FingerTree||HAMT / RRB-tree|
|bundle js modules||ES Modules, with ESBuild/Vite||Google Closure Compiler / Webpack|
|operand order||at first||at last|
|Polymorphism||at runtime, slow ||at compile time, also supports multi-arities|
|REPL||only at command line: ||a real REPL|
also Calcit is a one-person language, it has too few features compared to Clojure.
Calcit shares many paradiams I learnt while using ClojureScript. But meanwhile it's designed to be more friendly with ES Modules ecosystem.