Live data from Hacker News

Clojure 1.10 release

clojure.org

11–20 of 97 posts

Re: Clojure 1.10 release

#11

Earlier quoted context omitted.

I was a bit sad that the changelog was so small. Then I realized that maybe core features were stable and that's it, what was needed wasn't big beside spec and a few other things.

A lot of the year's effort went into things outside core - 2 releases of spec, 2 releases of core.specs, many releases of tools.deps.alpha / clj, tools.gitlibs, new release of REBL, etc. Lots of small fixes and enhancements in core too.

blame it on rich, I'm addicted to revolutionary talks about collections that brings speed and expressiveness enhancement for free :p

Re: Clojure 1.10 release

#12
post #10
post #6

Earlier quoted context omitted.

> The language has been designed by experienced and mature people and doesn't go through "let's throw everything out and start again" phases like so many other languages do. Swift was designed by highly experienced and mature compiler devs and is notorious for making breaking changes. It's just a difference of opinion. I prefer to suffer the occasional upgrade pain in exchange for clean and consistent APIs. And I tot…

> Swift was designed by highly experienced and mature compiler devs "Compiler devs". I think that is exactly my point. I should have said "app developers" or "system designers". If you listen to a Rich Hickey talk, you'll see that he is all about Getting Things Done in the real world, and much less about theoretical concepts. Language design is subservient to app developer needs.

I would put it simply: Clojure was designed by a thinker, who creates when he is away from the keyboard, not in front of it. When one releases and breaks the code in his head first, very few breaking changes are left for the public releases.

Re: Clojure 1.10 release

#13
post #3

From the perspective of a (fairly large-scale at this point) app developer: I find it great that Clojure places such emphasis on backwards compatibility. In general, migration to newer Clojure versions is completely painless. The language has been designed by experienced and mature people and doesn't go through "let's throw everything out and start again" phases like so many other languages do.

Clojure's emphasis on backwards compatibility is commendable, but keep in mind Clojure is still a very young language ( only about 10 years old ) so there isn't much backwards compatibility to worry about.

Maybe, but this was true even when Clojure was younger still. The language changes are overwhelmingly additive; Hickey places great stock in not breaking existing code.

Re: Clojure 1.10 release

#14
The new error messages are fantastic. Clojure just went from one of the most annoying languages to debug to mid-top tier.

More complex things still present you with overly complex errors, but with some painless repl usage it's way easier to figure out things now.

Kudos.

Re: Clojure 1.10 release

#15
post #3

From the perspective of a (fairly large-scale at this point) app developer: I find it great that Clojure places such emphasis on backwards compatibility. In general, migration to newer Clojure versions is completely painless. The language has been designed by experienced and mature people and doesn't go through "let's throw everything out and start again" phases like so many other languages do.

Didn't Clojure change the + function (hardly obscure!) from automatically updating ints to bigints and therefore never overflowing to throwing an exception if you added ints that were too big?

I've got a Clojure book with a spirited defense of why it's good that the simple symbol + just does what you'd expect instead of throwing exceptions based on an implementation detail, and it kind of falls flat now.

Re: Clojure 1.10 release

#16
post #13

Earlier quoted context omitted.

Clojure's emphasis on backwards compatibility is commendable, but keep in mind Clojure is still a very young language ( only about 10 years old ) so there isn't much backwards compatibility to worry about.

Maybe, but this was true even when Clojure was younger still. The language changes are overwhelmingly additive; Hickey places great stock in not breaking existing code.

I'm going to bring up again how + used to autopromote ints if your result was out of the primitive int range, and now throws an error instead.

Re: Clojure 1.10 release

#17
post #3

From the perspective of a (fairly large-scale at this point) app developer: I find it great that Clojure places such emphasis on backwards compatibility. In general, migration to newer Clojure versions is completely painless. The language has been designed by experienced and mature people and doesn't go through "let's throw everything out and start again" phases like so many other languages do.

Didn't Clojure change the + function (hardly obscure!) from automatically updating ints to bigints and therefore never overflowing to throwing an exception if you added ints that were too big? I've got a Clojure book with a spirited defense of why it's good that the simple symbol + just does what you'd expect instead of throwing exceptions based on an implementation detail, and it kind of falls flat now.

That was over 7 years ago, so not particularly recent. And you can get the auto-promoting behavior with +' instead.

Re: Clojure 1.10 release

#18
post #13

Earlier quoted context omitted.

Maybe, but this was true even when Clojure was younger still. The language changes are overwhelmingly additive; Hickey places great stock in not breaking existing code.

I'm going to bring up again how + used to autopromote ints if your result was out of the primitive int range, and now throws an error instead.

I didn't say there were no breaking changes, just fewer than most languages.

Re: Clojure 1.10 release

#20
post #13

Earlier quoted context omitted.

Maybe, but this was true even when Clojure was younger still. The language changes are overwhelmingly additive; Hickey places great stock in not breaking existing code.

I'm going to bring up again how + used to autopromote ints if your result was out of the primitive int range, and now throws an error instead.

If you want to demand perfection, then Clojure isn't going to meet your standards (what would?).

The issue here is that, based on the way they (particularly Rich) talk, we can expect they will not do Bloody Stupid things like the old Python 2->3 changeover. Things like big, breaking changes that require architectural changes to keep current, or break all the available tutorials.

If the problem can be fixed with a macro or single function (like a change to plus behavior) it is an irritant, not a threat to productivity. That is not a concern.

Post reply on HN