Can anyone sell me on why I should use clojure over say, any of the other nice Lisp-1s, given that I don't care about java.
Clojure 1.9 is now available
11–20 of 121 posts
Re: Clojure 1.9 is now available
#12Can anyone sell me on why I should use clojure over say, any of the other nice Lisp-1s, given that I don't care about java.
For many of us, Clojure(Script) is the right tool: a balance of performance, ecosystem interoperability, expressiveness, etc. on the platform we're targeting.
Re: Clojure 1.9 is now available
#13Can anyone sell me on why I should use clojure over say, any of the other nice Lisp-1s, given that I don't care about java.
Lots of support
Great interactive workflow (with Emacs, Intellij, or Atom)
Data oriented (Most of your code are pure functions making
simple operations on datastructures)
Re: Clojure 1.9 is now available
#14Earlier quoted context omitted.
Yes, but I'm confused. The website still says specs still in alpha so whats the deal? Is the spec api now stable?
Spec is still alpha as far as I'm aware. They decided to break spec off into it's own library because it was holding up the release of 1.9.
Re: Clojure 1.9 is now available
#15Re: Clojure 1.9 is now available
#16Why focus on command line tools? There's already Leiningen which does an amazing job, and Boot for the few use-cases Leiningen doesn't take care of. Creating another CLI seems very strange.
Re: Clojure 1.9 is now available
#17Can anyone sell me on why I should use clojure over say, any of the other nice Lisp-1s, given that I don't care about java.
Do you want to be sold on it? Is that what you want your interactions on this site to be?
Re: Clojure 1.9 is now available
#18Why focus on command line tools? There's already Leiningen which does an amazing job, and Boot for the few use-cases Leiningen doesn't take care of. Creating another CLI seems very strange.
Well, for the first time since the langauge was created you can now do `brew install clojure`, and then `clj` on the commandline and get a repl. I would have loved something that painless when I was learning Clojure.
Re: Clojure 1.9 is now available
#19Why focus on command line tools? There's already Leiningen which does an amazing job, and Boot for the few use-cases Leiningen doesn't take care of. Creating another CLI seems very strange.
Well, for the first time since the langauge was created you can now do `brew install clojure`, and then `clj` on the commandline and get a repl. I would have loved something that painless when I was learning Clojure.
$ brew install leiningen
$ lein repl
That's literally all it took.Re: Clojure 1.9 is now available
#20Can anyone sell me on why I should use clojure over say, any of the other nice Lisp-1s, given that I don't care about java.
In my opinion, this turns out to be a pretty major win. Code is still data, it's just that this data is a mix of lists, vectors, and maps, and now you can type associative data structures into your code as easily as you can lists. Hash tables in vanilla Common Lisp are a nightmare (there is a nice library that at least gives a Clojure-y initialization option via Reader macro), and a glance at the Racket documentation suggests the story there is probably not much better.
Clojure code in the wild uses the destructuring on maps a lot like, e.g. Haskell code uses pattern matching, and Spec is an interesting core library aimed at allowing libraries to insist that keys be present in maps and so on.
Anyway, I had occasion to interact with some Common Lisp code I'd written several years ago, and I was struck by how annoyed I was at it for not being Clojure. Part of that is the Lisp-2 issue, but I also really missed how lightweight and easy Clojure maps are, and how easy they are to use for control flow. (I will say that Clojure's clunky recursion annoys me, but much less than trying to deal with Hash Tables in CL)
Also, and I know you say you don't care about Java, but ... sometimes you have to interact with some annoying outside system (like, a database or a web browser), and there is a high-quality Java(Script) library that makes this task trivial and lets you work on what you want!