The jank blog is written by the developer of jank, a Clojure dialect built on LLVM with native C++ interop.
HN commenters bring it up as a candidate Lisp for games and native work, and as a Clojure dialect they would like to see gain traction.
As a person who looks always at Java and C sharp with curiosity, I am a bit divided.
For me C#'s value is obvious in the frontend and also games compared to Java (except for mobile, where Java can be used but Kotlin seems best).
But for the backend I always wonder if I should invest more on C# or Java as I go.
Also, it worries me that Java is a memory hog, which C# seems not to be. I like to have lean server-side software, to the point that my usual approach has been to use C++ paired with Capnproto, but if I had to go with something a bit more high-level for web work, I am not sure.
Currently I am investigating Clojure for non-critically-fast backend. It seems to be a lot of fun and since I am using https://fennel-lang.org/ (replacing part of my Lua code) and I expect https://jank-lang.org/ to become something at some point, maybe it is worth to stick to it?
How would someone that has more data than me compare Java vs C# in terms of performance as-in "what machine you need in the cloud" to do useful stuff, mainly for backend work, asynchronous, in terms of CPU and memory for both?
Thanks for clarifying.
> I did have some issues with how Clojure is managed
Yes there was some drama a few years back and then Rich wrote his post 'Opensource is not about you'. It was a good post.
Opensource is not easy and you might argue the reason why Clojure is so stable and backwards compatible is because of the way it's managed.
Luckily we didn't up with a scenario where Rich completely stopped. I think there was a recent case of an opensource maintainer (who works in academia) stopping PRs due to an entitled user. Can't remember the project.
But equally, is the current form of stewardship fit for purpose for the next 10 years of Clojure, i.e. to increase adoption by businesses? Don't know. Maybe something can be learned from how Linux is managed. I think Linus experienced similar bottleneck issues back then.
> I’m actually very interested in yank
I think you mean Jank: https://jank-lang.org/ ?
I'm quite excited about Clojure for GO projects.
EDIT: clarity.
As a dialect of Clojure, it's a dynamically typed language. But its designer has expressed interest in eventually adding static type checks via a gradual typing system¹:
> I mentioned that a native Clojure is the first step toward my dream language. Indeed, it doesn't stop there. jank will always be a Clojure dialect, but it will also optionally support more. Features like gradual typing (maybe linear typing), more explicit memory management, value-based errors, and stronger pattern matching, to name a few, improve upon Clojure. This will allow another axis of control, where some parts of the program can remain entirely dynamic and garbage collected while others are thoroughly controlled and better optimized. That’s exactly the control I want when programming.
--
1: https://jank-lang.org/blog/2025-01-10-i-quit-my-job/
This looks so cool!
It does look like it has some technical similarities to Julia, with the LLVM JIT and such. It'd be great to see some benchmarks.
Also see the GitHub[0], which looks like the author put a ton of work into this so far. Very impressive.
That said, looking at the progress page[1], this is still far from achieving 100% feature parity. I'll be following it closely with my fingers crossed though.
If you want to support this, it looks like the author is also accepting GitHub sponsorships[2].
[0]: https://github.com/jeaye/jank
[1]: https://jank-lang.org/progress/
[2]: https://github.com/sponsors/jeaye
Along the lines of scripting is interactive programming. I'm working on a native Clojure dialect on LLVM with C++ interop, qalled jank. It can JIT compile C++ code, can be embedded into any C++-compatible application, and is a full Clojure dialect which doesn't hid any of its C++ runtinme. So you can do inline C++, compile C++ sources alongside your jank. and require them like a normal Clojure namespace. Worth a look if you're using C++ but you're craving something more interactive. https://jank-lang.org/
>If someone could give me the ergonomics of Clojure, but without the JVM and the ability to easily target 1/ native (incl easy bidirectional C iterop), 2/ wasm, and 3/ support both in aot and runtime + JIT modes, I would switch in a heartbeat.
Might want to look at Jank (https://jank-lang.org/, https://github.com/jank-lang/jank). It's still in it's early stages but it's basically all you're hoping for!