clojerl
awesome-clojure-likes
clojerl | awesome-clojure-likes | |
---|---|---|
12 | 3 | |
1,634 | 194 | |
0.3% | - | |
5.1 | 4.3 | |
6 months ago | 5 months ago | |
Erlang | ||
Eclipse Public License 1.0 | - |
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.
clojerl
- Really hard convincing colleague to switch to Clojure
-
Clojure Scripting on Node.js
Basically, you take a programming language and make it work on a platform that meant to be programmed using a different PL. Clojure is hosted by design - it's not Java, but can be used to program for JVM. It ain't Javascript, but can be used to target nodejs and browser; not an [official] CLR language, but you can write .Net programs. You can use Clojure to make Flutter apps with ClojureDart. You can integrate Python into Clojure with libpython-clj. Or write Clojure to target Erlang/OTP; or Rust; or R; There's even a clojure-like language for Lua - Fennel.
There's something about Clojure people like so much, they want it to work atop any platform.
https://github.com/Tensegritics/ClojureDart
https://github.com/clj-python/libpython-clj
https://github.com/clojerl/clojerl
https://github.com/clojure-rs/ClojureRS
https://github.com/scicloj/clojisr
https://fennel-lang.org
- On Repl-Driven Programming
-
Which Programming language libraries can Clojure use as its own?
But there are also unofficial implementations—i.e. not JVM, JS, .NET—of Clojure for other host environments, e.g. Clojerl. And of course nearly everything /u/borkdude touches interops with something in some way.
-
CL vs Racket
Tail call optimization/elimination isn't a property of functional languages - there are tons of non-functional languages with it, like Lua or even C, when compiled with -O3, to name a few. Besides, Clojure is a hosted language, so it shares the platform characteristics, and recur is a language-way of providing a construct for tail call looping. Clojure on BEAM for example, supports tail call elimination, because BEAM does. And Beam is a quite functional environment ;)
-
Clojure, but without the JVM?
Clojerl: an implementation for the Erlang VM. The reader conditional is :clje.
- Clojerl 0.9.0 is out with features released in Clojure 1.9, including Spec
- Elixir Protocols vs. Clojure Multimethods
-
haskell elixr or clojure
There's also an unofficial BEAM VM implementation
- London Clojurians talk: Clojure - JVM + BEAM = Clojerl (by Juan Facorro)
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?
cloture - Clojure in Common Lisp
Fennel - Lua Lisp Language
meander - Tools for transparent data transformation
hy - A dialect of Lisp that's embedded in Python
nx - Multi-dimensional arrays (tensors) and numerical definitions for Elixir
janet - A dynamic language and bytecode vm
joker - Small Clojure interpreter, linter and formatter.
lumo - Fast, cross-platform, standalone ClojureScript environment
protocol_ex - Elixir Extended Protocol
ClojureCLR - A port of Clojure to the CLR, part of the Clojure project
lazy-seq - Lazy sequences for Fennel and Lua (mirror)