8 votes

The perfect language (and why Go still isn't it)

7 comments

  1. [7]
    ainar-g
    Link
    (Disclaimer: I am a Go programmer, and I am pretty passionate about Go.) Pepperoni pizza is a nice snack, and vanilla ice-cream is a good dessert, but a pepperoni and vanilla ice-cream pizza is...

    (Disclaimer: I am a Go programmer, and I am pretty passionate about Go.)

    (…) While it pretends to selectively allow new features into the language and practice good taste by not bolting on every new idea in computer science, it leads to a language that has intentionally stuck its head in the sand with regards to ideas that have proven themselves useful elsewhere.

    Pepperoni pizza is a nice snack, and vanilla ice-cream is a good dessert, but a pepperoni and vanilla ice-cream pizza is not something that is both a good snack and a nice dessert. It would probably be neither.

    If you have two features which solve two different problems but which overlap in confusing ways, what do you do? Add one, and now the people with the “unsolved” problem complain. Add neither, and you've made your language's abstractions much poorer. Add both, and now you have confusing edge cases and possible foot-guns.

    It's all compromises, gosh darn compromises all the way down.

    10 votes
    1. [6]
      Eva
      Link Parent
      I mean yeah, that's a really bizarre criticism, isn't it? Like, they're considering adding generics to the language; that's obviously a mistake, and at the very least disqualifies the "pretends to...

      I mean yeah, that's a really bizarre criticism, isn't it? Like, they're considering adding generics to the language; that's obviously a mistake, and at the very least disqualifies the "pretends to [...] practice good taste" bit.

      1 vote
      1. [2]
        imperialismus
        Link Parent
        Are you saying that generics are a mistake? That’s a highly reactive and honestly foolish opinion. You don’t want Canadian Aboriginal Syllabics, you want actual reusable code without silly hacks.

        Are you saying that generics are a mistake? That’s a highly reactive and honestly foolish opinion. You don’t want Canadian Aboriginal Syllabics, you want actual reusable code without silly hacks.

        5 votes
        1. Eva
          Link Parent
          It's neither reactive nor foolish (hell, one of the best developers of today's written an entire essay on why it's a poor idea for Go). I disagree with Drew on quite a bit, but he makes a sound...

          It's neither reactive nor foolish (hell, one of the best developers of today's written an entire essay on why it's a poor idea for Go). I disagree with Drew on quite a bit, but he makes a sound point there.

          I'm not against reusable code at all (my favourite language is Forth, no sort of claim can be made about me to that end)—I'm against generics in Go, which are a mistake.

          1 vote
      2. [3]
        ainar-g
        Link Parent
        It's probably because it's 00:20 here in Moscow, but I couldn't quite parse your comment. Are you calling my comment a “bizarre criticism” or the original quote from the article? Is the last...

        It's probably because it's 00:20 here in Moscow, but I couldn't quite parse your comment. Are you calling my comment a “bizarre criticism” or the original quote from the article? Is the last sentence supposed to be sarcastic? I apologise if I'm missing something obvious.

        4 votes
        1. Mulligan
          Link Parent
          Eva is agreeing with you.

          Eva is agreeing with you.

          2 votes
        2. Eva
          Link Parent
          @Mulligan is right! No sarcasm, though.

          @Mulligan is right! No sarcasm, though.

          2 votes