other related packages: https://joker-lang.org/ https://github.com/nooga/let-go
other related packages: https://joker-lang.org/ https://github.com/nooga/let-go
But if I can rich out to Golang, why not? More Clojures is better. Imagine a single Polylith repo with blocks that talk to Node, JVM, Go, Python, etc.? Woah, that's sounds insanely cool, right?
Also, I very much don't share your opinion based on experience, unless we are talking about straight up frameworks and not libraries.
I stopped working in java so maybe I'm too bruised by the J2EE 5 era, but what I saw from Go was an order of magnitude less verbose than my memories of java.
Also, most of the verbosity of that early version was very high flexibility (everything could be replaced) plus an XML-based configuration. I wouldn't really count XML in Java's verbosity, nor do I think that comparing it to vanilla Go is meaningful.
For similarly scoped libraries Java is less verbose due to go's error handling being all over the place.
That being said you should really check out how streams, records, switch expressions, pattern matching and all of the recent additions in the last 5 years have made Java a magnitude less verbose than Go.
- a ton of java is still legacy, ask works with java 7 vs java 17 and enjoy the laugh
- I assumed java culture was still too rotten by its roots. I've used streams but whenever I have to import BiFunction I feel very sad.
on the other side, the few go code I've seen was always very concise, or even when the code base wasn't very well designed it was, at worst, still below java
You’re basing your opinion on your feelings rather than objective facts of being in the ecosystem. Yes you may have to import BiFunction but that isn’t anymore verbose than having to write:
func(a A, b B) C
[0] https://www.jetbrains.com/lp/devecosystem-2023/java/Also, Oracle employees have many statistics available, and they routinely say that Java 8 is no longer the most used version.
Please.
So the thought is more like: because Go is popular, a good Clojure implemented in Go will let me bring all the Clojure goodies to many additional projects with tight integration for little fuss— not 'finally a big ecosystem, the JVM has no software'.
Another way to think about it is that different platforms often have their own 'killer libraries'. Maybe for working with some Docker or some IaC tools, a Go-hosted Clojure would be especially convenient, for example.
A while back someone set me straight, and I no longer do that. So much better to call Java directly. Seeing the Glojure/Go interop examples reminded me of this.