top | item 47148329

(no title)

zombot | 6 days ago

I haven't tried it, but the description sounds delightfully perverse. And an LLM (Claude) cannot be embarrassed by perverting Lisp/Scheme with Java.

discuss

order

brazzy|5 days ago

JVM, not Java. And there's Clojure already in that space.

Per_Bothner|4 days ago

Kawa predates Clojure by a decade. (Kawa work started 1996; Clojure's initial release was 2007.) Also, Clojure isn't really focused on high performance, while that has always been a priority for Kawa, which generates bytecode similar to Java, especially if you include suitable type annotations. (It is likely Clojure have have improved in this respect - they have a lot more people working on it.)

zombot|4 days ago

Agreed, "Java" was an oversimplification. It's actually JVM bytecode. It's still strange in my book to use an object soup runtime for something (Lisp/Scheme) that feels closer to functional languages to me.

Clojure is a different case, because when you already are on the JVM anyway, then Clojure is still infinitely better than no Lisp at all. It's not the same as putting the JVM somewhere where it wasn't before and where it's not actually needed.

pjmlp|6 days ago

Why should it?

"We were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." -- Guy Steele

anthk|5 days ago

RMS itself being a diehard Scheme and Elisp user said that he found Java elegant over C. This was OFC long before Go and when C++ was king in the 90's.

On Java itself, when CLOS, a dog-ancient system for Common Lisp it's enough to support the Java class/method/object system by itself tells a lot on how great CL can be, even with SBCL which is the top tier free (as in freedom) interpreter/compiler out there.

On performance, well, who knows; remember that PyPy itself back in the day was written in Python itself and it ran things much faster than the vanilla Python interpreter.

anthk|5 days ago

The Computer Abstractions book/course for Scheme had some kind of VM written in Java where you had to write an assembler in Scheme as the final 'biggie' project.