4 ms·
> what actually keeps me from using it much is how tightly coupled it is with the JVM I'm curious: where do you actually see that coupling? I find that I bare
by jwr 10y ago
> what actually keeps me from using it much is how tightly coupled it is with the JVM
I'm curious: where do you actually see that coupling?
I find that I barely notice the JVM in practice. There is the main function, sure, but otherwise I rarely use the Java APIs myself. What I do notice is the fantastic runtime with state-of-the-art garbage collection, something I've learned to appreciated after spending years with various Common Lisp implementations.
- actuallyalys 10y agoIt's pretty noticeable in the stack traces. I'm curious how you avoid the Java APIs since Clojure uses uses parts of the Java standard library for things like strings and dates rather than implementing a Clojure wrapper. Are there good Clojure libraries to use? It's been a while since I looked.
- bpicolo 10y agoNot too hard to pull in abstraction layers: https://github.com/clj-time/clj-time https://github.com/clj-time/clj-time
- jwr 10y agoIt's true that the stack traces are horrible. As for the APIs, I almost never use anything from Java directly (well, maybe except for Thread/sleep?). I use libraries like clj-time. Mind you, I'm not actively going out of my way to avoid the Java APIs, it's just that I don't encounter them that often in practice.
- mhluongo 10y agoclojure.string also helps
- lispm 10y ago> I find that I barely notice the JVM in practice. slow startup time, difficult dumping/loading images, difficult AOT native compilation, overly complex loading of code (-> custom class loaders), no TCO, no late binding for functions, host numerics shines through, delegation of functionality to the host environment using host language constructs, no resumeable condition system, jvm stack traces, error messages displaying JVM details, ...