6 ms·
There are alot of interesting points of view in that thread, unfortunately they're all from people who've spent very little time with Clojure. The biggest inno
by lbj 8y ago
There are alot of interesting points of view in that thread, unfortunately they're all from people who've spent very little time with Clojure.
The biggest innovation I think, its putting Clojure on the JVM allowing for tight host integrations. This has been my way of introducing Clojure in a number of places it wouldn't otherwise have been able to go.
In terms of writing better code, the performant immutable datastructures yield more power than I can sum up a single comment.
- jlarocco 8y agoIt's debatable how innovative that was because ABCL was running on the JVM before Clojure. Clojure was definitely marketed better, though.
- mark_l_watson 8y ago+1 for mentioning Armed Bear Common Lisp. I usually use SBCL but ABCL is great when you need Java interop (I use it with DL4J). I have used Clojure when requested by customers (about 18 months total) since its inception: I donated to Rich when he asked for community support because I liked the Common Lisp to Java bridge he wrote many years ago. Clojure is a good language that has a uniform API for anything that is a sequence and I (usually) like working with immutable data. That said, I enjoy CL and Scheme more.
- agumonkey 8y agoNot marketing, just a bunch of different core ideas, immutable/concurrent first. It was a lot more attractive than yet another CL port.
- jfoutz 8y agoThe jvm is really nice. Operationaly, it’s kind of a pain. You can upgrade the installation on bare metal, you can play the packer game and ship new vms, or you can have crazy fat docker containers. K8s can sort of deal with the vm model, but it’s beta. Go is pretty nice in this regard. I should look into racket and chicken again for static binaries. I gotta say “from scratch “ is a fun way to start a dockerfile
- slondr 8y agoIf you want to write a program in a Lisp and ship it as a compiled binary, your best bet is to use Common Lisp and compile it with SBCL. A stripped SLAD binary will be way smaller with way less overhead then running a whole host of bytecode on a VM like Racket or Clojure.
- drcode 8y agoBut few people care about overhead or executable size much anymore, outside of embedded systems. What most people care about is computational performance, and clojure performs OK by this metric (certainly SBCL can still beat it in many use cases on this metric as well, but often only by a modest margin)
- fiddlerwoaroof 8y agosbcl also has the ability to statically link all your C dependencies using CFFI’s STATIC-IMAGE-OP
- lincpa 8y agoClojure can also do it. Java Abstracted Foreign Function Layer https://github.com/jnr/jnr-ffi https://github.com/jnr/jnr-ffi
- fiddlerwoaroof 8y agoI don't think that's exactly the same: CFFI has the ability to bind C libraries with minimal boilerplate just like jnr-ffi does. But, in addition, with CFFI (and sbcl built with a particular set of flags) you can generate an CL image that only depends on GLIBC because you've statically linked all your .so dependencies into the resulting image.
- protomyth 8y agoIf you are writing software in an enterprise then Java / JVM is a well understood quantity with a whole lot of deployment options. Being something that looks exactly like every other Java program from the point of view of those deploying it is a huge win.
- varjag 8y agoThere's been a few Lisps targeting JVM since early 2000s, back when JVM arguably had a lot larger mindshare.
- pjmlp 8y agoGiven the amount of embedded devices with a JVM running on them, and the OSes that have someone selling a JVM for them, I would say the mindshare is even bigger nowadays, just not hip as it once was.
- varjag 8y agoUnless you count Dalvik, there's probably more embedded devices running Node than JVM nowadays. The share of Java related technology has definitely declined on most platforms.
- pjmlp 8y agoSIM Cards, eletricity meters, Cisco phones, Ricoh printers, factory control systems, IoT gateways, BluRay players, there are tons of invisile JVMs running on the wild.