Live data from Hacker News

Clojure 1.9 is now available

blog.cognitect.com

51–60 of 121 posts

Re: Clojure 1.9 is now available

#51
post #2

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.

I think the age of convincing other people to use a language is over, you have to find that out for yourself, like I imagine many of use who love clojure have done.

Re: Clojure 1.9 is now available

#52
post #26

Earlier quoted context omitted.

Can you explain the relevance of your comment / the idea you're trying to convey?

The parent found it strange that a js cli was needed as well. I pointed at atwoodslaw as a reason why duplicate tools can be found. I must note, I like clojure for its cross vm support. One lisp to rule them all.

The new "clj" CLI tool is not a javascript tool. It is for Clojure, not Clojurescript.

Re: Clojure 1.9 is now available

#53

Earlier quoted context omitted.

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.

Leiningen has been incredibly painless: $ brew install leiningen $ lein repl That's literally all it took.

So long as you have leiningen installed.

That isn't always trivial.

Re: Clojure 1.9 is now available

#54

Yes! With this release clojure.spec is ready to go (tm). It adds a ton to Clojure(script), including better error messages (yes!), data-structure shape declarations, generation of data, writing quickcheck (generative) tests for a function by just describing the args and return values of functions, and more.

better error messages (yes!)

What are some good examples of this?

Re: Clojure 1.9 is now available

#55

Why 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.

Last time I looked into Clojure, I found myself frustrated that I was expected to install leiningen, Java, etc. and get it all working together before I could write any code.

I like to know how a toolchain works, how libraries are linked, etc. I don't want to rely on "magic" that can be incompatible with alternative "magic".

Clojure didn't provide a good low-level interface, and I ended up giving up on it for that reason alone.

Now that there are some minimal command-line tools, I think I'll give it another look.

Re: Clojure 1.9 is now available

#56

Earlier quoted context omitted.

Leiningen has been incredibly painless: $ brew install leiningen $ lein repl That's literally all it took.

So long as you have leiningen installed. That isn't always trivial.

> So long as you have leiningen installed.

I’m not sure I understood your comment. Parent’s code block has two lines: the first one installs Leiningen; the second one starts its repl.

Re: Clojure 1.9 is now available

#57
post #39

Why 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.

Because lein is bloated, breaks constantly, and is absolutely overkill if all you want is a REPL and some deps from Maven.

> Because lein is bloated, breaks constantly

Mind expanding on that? My 4-years experience using Leiningen has been great so far.

Re: Clojure 1.9 is now available

#58
post #56

Earlier quoted context omitted.

So long as you have leiningen installed. That isn't always trivial.

> So long as you have leiningen installed. I’m not sure I understood your comment. Parent’s code block has two lines: the first one installs Leiningen; the second one starts its repl.

What I meant is, so long as you have an updated version of leiningen readily available.

This is just another layer in the toolchain to contend with, and since Clojure is built on the JVM, the toolchain is already quite bloated.

Re: Clojure 1.9 is now available

#59

Why 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.

Last time I looked into Clojure, I found myself frustrated that I was expected to install leiningen, Java, etc. and get it all working together before I could write any code. I like to know how a toolchain works, how libraries are linked, etc. I don't want to rely on "magic" that can be incompatible with alternative "magic". Clojure didn't provide a good low-level interface, and I ended up giving up on it for that re…

I used Clojure before leiningen existed. It's very possible to run Clojure from the command line without it, to specify classpaths yourself, to manage dependencies by hand, even to build an executable JAR.

There's not much documentation for doing that stuff though, because (almost) nobody wants to do that. It's painful.

Re: Clojure 1.9 is now available

#60

Yes! With this release clojure.spec is ready to go (tm). It adds a ton to Clojure(script), including better error messages (yes!), data-structure shape declarations, generation of data, writing quickcheck (generative) tests for a function by just describing the args and return values of functions, and more.

better error messages (yes!) What are some good examples of this?

At the moment, most of the things that are spec'ed in the box are the gnarly macro "languages" like destructuring, defn, ns, etc. These spec'ed macros do catch a far more complete set of error messages than the macro did with custom error handling. However, those error messages are in many case more challenging to read than before. This is an area of ongoing research - the reasons for the complexity are varied. In general, specs for core functions are much simpler and provide much better errors, but we have not focused on adding those yet. This is why some of this stuff is still alpha!
Post reply on HN