Hacker News new | ask | show | jobs
by owaty 2757 days ago
I think the GP has the following causal diagram in mind:

               +---------------------+
               | Author's competence |
               +-------+-----+-------+
                       |     |
                       |     |
    +--------------+   |     |   +---------+
    |Implementation| <-+     +-> |Product  |
    |  language    |             |language |
    +--------------+             +----+----+
                                      |
                                 +----v----+
                                 |Language |
                                 |quality  |
                                 +---------+

So you are both right; language quality is a function of the language itself, but if we don't yet know much about the language or its author, there is a correlation ("confounding") between language quality and the choice of the implementation language, so if that's the only information we have, might as well take advantage of it.

I am not weighing in here on what specifically the choice of Haskell, OCaml, or Go say about author's competence; I am simply addressing your point that the choice shouldn't matter at all—unless you are convinced that the knowledge of PL theory and design principles is uniformly distributed across all language communities.

2 comments

Except that Haskell and OCaml as implementation languages would signal huge academic bias and therefore likely inability to come up with a usable language or at least there exists a negative correlation with those languages.
> Haskell and OCaml as implementation languages would signal huge academic bias

Apparently reading papers from the past 30 years is a "huge academic bias."

I'd honestly be fine if it was implemented in Racket too.

> inability to come up with a usable language or at least there exists a negative correlation with those languages.

No one has ever actually offered me a substantive argument that Haskell is unusable. It always seems to be "well, I don't personally understand it, and that means it's unusable" Uhh okay.

Just as a sidenote, Rust's compiler was first implemented in OCaml after all, is Rust "academic and unusable"? ;)
I don't agree with "unusable" but "academic" probably has some justification.

The fact that it has a "let" keyword does make it "academic" to me. I'm fairly sure we can now have compilers that don't need such hints to be explicitly provided. Rust enjoys its let keyword so much they have a "If let" syntax.

Languages that use random punctuation without providing real benefit could also use a cleanup. Lua with ~= is a good example: Tilde in mathematics means "approximate". In C != means "not equal". So lua's designers can be accused of either never seeing C or deliberately choosing something different. Given that Lua is implemented in C they can't easily claim ignorance.

Archaic and awkward ways of expressing code shouldn't be propagated into new languages unless here is a clear benefit. Have a look at Erlang. Excellent overall but has lots of old warts from yesteryear you wouldn't want in a modern language. Eg look at its string syntax / naming rules. Now compare it to Elixir. Modern. Same VM.

Moving with the times is useful. Future languages shouldn't be adding debris everywhere just to be different.

“let” us a required feature of the Rust grammar; the semantics would be significantly more complex without it, making tooling harder, etc. we didn’t add it for no reason.
Complexity often masks a lack of search for simplicity. Or was "let" the simplest answer?
It's not a matter of "search for simplicity"; the grammar is just inherently ambiguous without some sort of token in this position. let was taken from OCaml, where a lot of inspiration from Rust came from.

(As a reader, it's also really nice to be able to see "there's a new variable being created here" at a glance. Ambiguity is a human problem as well as a computer problem.)

More than more languages, yes.
That worldview on OCaml and Haskell = academia only is pretty out-of-date these days...
What does GP stand for? I keep seeing it around HN. I'm assuming it's a variation of OP?