1. 23
  1.  

  2. 10

    I like the intention of this article, though I feel like Elm and Purescript are more children of Haskell than Julia. The Julia language feels like it was more influenced by Matlab, Common Lisp, and Python.

    1. 2

      Julia didn’t go public until 2012, which is also the year when Elm was “released” as Evan Czaplicki’s thesis project. Elm is implemented in Haskell and the design documents refer to Haskell in many places; I’ve never seen a mention of Julia there. Julia doesn’t even have Hindley-Milner type inference! I’m not as familiar with Purescript, but just from the surface syntax and typing discipline it obviously owes more to Haskell than anything else.

      Edit: waitaminute, neither “Elm” nor “Purescript” even occur in this article! What the heck are you responding to?

      1. 8

        I read “I feel like Elm and Purescript are more children of Haskell than Julia” to mean “I feel it’s more fair to call Elm and PureScript children of Haskell than it is to call Julia a child of Haskell,” which I’d agree with.

        Separately, I would definitely say Rust is descended from OCaml, not Haskell. Before it was self-hosted, Rust’s original compiler was written in OCaml, and there are a bunch of direct OCaml influences in the language (e.g. the name Result, which OCaml uses, where Haskell uses the name Either). Both OCaml and Haskell are descended from ML, but I wouldn’t say Rust has any direct Haskell ancestry other than similarities between its trait system and Haskell’s typeclass system.

        Idris is clearly descended from Haskell, so that part of the original article I’d agree with.

        1. 2

          Separately, I would definitely say Rust is descended from OCaml, not Haskell.

          linear ML in C++ clothing, according to the original author of the language.

          1. 1

            Sounds catchy but misses how traits are basically typeclasses.

            1. 3

              curt reply: it also misses how || x syntax was borrowed from ruby.

              longer reply: Rust has many features from many different languages, some langs contributed more (ML & C++), some less (Haskell & Ruby). It’s true that typeclasses are pretty close to traits, but:

              • exhaustive matching by default
              • match keyword
              • 'a syntax for generics
              • cute/weird rule about semicolons
              • general vibe of strict functional language without HKT which compiles to efficient code

              all associate with ML linage.

          2. 1

            Oh, gotcha, that makes way more sense than my parse. Seems like the author acknowledges that he’s being a bit idiosyncratic and narrow:

            I count Julia as a child of Haskell (or maybe, I count Catlab.jl as a child of Haskell) because the idea of organizing computation with category theory would not exist in the same way if it weren’t for Haskell.

            What do you think of the Eq/Ord traits in Rust? Do they owe anything to the analogous Haskell classes? I don’t know much about Rust, but that was always one of my least favorite parts of Haskell.

            1. 3

              What do you think of the Eq/Ord traits in Rust? Do they owe anything to the analogous Haskell classes?

              Hard to say - the term Ord appears in OCaml but OCaml doesn’t have anything like Eq.

              So Eq may have come from Haskell, but then again, Eq is also among the obvious name choices for something like that!

            2. 1

              Yep that’s what I meant. I should state that Graydon Hoare has deep experience with so many languages that I don’t want to discount Haskell just yet but agree the Ocaml seems to have had a slightly stronger influence.

        2. 4

          Sum types really are lifechanging. It’s great to see them in more languages, and I hope to see them pervasive.

          1. 1

            Stephen Diehl, one of my main Haskell idols, is distancing himself from the Haskell community because of Haskell’s use as intellectual eye-candy on scam cryptocurrencies

            I remember that post. I didn’t think about the Rust comparisons back then, but now I find it interesting that

            • one of the prominent early-ish projects written in Rust is a creeptocurrency client too;
            • Rust managed to avoid that association because it’s much more strongly associated with our favorite browser vendor/community, and then various CDN and “cloud” companies, even Microsoft, and so on;
            • Haskell is probably still actually much more strongly associated with academic research than scamcoins;
            • Haskell did get that association in our minds.

            Was there some event that made it so? (Wasn’t one of the prominent GHC gurus hired by a coin startup?)

            1. 2

              Phil Wadler is a “research fellow” at Cardano/IOHK and so regularly shills for them https://iohk.io/en/team/philip-wadler