7 ms·
I don't think anything in the 'The Bad' is unfair, and they're certainly not written from a position of ignorance. Those are things that suck about go; it's no
by shadowmint 10y ago
I don't think anything in the 'The Bad' is unfair, and they're certainly not written from a position of ignorance.
Those are things that suck about go; it's not specifically that they suck about go when compared to haskell; they just generally suck (particularly the type system stuff).
However, I don't think that the situation is so bad I would go as far as to say, "Other than that, I will probably never choose to use Go for anything ever again..."
I maintain that while go might not give smart programmers the flexibility to express their FP dreams, it has a grungy practicality both for developing and maintaining code that is quite effective.
Introducing go and building applications with it in a team is easy because its quick to pick up for the whole team, regardless of background, its simple to use and its (relatively) difficult to shoot yourself in the foot in terms of distributing binaries or developing applications that run at modest scale.
When gogland (the IDE by jetbrains) comes out of EAP, it'll even have a modestly good professional IDE with integrated debugger (no atom, you don't count when your debugger never works on any platform).
...but hey, if you don't like it, don't use it.
Haskell is pretty great too.
- pjmlp 10y agoThe thing with Go, is that it is disappointing what Google is capable of in terms of language design versus what Apple and Microsoft have done in this field. Sure there were languages with such type systems before, and we managed to deliver our work with them. However I don't want to work in 2017 as I used to work in the mid-90's, when templates were an experimental feature in C++, or the only MLs we knew were Caml Light, Miranda and SML. The world has moved on.
- dualogy 10y ago> is that it is disappointing what Google is capable of Man, how long will this meme survive? Go only initially originated with some Google developers, it's not in any way "Google's answer to Apple's and Microsoft's strategically-important and accordingly-subsidized-and-evangelized-and-invested-in languages". Just picture a handful of (previously "accomplished" in the field, as it turns out though) guys thinking "this company has a wide mess of Python etc scripts that should really be C programs, except for the problems this would pose"..
- pjmlp 10y agoThose developers are being paid by Google and their actions within this context relate to the public image of their employer. If Google wouldn't agree with their actions, or did not pay to increase the team size, they would be developing the language outside Google walls.
- geodel 10y agoYou may disagree but Google relationship with Go looks lot more distant as compared to C#-MS, Java-Oracle, Swift-Apple. Here Dart-Google looks more appropriate. Those Dart people always keep telling us about Adword's usage of it. Google organizes Dart's conferences whereas for GopherCon doesn't even have Google as sponsor. Go looks far more independent from Google in branding, sponsorship and references from official Google products.
- gbersac 10y agoThat being said Go is one of the four recomended language in google : java, c++, python and go.
- kuschku 10y agoEspecially because Go is in most ways less powerful than Java – a native compiler for Java would have been more useful than this.
- bborud 10y agoWhat do you mean by "powerful"? How is a language powerful? Or not?
- kuschku 10y agoI mean that you will need to write more, and more duplicate code, to express the same, it’ll be less clear, and less safe. Generics, and annotation processing with code generation integrated in the compiler, are two example features supported by Java that improve this. Haskell obviously is a lot better even. Additionally, it’s also a question if, in the language, any state of the program is immediately obvious from the code – or if the syntax hides things (such as Go’s multi-return errors vs. Java’s exceptions, although Java could use an "ignore" keyword to ignore any error happening in a block or statement) A powerful static type system can express everything a dynamic type system can, and more. (That’s why I tend to err towards static typing)
- amelius 10y ago> Generics, and annotation processing with code generation integrated in the compiler, are two example features supported by Java that improve this. I think it is fair to point out that generics were not part of the first Java spec. They were added in version 5, see [1]. [1] https://en.wikipedia.org/wiki/Generics_in_Java https://en.wikipedia.org/wiki/Generics_in_Java
- kuschku 10y agoOf course not. Early Java was comparable to today’s Go in many ways, and Generics is part of that.
- cube2222 10y ago