Need advice about which tool to choose?Ask the StackShare community!
Clojure vs Crystal: What are the differences?
Clojure: A dynamic programming language that targets the Java Virtual Machine. Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system; Crystal: Fast as C, slick as Ruby. Crystal is a programming language that resembles Ruby but compiles to native code and tries to be much more efficient, at the cost of disallowing certain dynamic aspects of Ruby.
Clojure and Crystal can be primarily classified as "Languages" tools.
"It is a lisp" is the primary reason why developers consider Clojure over the competitors, whereas "Compiles to efficient native code" was stated as the key factor in picking Crystal.
Clojure and Crystal are both open source tools. Crystal with 13.5K GitHub stars and 1.05K forks on GitHub appears to be more popular than Clojure with 7.85K GitHub stars and 1.25K GitHub forks.
CircleCI, Groupon, and Soundcloud are some of the popular companies that use Clojure, whereas Crystal is used by Bitupper, Diploid, and mose. Clojure has a broader approval, being mentioned in 95 company stacks & 80 developers stacks; compared to Crystal, which is listed in 7 company stacks and 14 developer stacks.
We’re a new startup so we need to be able to deliver quick changes as we find our product market fit. We’ve also got to ensure that we’re moving money safely, and keeping perfect records. The technologies we’ve chosen mix mature but well maintained frameworks like Django, with modern web-first and api-first front ends like GraphQL, NextJS, and Chakra. We use a little Golang sparingly in our backend to ensure that when we interact with financial services, we do so with statically compiled, strongly typed, and strictly limited and reviewed code.
You can read all about it in our linked blog post.
Pros of Clojure
- It is a lisp117
- Persistent data structures100
- Concise syntax100
- jvm-based language90
- Concurrency89
- Interactive repl81
- Code is data76
- Open source61
- Lazy data structures61
- Macros57
- Functional49
- Simplistic23
- Immutable by default22
- Excellent collections20
- Fast-growing community19
- Multiple host languages15
- Simple (not easy!)15
- Practical Lisp15
- Because it's really fun to use10
- Addictive10
- Community9
- Web friendly9
- Rapid development9
- It creates Reusable code9
- Minimalist8
- Programmable programming language6
- Java interop6
- Regained interest in programming5
- Compiles to JavaScript4
- Share a lot of code with clojurescript/use on frontend3
- EDN3
- Clojurescript1
Pros of Crystal
- Compiles to efficient native code38
- Ruby inspired syntax36
- Performance oriented - C-like speeds32
- Gem-like packages, called Shards23
- Can call C code using Crystal bindings20
- Super Fast18
- Typed Ruby <318
- Open Source17
- Minimal Runtime14
- Cute11
- Clean code9
- Concurrent9
- Productive9
- Great community4
- Powerful2
- Program compiled into a single binary2
- Simplicity2
- Meta-Programming (via Macros)2
- Feels like duck types, safe like static types2
- Null Safety2
- Type inference2
- Has builtin LLVM support library1
- Statically linked binaries that are simple to deploy1
- Fun to write1
- High-performance1
- Simple, minimal syntax1
- Compile time statically safe macros1
- Concise1
- Statically Safe Monkey Patching1
- Fibers1
- Spawn1
- Meta-programming1
- Productivity1
- Elegant1
- Cross-platform1
Sign up to add or upvote prosMake informed product decisions
Cons of Clojure
- Cryptic stacktraces11
- Need to wrap basically every java lib5
- Toxic community4
- Good code heavily relies on local conventions3
- Tonns of abandonware3
- Slow application startup3
- Usable only with REPL1
- Hiring issues1
- It's a lisp1
- Bad documented libs1
- Macros are overused by devs1
- Tricky profiling1
- IDE with high learning curve1
- Configuration bolierplate1
- Conservative community1
- Have no good and fast fmt0
Cons of Crystal
- Small community13
- No windows support3
- No Oracle lib1