Live data from Hacker News

Clojure 1.10 release

clojure.org

91–97 of 97 posts

Re: Clojure 1.10 release

#91
post #72

Earlier quoted context omitted.

Python 3, Perl 6 it looks like Scala 3 is heading that way too.

Python 3 is quite similar to Python 2. They made some breaking changes, but nowhere near like Perl 6. The real stumbling block was str vs unicode, which they didn't realize would be such a pain when making the decision. There's breaking changes and there's writing a new language. It's a spectrum.

My computer has at least three different Python versions installed. I'd say that's a pretty big backwards compatibility problem.

There is also Perl 6, and I've recently read about Go 2. Swift changes every couple of months in incompatible ways.

Re: Clojure 1.10 release

#92
post #91
post #72

Earlier quoted context omitted.

Python 3 is quite similar to Python 2. They made some breaking changes, but nowhere near like Perl 6. The real stumbling block was str vs unicode, which they didn't realize would be such a pain when making the decision. There's breaking changes and there's writing a new language. It's a spectrum.

My computer has at least three different Python versions installed. I'd say that's a pretty big backwards compatibility problem. There is also Perl 6, and I've recently read about Go 2. Swift changes every couple of months in incompatible ways.

I also have several Pythons installed. For me that's because of incompatibility between community packages I've installed, rather than differences in Python versions. Unfortunately, the various smaller communities can't always stay in sync. Right now there's a conflict between XGBoost and NumPy using MKL on MacOS. That's not a Python problem, exactly, as the issue is conflicting use of OpenMP, written in C, C++, and Fortran.

Re: Clojure 1.10 release

#93
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.

There isn't much to break anyway. Remember it's a Lisp.

Re: Clojure 1.10 release

#94
post #10

Earlier quoted context omitted.

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

The "getting things done in the real world" theme is overrated and mostly a myth. In static FP languages, the exotic features being added are almost always demanded by users in the industry. As a fun fact for Haskell, developers in academia are more likely to stick with the Haskell 98 language for stability and compatibility. As an example Simon Peyton Jones in a recent chat with Martin Odersky at Scala eXchange was…

Have you heard that Idris 2 is implementated in Scheme, and runs faster than when it was on the GHC. Check out Edwin's tweet stream, he's loving Scheme and can't stop raving about it. The idea of Idris on Scheme is so sweet and surreal it's got to be to the combo of the year.

Re: Clojure 1.10 release

#95
post #94

Earlier quoted context omitted.

The "getting things done in the real world" theme is overrated and mostly a myth. In static FP languages, the exotic features being added are almost always demanded by users in the industry. As a fun fact for Haskell, developers in academia are more likely to stick with the Haskell 98 language for stability and compatibility. As an example Simon Peyton Jones in a recent chat with Martin Odersky at Scala eXchange was…

Have you heard that Idris 2 is implementated in Scheme, and runs faster than when it was on the GHC. Check out Edwin's tweet stream, he's loving Scheme and can't stop raving about it. The idea of Idris on Scheme is so sweet and surreal it's got to be to the combo of the year.

AFAIK Idris 2 (Blodwen) as a compiler still runs on the default C-backend used by Idris 1

Re: Clojure 1.10 release

#96

Earlier quoted context omitted.

Rich Hickey is a great thinker. But he's also an application developer (Datomic). So breaking changes don't just break "other people's code" in the abstract. The pain is real and immediate. By wearing multiple hats he's finding the right balance in a way that language designers who don't code day-to-day simply can't.

The deification of Rich Hickey in this thread is amusing. No doubt he's a great developer and language designer, but dogfooding your own language is not exactly novel.

>The deification of Rich Hickey in this thread is amusing.

Hi Trevor,

funny that you should say that - I've met Rich Hickey and had some great conversations with him - and what I always tell everybody is how normal, humble, human, down-to-Earth he is. (Which is probably deifying him even more, from your point of view).

Re: Clojure 1.10 release

#97
post #72

Earlier quoted context omitted.

Python 3, Perl 6 it looks like Scala 3 is heading that way too.

Python 3 is quite similar to Python 2. They made some breaking changes, but nowhere near like Perl 6. The real stumbling block was str vs unicode, which they didn't realize would be such a pain when making the decision. There's breaking changes and there's writing a new language. It's a spectrum.

It also seems like all of the changes in Python are all changes that Perl5 has done over the years without breaking backwards compatibility. Unfortunately this does mean you often have to opt-in to the new functionality.

    use v5.24;
    use feature 'unicode_strings';
    use feature 'fc';
    use feature 'postderef';

    …
Note that the `'postderef'` feature is now always enabled so that line is pointless if you use a new enough version of Perl5. The `'unicode_strings'` also isn't always necessary.
Post reply on HN