6 ms·
why is everybody saying they are put off by Go? Did we pass the "trend" phase and now it's cool to say go sucks?
by jypepin 9y ago
why is everybody saying they are put off by Go? Did we pass the "trend" phase and now it's cool to say go sucks?
- kalekold 9y agolol no generics
- notamy 9y agoTongue-in-cheek answer: lol no generics :) To be serious, in my circle of developer-friends, we feel that it tries to be TOO simple, and disagree with some of the decisions of how the language works (ex. seemingly endless `if err != nil { return nil, err }` type things)
- codegladiator 9y agoI always find it a bit funny when dev's try to put a label of "too simple" on a language. How would your friends label "brainfuck" ? Too simple because it has very limited number of identifiers or Too hard because accomplishing anything is nightmare ?
- kazagistar 9y agoSimple is not the opposite of hard. The opposites are complex and easy.
- FungalRaincloud 9y agoI don't know about others, but I personally have always seen Go as an internal language for Google. This made me feel like it was appropriate for projects that I personally control, but unlikely to be useful in a career. That's really just a feeling, though, and I recognize that if everyone felt like I do, it would make Go a niche language that was actually probably pretty lucrative to know. So I wouldn't say I'm put off by it, so much as the balance of factors hasn't tipped in favor of learning it yet.
- laumars 9y agoI can't speak for your location but I've found no shortage of companies choosing Go in London; from fintec through to online games. So it's definitely not a niche language used only by Google. I can understand other people's complaints about the language though.
- FungalRaincloud 9y agoLike I said, it's the belief that it's a niche language that's kind of making it a niche language - that is, fewer people know it (because of the perceived niche-ness), but more people want it, meaning the pay is good. I'm not at all surprised to hear there are quite a few shops using it. Granted, in my area, there are exactly none, but I don't live in the best location for the use of modern tool/language/technology stacks. If I were to move an hour or two north, I'd probably find many.
- laumars 9y agoI'm not really sure what the point is you're trying to make. * Are you saying you don't use it because you consider it niche? * Or are you saying you believe people don't use it because they believe it is niche? * Or is your point that Go is niche because people consider it to be niche so it never gains critical mass? In any case, it's not niche. Period. It's being used lots by both start ups and more established businesses alike. I'm not saying it has the kind of penetration that Java or Python does, but Go is still definitely "mainstream" (for want a better description) these days.
- reitanqild 9y agoWas waiting for it to mature. Things like Generics and package managenent seems to not only be forgotten initially but actually avoided.
- pvdebbe 9y agoGo was no-go for me from the get-go (hmm I should probably get better phrases but F it). Its design goals just don't align with my preferences at all.
- twic 9y agoThe design go-als, you mean.
- macintux 9y agoFor me, other than the fact that I don't need yet another Algol reimplementation in my life, I'm also not interested in code littered with error handling. Also strongly prefer FP.
- codegladiator 9y agoI don't understand how some other language would not need to handle all the errors ? I have written code in go/java/php/python/js and error handling has been a majority chunk of lines in most if not all cases(in other cases the errors are just not handled). The best ideal case flow is always easiest to build.
- macintux 9y agoYou've not yet tried Erlang.
- Arcsech 9y agoI highly recommend that you try out a language with good support for option/maybe types: Haskell and Rust are good options here. Very often, your error handling through a chain of operations will be to use a slightly different operator (say '?.' Instead of '.') and any errors will be automatically propagated to the end of that section of code where you can handle them all in one place. Alternatively, give Erlang or Elixir a shot: their primary mode of error handling is "don't, let it crash", which is possible due to the relatively unique process model.
- raiph 9y ago> I highly recommend that you try out a language with good support for option/maybe types Right. Like Perl 6. > Very often, your error handling through a chain of operations will be to use a slightly different operator (say '?.' Instead of '.') and any errors will be automatically propagated to the end of that section of code where you can handle them all in one place. P6 does this stuff particularly well. It makes option types opt out. You have to explicitly specify the equivalents of Just or None, otherwise you're automatically dealing with an option type if you're dealing with a type. Conditional constructs are designed to work well in this context. One can use ML style pattern matching as those conditional constructs. And other styles of matching. Error exceptions are unified with error values, allowing codebase/author A to use one style, and B to use the other but pretend that A's code used B's style, and for C to use B's code in whichever style they prefer, seamlessly promoting/demoting between warnings, errors, and exceptions, including across language boundaries, as fits a use case. And so on. Perl 6 learned from Perl 5 but it also learned from Haskell and many other languages. > Alternatively, give Erlang or Elixir a shot Note that the author of the OP is well known in the Erlang community.
- pjmlp 9y agoFor me Go is only relevant to the extent I might have to deal with Docker and K8s related infrastructure code.
- symlinkk 9y agono exceptions no generics
- Thaxll 9y agoWhen a language is too popular it's being hated by HN / Reddit. If you want to stay cool you have to use a niche language.
- goatlover 9y agoIt doesn't suck, but personally I prefer languages that offer more abstractions than less, because I like writing less code. And I prefer exceptions to having to explicitly handle very potential error. Go to me feels like Java did back in the 90s (in the sense that Java only offered some of the power of a language like Smalltalk while making you jump through hoops, and thus having to write more boiler plate).