4 ms·
Go is not a general-purpose language. It's a Google language designed to solve Google's problems. If you aren't Google, you probably have different problems, wh
by kerkeslager 7y ago
Go is not a general-purpose language. It's a Google language designed to solve Google's problems. If you aren't Google, you probably have different problems, which Go isn't intended to solve.
EDIT: Currently at -4 downvotes. Would downvoters care to discuss their votes?
- Corrado 7y agoI agree. One of Go's design goals was to be simple enough for thousands of developers to use it simultaneously across a huge monorepo. To me this is in the same class as companies use k8s; unless your Google (or Facebook or Netflix ...) you probably shoudn't be using it.
- kerkeslager 7y ago> To me this is in the same class as companies use k8s; unless your Google (or Facebook or Netflix ...) you probably shoudn't be using it. I'll actually even say, that if you're Facebook or Netflix, you still shouldn't use Go, because you can write your own tools that solve your problems.
- cmrdporcupine 7y agoAs a Googler, I don't consider this accurate. I've been here 8 years and have yet to work on a Go code base. Yes, there are projects in Go. Certainly not a majority, nor even a significant minority, honestly. No, I wouldn't say Go is specific to Google's problems, though I'm sure some of the engineers had them in mind. I see Go used far more outside of Google than in.
- takeda 7y agoIsn't that indication of a failure? It seems like Go aimed to replace Python and Java code at Google.
- cmrdporcupine 7y agoMy impression (and this was pre-Google and I haven't paid attention since I got here, so) is that it was Rob Pike's and Ken Thompson's project coming out of their long experience with Plan 9 and Inferno/Limbo. That it happened to meet some requirements for some Google projects -- I'm sure that might have been an intent. But that feels a bit like an explanation after the fact, since Go very obviously shows the biases and philosophy from the projects that the original authors had in their previous work.
- kerkeslager 7y agoWell, that's pretty interesting. I don't know if that disproves that Go was intended to solve Google's problems, though. I think from the early writings of the authors of the language in its infancy, it was pretty clear that they intended it to solve problems they were having at Google (i.e. the single-pass compilation design was intended to help with the compilation of their gigantic codebase). If it hasn't gained traction at Google, that only proves that it failed to solve a lot of Google's problems. That's still not to say it's a failure in an absolute sense: it may have solved the problems it was intended to solve.
- ben0x539 7y agoI downvoted. "Go is not a general-purpose language" is a statement I could see myself agreeing with, so I started reading your comment excited to read a brief outline of what use-cases Go is specifically aimed at and how that makes it sub-optimal for Discord's use-cases. But "it's for Google, and you aren't Google" isn't a novel perspective, doesn't leave me with new insights, and isn't really actionable for either Google or people who aren't Google. Usually this criticism is leveled at Go's dependency management story, with the implication being that it's suited to Google's monorepo but not normal people's repo habits. It's not clear to me how the criticism relates to the issues discussed in the article, which seem to be more about the runtime and GC behavior. Your comment also doesn't come off as amusing or otherwise entertaining, so it feels like you're just dunking on Go users without really aiming to make anyone's day better. Disclaimer: I use Go at work and think it's incredibly frustrating at times.
- vogre 7y agoI am not downvoter, but you should learn the history of the language. Most of the concepts in the language were first implemented long before Google even existed, for systems that were very different from modern ones. It was made by people who had been designing languages for about 40 years now. While some design choices seem weird, they usually have very strong argumentation and solid experience behind them. Also if you read the list of problems tha Go is intended to solve, you will be surprised how common they are in software development.
- kerkeslager 7y ago> I am not downvoter, but you should learn the history of the language. What makes you think I haven't been following Go since its inception? > Most of the concepts in the language were first implemented long before Google even existed, for systems that were very different from modern ones. Yes, some of the languages which created those concepts are languages which I've used and which I feel did it better, which is why I am particularly frustrated that Go has gained such popularity with so little substance. > It was made by people who had been designing languages for about 40 years now. While some design choices seem weird, they usually have very strong argumentation and solid experience behind them. Yes. Most of the strong argumentation is Google specific. > Also if you read the list of problems tha Go is intended to solve, you will be surprised how common they are in software development. Such as?
- vogre 7y ago> What makes you think I haven't been following Go since its inception? Your statement that Go is Google's language. In fact it's Rob Pike's and his team's language. > Such as? build speed, cross-platform builds, performance, simplicity of deployment, uniformity of large codebases and documentation, concurrency, learning speed