1. 32

This blog post is pretty sarcastic, which is probably why HN flagkilled it within minutes, but it captures some of what I dislike in the Go programming language.

  1.  

  2. 28

    I found the tone overly sarcastic, and the article seems to impute a degree of arrogance and condescension to the go authors that I see no evidence for.

    At this point, go’s shortcomings/differences-from-haskell are well-known. I don’t know why people keep writing articles about them.

    1. 8

      Expression is proportional to sensation, not novelty. Yes, there is obviously a feedback loop that causes desensitization of some non-novel repeated stimuli, but the mechanism is not so straightforward. Your 50th raspberry may not strike you as overwhelmingly delicious as the first handful. Sometimes, the mechanism works in reverse, and repeated stimuli result in amplified sensation. Your neighbor’s wall-piercing voice may not induce rage the first time it is encountered when you are relaxing in your home, but over time your sensitivity to it may indeed reach that point.

      These qualia of the Go experience are quite diverse. They result from real experiences. The expression of them is as necessary as any other. We should try to imagine how such sensations may come about in the first place. If we don’t think that such sensations should be experienced by others, we are obligated to act in a way that influences the triggering factors. If you have a problem with something, it’s YOUR problem to solve.

    2. 21

      The paragraph in the edit precisely captures my sentiment:

      I view Go as a huge wasted opportunity. How often does a new semi-successful language backed by a successful company appear? Google squandered it through something which looks very much like arrogance.

      1. 6

        This is the part of the essay that made me laugh out loud. Why should Google care that anyone thinks they squandered an opportunity? It’s their time and resources and they are free to waste them however they like.

        People who take issue with this seem to be implying that something terrible has happened because some people at Google didn’t agree with a particular definition of “good”. As if all those smart people wasting their energy on creating Go should be better directed creating something they don’t personally love but would be more pleasing to the writer.

        The existence of one language does not harm or hinder any others, so I really do have to laugh when people shake their heads at the terrible waste.

        1. [Comment removed by author]

          1. 3

            seriously, who cares how much time has been spent wrapping libraries? If people don’t want to spend that time then they won’t. There’s a strange puritan streak about this train of thought: as if it’s everyone’s moral imperative not to spend their time on anything that isn’t on the approved list.

            And languages do exist independently of one another, vacuums even. There are plenty of languages that have only a few adherents, languages that I wouldn’t touch with a barge pole. But good luck to them and all of you who spend your time with them. I salute your diversity.

            1. 6

              TBH what I really care about is the job opportunities. There’s a pretty small number of companies willing to try new languages, and those that are are usually only willing to try one or two at a time (which is eminently sensible on all counts). If one of those very valuable job-with-a-cool-new-language slots goes to Go, that’s one that’s not available for a language I’d want to work in (Scala or, dare I dream, Idris?)

              (I should probably start my own company with blackjack and hookers, I know, but I like that bit of stability that comes from working with ~50 other people).

              1. 1

                {companies who would evaluate Go} \cap {companies who would evaluate Scala, let alone Idris} = {}

                I tried to structure that in English for about ten minutes and just couldn’t make it work. More espresso needed!

                That’s not a value judgement on either set of languages, by the way.

                1. 6

                  Simply not true. I’ve worked in two such companies and am aware of others.

                  1. 1

                    Fascinating. I’ve never worked in a company in my career that would evaluate both Go and Idris.

                    Maybe working in big companies has colored my view too much, but I’m used to languages matching the company matching the developer: a company that makes conservative choices on languages isn’t going to be investigating a pure-functional language with dependent types, if for no other reason than the people that work there aren’t going to be comfortable with it. And a company willing to investigate Idris has already pulled in developers uninterested in a language like Go.

                    1. 2

                      The kind of company that would try either is the kind of company that accepts suggestions from low-level developers (I don’t think either has the marketing clout to be imposed by management). Such places tend to have a reasonably broad spread of developers of different views. This may be my small-company experience but there tends to be quite a variety of different requirements/workloads for different components that attract different development styles, even within the same company,

                      1. 1

                        Thanks for this. I’m glad to have my positions challenged. It’s easy to get stuck in my bubble and generalize outward.

                        I’m definitely going to have to look smaller for my next company!

      2. 11

        It’s annoying what Go doesn’t have (and what you have to do because of that), but considering it killed any argument about indentation and syntax and the compiler takes next to nothing to compile (pretty important for me since I work on many different OSs and some of them *cough*Solaris*cough* don’t have good repos) it’s something that I started to appreciate lately..

        1. 7

          maybe a satire tag

          1. 5

            This is my favourite:

            Why should the compiler go to all the trouble of validating an interface implementation when you, the programmer, can do it manually? Compiler time is expensive if you are solving big problems.

            There is a lot to like in Go: Channels, tuple returns, fast compile times, garbage collection for example. But there’s also a lot of terrible, and the absolute ubiquity of the empty interface should speak for itself about the need for generics.

            1. 14

              I particularly disagree with that section on interfaces. If you force a type to declare it implements an interface, it makes it more difficult to reuse a 3rd party package. By having implicit implementation of an interface, which the compiler figures out for you or prints an error when you try to use it as an interface you haven’t really supported, you don’t have to alter the code of that 3rd party package. It’s a feature and one that’s been cited repeatedly for its utility. The compiler does validate whether a type properly implements an interface. Empty interfaces should be used with discretion. Yeah, it would be nice to have generics, but Go does allow code generation.

              1. 2

                Code generation is a shockingly useful tool. Google uses it extensively, so I’m not surprised in the slightest that Go doesn’t have generics.

                1. 0

                  Who said anything about forcing a type to declare it implements an interface? This is a completely false dichotomy. There’s no reason you can’t allow implicit and explicit interfaces.

                  All languages “allow” code generation, so I don’t see why that is at all related to whether or not generics are a good thing.

              2. 5

                This is not a style of discourse to encourage in our community. The HN mods flagkilled it. I’m disappointed the mods here and on reddit Programming didn’t also.

                1. 14

                  I don’t care for the tone of the post, but I am pleased with the tone of discussion in this thread. One of the reasons I enjoy Lobsters is for the communities ability to discuss hard topics like adults. But I think, and you will probably agree, that we don’t want to get too mired in this kind of post, least it bring the whole of the community down.

                  1. 1

                    I agree!

                  2. 9

                    Some people come here to escape HN’s brutal moderation.

                    1. 7

                      I was one of two people that hid it. There have been 25 upvotes, and only four people that flagged it. As a moderator, it seems to be the style of discourse that people have decided is worthwhile (though I disagree, and hid it based solely on the title).

                      1. 2

                        I thought about flagging it but didn’t really think that the flags fit. I forgot you could even hide it, or I would have.

                        1. 1

                          Thanks for the explanation. Supermighty’s reply below is good too.

                        2. 1

                          I’m glad that the censors here appreciate freedom more than others. If I really can’t handle sarcasm in technical articles, I will have to put on pink glasses myself instead of relying on others to paint the world pink for me. And I’m OK with that.

                        3. 4

                          Interesting approach in this article… I see what was done there. Though I still like Go and think it has a lot of potential. If it sticks to the tenets for which it was designed it’s going to mature into a very powerful tool.

                          1. 3

                            This got [flagkilled] on HN :D

                            1. 8

                              To be fair, the article doesn’t bring anything new over all the “go sucks” articles out there, except perhaps the sarcastic tone.

                              1. 1

                                Unless you’re writing Go for a living, it will make you smile. That’s original enough to warrant sharing the blog post.