Logo

dev-resources.site

for different kinds of informations.

Scheming About Clojure

Published at
11/13/2024
Categories
clojure
programming
java
lisp
Author
gramian
Categories
4 categories in total
clojure
open
programming
open
java
open
lisp
open
Author
7 person written this
gramian
open
Scheming About Clojure

Clojure is a LISP for the Java Virtual Machine (JVM). As a schemer, I wondered if I should give Clojure a go professionally. After all, I enjoy Rich Hickey's talks and even Uncle Bob is a Clojure fan. So I considered strength and weaknesses from my point of view:

Pros

  • S-Expressions
  • Makes functional programming easy
  • Schemy naming with ? and ! suffixes
  • Integrated testing framework
  • Platform independence due to JVM
  • Simple Java interoperability
  • Clojure map type corresponds to JSON
  • Web-server abstraction with extensions (Ring)
  • Dedicated Ubuntu-based Docker image

Cons

  • Too many core functions
  • Too many concurrency concepts
  • Having collection functions and the sequence API is confusing
  • Keywords feels unnecessary, given symbols
  • Unwieldy default project structure
  • Leiningen feels forced upon you
  • Clojure is not just a single jar (anymore)
  • No integrated JSON parser

Insight

Clojure seems good enough. It is not flawless and somewhat overloaded, but far, far ahead of Javascript, Python, Go, or Rust. Of course, I would always prefer CHICKEN Scheme for any passion project. But in an environment that already runs databases written in Java, the JVM has street cred, and a large community hints at sustainability, Clojure presents itself as well balanced in novelty and stability. All in all, Clojure seems to be the enterprise Lisp.

References

lisp Article's
30 articles in total
Favicon
Common Lisp HTML templates: using Djula in .lisp files
Favicon
Remaking a rule-engine DSL
Favicon
Advent of Code: alexandria's map-permutations was perfect for day 08. Common Lisp tip.
Favicon
C and C++ are really so fast?
Favicon
Scheming About Clojure
Favicon
FTP and SFTP clients for Common Lisp
Favicon
Common Lisp with batteries included: CIEL v0.2 (aka fast scripting with useful libraries)
Favicon
A shell script that I usually run after installing SBCL
Favicon
Common Lisp VS Haskell
Favicon
Debugging Common Lisp: "Iย feel so much faster and free"
Favicon
Learning Lisp - making sense of xrefs in SLIME
Favicon
Learning Lisp
Favicon
Common Lisp's groupBy is Serapeum:assort
Favicon
Common Lisp VS C: a testimony
Favicon
Lisp: simplifying my problems through code
Favicon
Python VS Common Lisp applied: print, log and icecream
Favicon
Lisp-style list in Rust
Favicon
RainLisp on .NET
Favicon
Is Elixir or Common Lisp the best language for building a bootstrapped B2B SaaS in 2024?
Favicon
Form validation in Common Lisp
Favicon
Common Lisp GUI with Electron ยท quick how to
Favicon
Throttle/debounce a Common Lisp function
Favicon
OOP via FP : functional nature of classes and objects
Favicon
5 ways to get text from an Emacs buffer
Favicon
Configuring Neovim with Fennel
Favicon
Coding in the Shadows: Hidden Gems of Lisp, Clojure, and Friends
Favicon
Emacs is More Like a Terminal Than an Editor
Favicon
Do you need an IDE to write Common Lisp?
Favicon
Entendendo Algoritmos - Cap.5 Quicksort em Clojure
Favicon
The unreasonable effectiveness of working with a live programming image

Featured ones: