Readit News logoReadit News
AlchemistCamp · 5 years ago
The most surprising part to me was that go devs are feeling less and less welcome in "the community" and less and less welcome to contribute.

I wonder why that is.

epage · 5 years ago
As an outsider, my guess is not "bad contributors" or "diversity" like sibling posters but an increasing perception that Go is a Google language and not a community language with how events have played out in scenarios like the package management work where a replacement for what the community was doing came seemingly out of nowhere despite the community trying to work with the core team

Note: I could have facts wrong but this is the general impression left which is just as important for respondents on this survey item.

jidiculous · 5 years ago
It is 100% a Google language. Step 0 of their contributor guidelines is to use a Google product (ie a Google account) for authorship of your commits[1]. It's insane to me that this is required for contribution to the language's development.

[1]: https://golang.org/doc/contribute#google_account

tick_tock_tick · 5 years ago
Google and the core Golang team are getting increasing political and allowing it to leak into the language / infrastructure of the language such a running banner ads for political causes on the main the docs site, https://golang.org/doc. It's not surprising that this makes people feel less welcome.
covermydonkey · 5 years ago
A big part of why I felt unwelcome was their unwavering commitment to American political activism. I don't live there. Why do I need to hear about some countries politics in my favorite programming language.
c0bruhh · 5 years ago
If a few-pixel-high banner at the top of the documentation website is ALL it takes for you to get turned off from programming, maybe this isn't for you? Everything in the world is political. If you can't handle that, maybe you need to fix some other issues before tackling programming.
domano · 5 years ago
I don't see any banner
pstuart · 5 years ago
I can only imagine one group of people who would feel less welcome by that banner.

I'd be happy to expand upon that if you would like.

taklimakan · 5 years ago
This is probably a rhetorical question, anyway if the feeling of being less welcomed comes from how likely the devs are to accept random or poorly thought-out proposals, I don’t think there’s any problem at all. I say, do not welcome them! The core Go team is made of extremely competent and professional engineers, and I expect successful language change proposals or pull requests to be on par with that. Otherwise what are we even talking about?
rhabarba · 5 years ago
I’d wish more technical projects would focus on competent and professional engineers again. Instead, we see calls for more diversity everywhere, including this very survey. I wonder what would be the advantage of having people from different ethnical backgrounds over having people from different tech backgrounds...
lhorie · 5 years ago
Here's a different (and potentially offensive, please put away the pitchforks) perspective. Recently at work, I was prompted by a coworker to look at a code review page for some go code they wrote. I don't normally review go code at work, so something that struck me was that the code review comments left by a go developer seemed quite a bit more nitpicky than code reviews I'm used to seeing as a non-go developer working with non-go languages. A lot of it was minor stuff like styleguide line items (isn't that sort of stuff what go fmt and go vet are for?)

Golang is an extremely simple language (a good thing, IMHO!), but that means two things:

1) a simple language may lack safety features (e.g. anyone can ignore an err or forget to check for nil pointers), which lead to the need to compensate in other ways, which leads to:

2) the bikeshedding bar is very low in simple languages, and it can lead to institutionalizing opinions in the form of styleguide gospels or other types of "improvements" (think overuse of patterns in Java, another relatively simple language), to the point where the institutional rules put off newcomers who were expecting a breath of fresh air but instead find an "old boys club" (in the sense that they don't feel they have leverage to discuss whatever rules have been set).

I also see this phenomenon in other areas, for example, in Javascript, eslint/prettier are supposed to curb bikeshedding, yet there's an awkward dynamic when a new employee wants a new rule, and what follows is 2 hours of bikeshedding with the old guard.

axaxs · 5 years ago
For me at least, it's because the size of both the community and the official team expanded hugely in the last few years. I don't feel like they need or want outside help anymore.
archsurface · 5 years ago
Strangely, sometime last year I commented on HN about a contribution fiasco, and a bunch of "community" jumped on me, downvoted every response to their refusals to believe it. I've mostly abandoned Go at this point, partly due to the language, very much due to the "community". (Posted from a different account - to save you the time of looking).
styluss · 5 years ago
if you ask a question in r/reddit (I know it's not officially part of the community) you get answers telling you to google stuff or to "just" check the docs where someone writes a package name.
thiht · 5 years ago
I lurk on /r/golang and to be fair there are a lot of crappy low effort questions, so yeah. I wouldn't consider these answers as non inclusive, but I understand that the people asking these crappy questions could feel not included.
withinboredom · 5 years ago
I wonder if/how they measure survivorship bias. They mentioned it was about the same number of responses, were they all the same people?
stunt · 5 years ago
> The most common area by far was web development (68%)

68% is a lot and I hope it lead to have more mature web libraries in the future. I'm comparing it to other languages Java(e.g. Spring), PHP(e.g. Laravel & Symfony), Ruby(e.g. Rails), NodeJS(e.g. NestJS & NextJS) and I think Go community has a long way to go.

We had a discussion recently about building an internal web app and I had no chance to even defend Spring against Laravel yet alone Golang (My current team mainly uses Spring). It's just crazy how much scaffolding they have in place for web development. You get clean authentication with email verification and 2FA, and profile, team and roles management running in 5 minutes. And their collection library has most if not all of the Java Stream features. Then you spend another 5 minutes to add a scaffolding for building administration panels. And they are together just 3 months of development work if you ask me.

So as much as I love the idea of building your own stuff, I can't defend it when it comes to raw components for web development like authentication and admins panels.

BillFranklin · 5 years ago
It's interesting that 17% are not satisfied with editor support for Go. The biggest editor feature requests were for code completion and navigating code.

Rather than editors being at fault, could these indicate that Go is a bit too verbose? I wonder if generic functions will affect this. I rarely write Go, but I can imagine autocompletion macros for `err != ...` could help.

Demigod33 · 5 years ago
> It's interesting that 17% are not satisfied with editor support for Go.

GoLand does a better job and is more stable and reliable than VSCode here, even having to restart the daemon from time to time for VSCode. Of course it could also be what you said, I can only write for myself. I hope they will be able to introduce stability and reliability of the former.

PaulKeeble · 5 years ago
I have had issues with the recent go plugin for VSCode too. The new version is unreliable and the language server needs a reboot fairly often. It is a real pain because when it breaks it often shows a compile error that you end up scratching your head over and a simple restart of the editor will often fix it. It definitely wastes time and needs addressing soon.
xienze · 5 years ago
> Rather than editors being at fault, could these indicate that Go is a bit too verbose?

No, I think it’s just that the Go language server, last I used it, had lots of trouble dealing with completion for code that lives in another module. GoLand did much better in this regard, but I suspect it’s not used nearly as much as VSCode, hence the response.

throwaway894345 · 5 years ago
I think code completion is for “I want a list of properties or methods available for this function” and not “I don’t want to have to type the next few characters”.
GauntletWizard · 5 years ago
My code completion is actually quite decent, and my editor is vim. Under the hood, gopls takes care of the heavy lifting. It can be memory hungry (I note it taking up half my freaking ram on my 64G machine, though the codebase it's working with is quite large)

I wonder what everyone else is doing.

PaulKeeble · 5 years ago
e followed by down and enter produces the following for me, its downright essential snippet code to be on a single character entry for golang:

if err != nil { return |, err }

I can't believe how much I need this, on the one hand I love how error handling is explicit, but also the amount of times I handle an error and just pass it means the above code is used a lot.

erik_seaberg · 5 years ago
I just want to see f(g(x), h(y)). I’m hoping for an editor that both generates and hides the twelve lines of noise that call g, handle an error, call h, handle an error, call f, and handle an error. I don’t want to write or review that for the same reason that stack frame setup just happens in code that nobody writes or reviews.

We could generate Go from some other language, but I can’t assume any team will buy into that.

potta_coffee · 5 years ago
Sublime text used to have a pretty decent Go plugin, but the repository looks abandoned. VSCode has an ok plugin I'm not really a big fan of the editor itself. Outside of that, there's the Jetbrains Goland editor which looks decent but I'm not going to pay for.
rhabarba · 5 years ago
Wasn’t one of the points of LSP to make editors exchangeable?
eikenberry · 5 years ago
Editors support for LSP is still uneven as it is still a very young "standard".
PaulKeeble · 5 years ago
Desktop Applications 8%. There is a reason for that, the GUI frameworks up until recently have been quite poor. I had been using Lorca as a Chrome wrapper that gave me a HTML interface but alas some users ran into weird bugs with it, its just not reliable and webview which utilises the native browser (edge/GTK/Safari) is even less reliable. I have been trying out Fyne recently and that seems stable and functional all be it with the same issues that Swing has with Java but also the same benefits.

Go could do with a decent GUI framework, I think a lot of people would like something that isn't Visual Studio C#/C++ for this purpose but its not Go (or rust) at this point.

rhabarba · 5 years ago
WALK is fine, but it is Windows-only.
closeparen · 5 years ago
All I want for Christmas is a way to get decent test coverage on a method with several “if err != nil { return err }” branches that isn’t excruciating.
abledon · 5 years ago
i want an unused variable to exist in my fireplace config stocking
nemothekid · 5 years ago
I’m surprised nsq didn’t make the list for Golang pipelines. It was one of the first big go projects I can remember
alexkarbiv · 5 years ago
Go is good. Based on decades long research and experiments of Rob Pike and others.

It's interesting to read comments by employees of american corporations that act like members of a national-socialist organization(of workers).

There are people from Europe(not western) that became almost suicidal after working in those environments in US. Main principles of some organizations are pathological lying and suppression of free speech in any forms.

That banner is like a test of obedience. Anyone who questions it - is problematic, "toxic". It doesn't matter what that banner contains.

Obey. "They Live" movie.(1988, John Carpenter)