4 ms·
Well, if we're going to venture that far into excuse land Common Lisp has access to every C library in the world through CFFI. Look, I love Lisp, but reality i
by codr7 5y ago
Well, if we're going to venture that far into excuse land Common Lisp has access to every C library in the world through CFFI.
Look, I love Lisp, but reality isn't going anywhere.
- mbil 5y agoI haven't used CL so I can't comment on the differences between CL's C interop and Clojure's Java interop. But when I worked at a Clojure shop, "finding solid libraries" was never an issue, because we used Java libraries directly. And we usually preferred to use a Java library even when third-party Clojure wrapper libraries existed. Using Java from Clojure is natural and idiomatic.
- spicybright 5y agoWhat's the excuse GP is making exactly?
- throw10920 5y agoThis is a variant of the "Turing tarpit" fallacy - that is, saying that all things that are technically possible are equivalent. Calling Java code in Clojure is completely seamless[1] - there's a world of difference from the CL FFI (which isn't that bad to use), which is turn easier to use than the CPython FFI. You might as well say that C is just as powerful as Common Lisp, because you can implement Common Lisp in it. Ergonomics matter. The point of a library is that you're supposed to be able to use its interface without worrying about the code underneath - so, Clojure does have access to the entire Java ecosystem. My comment about lack of libraries was mostly referring to non-Clojures - CL in particular, but my argument also applies to Scheme and Racket and others. [1] http://xahlee.info/clojure/clojure_calling_java.html http://xahlee.info/clojure/clojure_calling_java.html
- codr7 5y agoI certainly don't recall it as being seamless; Clojure is a very different language from Java, and the interop code I've seen doesn't look like the kind of Clojure anyone would write otherwise, hence the comparison to CFFI which has the same impedance issues. But it's all JVM bytecode, so ofcourse it's going to be somewhat smoother.