←back to thread

188 points refset | 10 comments | | HN request time: 0.41s | source | bottom
Show context
masijo ◴[] No.41865268[source]
Incredible work. A native Clojure would be a dream come true!

Wish jank the best of lucks. Hope I can contribute soon.

replies(1): >>41869688 #
1. systems ◴[] No.41869688[source]
From their website, Jank is a dialect of clojure, and strongly compatible, I am not 100% sure what this means, but to me at least, it means it is not clojure and it is not native coljure

That being said, what would be the benefits of a native clojure, you have common-lips and guile if you want native

But again, Jank is not clojure .. just clojure-like, or so it seem

replies(3): >>41870009 #>>41870821 #>>41872076 #
2. refset ◴[] No.41870009[source]
Clojure is language that was designed to be 'hosted' on many different underlying language runtimes, not just the JVM/Java. If Jank can implement clojure.core correctly (pass the tests!) and handle .cljc files then it counts as Clojure in the eyes of the community. See also ClojureScript, ClojureDart, ClojureCLR, SCI, Cherry, Electric, Rama etc.
replies(1): >>41877437 #
3. eduction ◴[] No.41870821[source]
refset is right, if this implements clojure.core it will be seen as a "real" clojure in the community, ala ClojureScript.

People use the Clojure that is the right fit for the environment they need to operate in, so arguments about authenticity don't tend to come up. Clojure has always been positioned as a pragmatic Lisp and the situation very much reflects that.

The OG Clojure is the one for the JVM and for some people this will always be the only "real" one in some sense, because JVM interop is a huge deal - it gets you access to tons of high-performance Java libraries. If you're writing server-side Clojure that's hard to beat.

But the other clojures have strengths in their niches. If you're writing for the browser, JVM interop doesn't buy you anything but JS interop does, hence ClojureScript. If you're doing a lot of shell scripting you'll probably want babashka for fast startup times. If you're doing mobile+desktop GUI development with Flutter you'll use ClojureDart (if you use Clojure at all).

Jank is aiming for C++ and I'll be curious if there is an interop story there. But again if you're looking to interop with an existing C++ code base it's sort of academic to ask whether Jank is "real" clojure or not.

4. Jeaye ◴[] No.41872076[source]
> But again, Jank is not clojure .. just clojure-like, or so it seem

jank is Clojure. If it works on Clojure JVM and it works on ClojureScript, it should generally work on jank. Clojure doesn't have a language specification, but the community knows what a proper Clojure should feel like. Strong Clojure compatibility means anything outside of interop should just work. Naturally, interop on Clojure is very host-specific; Clojure JVM does one thing, ClojureScript does another, Clojure CLR does a third thing.

> That being said, what would be the benefits of a native clojure, you have common-lips and guile if you want native

At this point, we'd be discussing the benefits of Clojure over CL and Guile, which ends up being a different discussion. jank is for Clojure devs who want a native host and good native interop. It's also for native devs who want to introduce interactive programming and FP into their systems.

replies(2): >>41872459 #>>41891930 #
5. dustingetz ◴[] No.41872459[source]
can you use jank in .cljc files and portable code regions just work? platform specific interop guarded of course?
replies(1): >>41873009 #
6. Jeaye ◴[] No.41873009{3}[source]
Yes! jank has its own :jank reader conditional which you can use.
7. refset ◴[] No.41877437[source]
** Clojure is _a_ language [...]

(apologies!)

8. Folcon ◴[] No.41891930[source]
How complete is it?

I looked at github and came away with the impression it's very much still a work in progress, but you seem to imply it's closer to being complete?

Does nrepl work well? Can I just load a relatively arbitrary cljc file?

This discussion made me check it out as I'd like to use it in conjunction with some C++ files/libs, but looking at the project left me really quite unsure as to it's current state.

replies(1): >>41892646 #
9. Jeaye ◴[] No.41892646{3}[source]
jank is still under heavy development. It is not released yet. A lot of features are working, or complete, but the language is at least several months out from being alpha released.

The majority of this is captured here: https://jank-lang.org/progress/

replies(1): >>41894487 #
10. Folcon ◴[] No.41894487{4}[source]
Thanks for the clarification, I'm looking forward to it's eventual release! =)