5 ms·
Yea Clojure is like the Python of lisp style languages. Good language design and it can interact with Existing Java libraries. (Python does the same thing but w
by zitterbewegung 6y ago
Yea Clojure is like the Python of lisp style languages. Good language design and it can interact with Existing Java libraries. (Python does the same thing but with C).
- kgwgk 6y agoCommon Lisp also does the same thing with C.
- mumblemumble 6y agoAnd Hy does the same thing but with Python. I think, though, that the things that Clojure gets right go way beyond just the JVM, though. Clojure's approach to nil punning, for example, is really well thought out.
- fmakunbound 6y agonil punning?
- mumblemumble 6y agoEric Normand explains it better than I could: https://lispcast.com/nil-punning/ https://lispcast.com/nil-punning/ In a nutshell, nil punning is a thing in lisps (and some other languages) where the null value can have different meanings in different contexts. It's comparable to Python's concept of "truthiness" and "falsiness", but more so.
- fmakunbound 6y agoOh that, yeah that's what I'm used to from Common Lisp as well.
- jlarocco 6y ago"nil punning" has been a feature in Lisp since the earliest days, but as far as I know it's only called "nil punning" in the Clojure community. I don't have anything against Clojure (well, I'm a little negative on the JVM), but I personally don't see any reason to move to it from Common Lisp. On the other hand, I'd miss CLOS, and I feel like CL has a better/more consistent design. Something about Clojure always feels like they're "winging it".
- airstrike 6y ago> Python does the same thing but with C Don't think that's really accurate. You don't have to use C with Python, and there's no VM to worry about. CPython* just happens to be the most popular implementation. Clojure (by and large)* requires the whole Java infrastructure, and that is a nonstarter for many.
- jdminhbg 6y ago> Clojure requires the whole Java infrastructure, and that is a nonstarter for many. There are Clojure implementations that run on JS runtimes, the .Net CLR, the Erlang BEAM runtime, etc.
- sitkack 6y agoFor Erlang it is https://github.com/clojerl/clojerl https://github.com/clojerl/clojerl
- lvh 6y agoNit: CPython, not Cython. Cython is a whole different thing that leverages CPython to compile Python programs to C, as well as compile Cython-the-language, effectively annotated Python, to faster C. CPython comes with its own VM: are you saying the issue is "you need to install 2 things instead of 1"?
- roguas 6y agoIt requires jvm. But you don't have to interact with java, sometimes its easier to just use a particular java library, but many people report never having to touch java. JVM seems like a nice to have, a lot of the standard java tooling works for clojure as well (profilers and what not).