5 ms·
I sometimes wonder if Go is a long running by joke by Google. Like someone internal at Google said people will use and adopt en masse anything they make, regar
by LandR 6y ago
I sometimes wonder if Go is a long running by joke by Google.
Like someone internal at Google said people will use and adopt en masse anything they make, regardless of how good it is.
Someone else said no way, a bet was made, and Golang was released. Ignoring 20-30 years of programming languge theory advancements. Yet everyone laps it up.
And here we are today. I'm sure someone at Google is laughing.
I find Go completely tedious and inelegant to work with, its too verbose and i think verbosity hides intention and expressiveness.
- defnotashton2 6y agoWhat are you comparing it to and would prefer?
- LandR 6y agoLanguages I would prefer to work in than Go: Clojure C# F# Rust Scala Ruby Kotlin
- leetrout 6y agoAre you working in those languages now and do you have a remote build environment or are you building on your laptop? Scala and Rust's build times get very noticeable very quick IME.
- LandR 6y agoIve worked places where compiling the C# solution on my dev machine took 30-40 mins and the build server took an hour plus... I haven't seen anything else ever be that bad.
- leetrout 6y agoThe scala shop I was at Last year was 45+ mins on a 2019 mbp with 16gb ram. You had to turn off IntelliJ so you wouldn’t run out of ram.
- vl 6y agoI would prefer to work in C++, but it doesn’t matter really: the problems you are solving at the big project are mostly unrelated to the language.
- mratsim 6y agoIn big C++ project, your number one problem to solve is likely C++ build times and how it eats your dev productivity.
- cmrdporcupine 6y agoFWIW it hasn't had much uptake within Google. I think the sense that this is a "Google language" is exagerated. What it is is a language created by a certain group of people at Google with Rob Pike at its origin, and they would have created this language wherever they were working. It's a continuation of the work they did on Limbo/Inferno, etc. not something adapted for Google's needs, as it is sometimes advertised as. So I'm in no position to criticize Rob Pike, he's a far smarter person than me who has achieved a lot more than I ever will. But I also don't think Go solves any problems that I have, and my one experience with going through Go code review at Google turned me off the language probably forever.
- vl 6y agoWhile hard to say quantifiably, from what I’ve seen almost any new backend service is written in Go (apart from ML-related, which Go doesn’t support). Given that many-many older services were implemented in C++ and Java, these still dominate. Weird quirk of using Go at Google is that any backend service at Big G mostly copies protos, and in Go you end up with these many-page inline protos initializations, which are unreadable.
- vp8989 6y agoCan you elaborate, RE: the Go code review?
- cmrdporcupine 6y agoGoogle has a "readability" restriction for reviewers/authors on CL (changelists, I guess like a pull request). You need a reviewer with readability in a given language to approve your CL before it can land. When I first started, to get readability involved putting together a good archetypal CL in the language, showing good knowledge of the language, lots of tests, good documentation, etc. and then it would go into to a readability queue, get reviewed, and you'd get your readability capability. Go was different in that they had introduced an incremental readability process. Instead of one CL, you had to do many, each reviewed by different people, and over time after doing a whole bunch of CLs you could get readability. This is the process that Google eventually adopted for all languages, but they started with Go. What I found was the Go reviewers were a) exceptionally pedantic [even by Google standards] but, worse, b) very contradictory. One would chastize me for using channels where they were unnecessary, so I'd remove their use and just use simple functions but then a later reviewer would scorn me for not using channels in the same code. It became a painful game of tennis. And the whole thing had a feeling of ideology over practicality.
- tdeck 6y agoGoogler here. I somewhat agree and have often wondered about perceptions of Go's popularity within Google. It seems like teams at G are much more likely to choose Java or C++ for new projects, at least outside the SRE org. Meanwhile Go's reputation is tightly linked to Google.
- vmchale 6y ago> Like someone internal at Google said people will use and adopt en masse anything they make, regardless of how good it is. And bend over backwards to defend it. "Being bad is actually good because it's more beginner-friendly" okay lol
- fmakunbound 6y agoI think there's precedence for your theory. Angular is also mind-bogglingly stupid, developed by Google and also somehow popular.
- cmrdporcupine 6y agoRemember GWT? Another beast that had Google's branding on it, had all sorts of technical awfulness, and was not popular within Google either. Used for a few projects, but nothing consumer facing other than some ads products.
- dmitshur 6y ago> Ignoring 20-30 years of programming languge theory advancements. Yet everyone laps it up. I’d argue Go didn’t ignore those things, it just made a different set of trade-offs than most people are used to or expect from a modern programming language. The rationale for this is is well explained in https://youtube.com/watch?v=rFejpH_tAHM&t=306 https://youtube.com/watch?v=rFejpH_tAHM&t=306.
- simon_o 6y ago> I’d argue Go didn’t ignore those things, it just made a different set of trade-offs than most people are used to or expect from a modern programming language. You are wrong.