cloture
awesome-clojure-likes
cloture | awesome-clojure-likes | |
---|---|---|
8 | 3 | |
371 | 194 | |
- | - | |
4.5 | 4.3 | |
7 months ago | 6 months ago | |
Common Lisp | ||
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cloture
-
Trouble defining a Lisp-1 DSL in Common Lisp
For reference, and to show that it's possible, you might be interested in how I did this for Cloture (Clojure in CL): https://github.com/ruricolist/cloture/blob/master/clojure/core.lisp
-
The Jank Language: LLVM Hosted Clojure
Why not use something like https://github.com/ruricolist/cloture (a Clojure "adapter" that runs on Common Lisp) if you want that?
- Cloture – Implementation of Clojure in Common Lisp
- ClojureRS – Clojure interpreter implemented in Rust
- Clojure – Differences with Other Lisps
-
Clojure, but without the JVM?
Clojure on Common Lisp: https://github.com/ruricolist/cloture
- Seeking clojure-styled concurrency operators for common lisp
-
On Repl-Driven Programming
It does not offer the full experience. It has no breakloop and no ability to browse and edit the live running environment. It has no ability to rummage around inside the dynamic environment of a suspended function call, much less to redefine the suspended function or the types of its parameters, nor to restart the suspended call. Indeed, the JVM makes some of that stuff really inconvenient to do.
You cannot do everything from the Clojure repl in the way you can from a Common Lisp repl or from a Smalltalk worksheet.
I don't know that the Clojure language design forbids it; you might, for example, implement Clojure on top of a Lisp or Smalltalk environment and hook up their tools to Clojure through its interop. That might work, and ruricolist has been working on such an implementation called Cloture:
https://github.com/ruricolist/cloture
But existing Clojure implementations don't have the full set of tools.
awesome-clojure-likes
- GitHub - chr15m/awesome-clojure-likes: Curated list of Clojure-like programming languages.
-
Clojure, but without the JVM?
I really sympathize here, Clojure is such a cool kid. Unfortunately, I did not find a satisfying clojure-like langage, here is a good list of similar or inspired langages : https://github.com/chr15m/awesome-clojure-likes
-
State of Clojure 2021
I think Clojure will be a very hard language to supersede. Lisp syntax in general is not very common, so lots of people dismiss it just because of that. The ones that don't, usually look on programming languages differently, and won't leave Clojure unless a serious contender with a seriously awesome team behind it pops up, which since I started doing Clojure (~2010) hasn't happened yet and seems unlikely to happen.
Although there are some nice efforts on getting wider support for Clojure. Babashka is one of my favorite projects, that leverages SCI (Small Clojure Intreper) and GraalVM to build a subset of Clojure that can startup much faster, making Clojure suitable for CLIs and desktop apps.
Then we have the Clojure-like languages that takes the best ideas of Clojure with some differences and different runtimes. Joker comes to mind as one of those. Here are some others: https://github.com/chr15m/awesome-clojure-likes
I also think ClojureScript is still a hidden gem in the frontend world. Now with the rise of shadowcljs, it becomes easier to get started, which is seemingly super important for the JS world (rather than focus on longterm experience, first timer experience is the focus), so more people will see the strength in Clojure for client-side clients, especially if the data structures you're dealing with is coming from 3rd party clients instead of you making them up on the backend.
All in all, Clojure will be hard to replace, but definitely not impossible, it'll just take a lot. For now, Clojure is the king on the hill, with it's small versions eating up some smaller hills. In my view, it's time has yet to come.
What are some alternatives?
janet - A dynamic language and bytecode vm
Fennel - Lua Lisp Language
clojerl - Clojure for the Erlang VM (unofficial)
hy - A dialect of Lisp that's embedded in Python
clj-chrome-devtools - Clojure API for controlling a Chrome DevTools remote
etaoin - Pure Clojure Webdriver protocol implementation
lumo - Fast, cross-platform, standalone ClojureScript environment
planck - Stand-alone ClojureScript REPL
ClojureCLR - A port of Clojure to the CLR, part of the Clojure project
ClojureRS - Clojure, implemented atop Rust (unofficial)
joker - Small Clojure interpreter, linter and formatter.