5 ms·
A great quote from the introduction, on why Rich took a sabbatical to work on Clojure: ...to give myself the opportunity to work on whatever I found interestin
by adamkl 6y ago
A great quote from the introduction, on why Rich took a sabbatical to work on Clojure:
...to give myself the opportunity to work on whatever I found interesting, without regard to outcome, commercial viability or the opinions of others. One might say these are prerequisites for working on Lisps or functional languages.
- omginternets 6y agoA similar point was raised in his Hammock-Driven Development talk. It inspired me to follow suit during this COVID19 lockdown. I've never been more intellectually fulfilled, nor happier.
- microcolonel 6y agoThe results are also astounding, because what he came back with produced extreme commercial viability, and is excellent in the opinions of others. Having used Clojure professionally for a couple years now, I feel so blessed. It is really well cut out for a whole host of problems that are common but extremely labour-intensive in conventional languages. Maybe one of these days I'll get time for my own sabbatical, and solve the two major tasks I see with Clojure: taking the performance from good to excellent; and hosting it in a robust systems language suitable for implementing well-trodden functions.
- adamkl 6y ago"hosting it in a robust systems language suitable for implementing well-trodden functions" Maybe take a look at Joker [0] to start. A Clojure interpreter written in Go. [0] https://github.com/candid82/joker https://github.com/candid82/joker
- jonahbenton 6y agoYeah, share both common concerns, centering around the JVM (which I love, and have used and studied since it launched, but it is baggage). There have been a number of attempts to build Clojure on top of Go (I worked on one), and another on top of Rust. Both lack the dynamic runtime ergonomics that Clojure leverages. Clojure is also seeing significant performance benefits, both runtime and startup, from the Graalvm, but that also will have limitations. I am wondering about D, which should be sufficiently low level from a systems perspective but may also have sufficient dynamic capabilities.
- omginternets 6y ago>There have been a number of attempts to build Clojure on top of Go (I worked on one) Do you have a link? The only one I'm aware of is https://github.com/candid82/joker https://github.com/candid82/joker. Believe it or not, this is relevant to an ongoing sabbatical project of my own. I'm grossly unfamiliar with Java, so it's often hard to read through the Clojure implementation :/
- jonahbenton 6y agoI worked on one privately back around 2014, then later picked up on some of this work: https://github.com/venantius/glojure https://github.com/venantius/glojure, done by a friend of a friend. Neither one got anywhere useful. I more became convinced that to get to a useful place it would be necessary to generate (and compile) code and although Go has some of that tooling, I did not have the appetite to build with it. The Java implementation implementation is hard to read even for Java folks, it is more of how a C++ programmer would write Java, both in terms of syntax, and semantics.
- omginternets 6y agoCheers! I’ll definitely give this a read-through.
- james-mcelwain 6y agoI'd love to use a light-weight Clojure hosted on Go, etc., but also wonder whether performance improvements to the JVM will solve many of these issues without requiring a full rewrite. Many of the issues Clojure has with the JVM are shared by regular Java apps, so I think there is motivation to improve many of these areas over time, even if it takes a bit.
- omginternets 6y ago>I'd love to use a light-weight Clojure hosted on Go, etc. You may find this interesting: https://github.com/spy16/sabre https://github.com/spy16/sabre It's still pretty green, but it might float your boat.
- SeeTheTruth 6y agoFor working on the languages themselves for sure. But thankfully working with functional languages helps with outcomes and commercial viability. If only languages like Clojure, F#, OCaml, Kotlin, and many more enjoyed more popularity and support.