TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

New case studies about Google’s use of Go

218 点作者 0xedb将近 5 年前

17 条评论

piazz将近 5 年前
I played around with Go a while ago, and while I appreciated the approach to concurrency, I was really put off by both the boilerplate + how primitive the type system felt. Not having map and filter due to lack of generics meant writing for loops all over the place just to filter and modify arrays. Appending elements to slices felt clumsy. The type system didn&#x27;t feel expressive, and I often found myself having to resort to the empty interface escape hatch.<p>Compare this with Typescript (or Swift, or Rust), which have type systems capable of modeling nearly any problem domain. Go doesn&#x27;t have algebraic data types (sum types) which are incredibly useful in my experience (Swift&#x2F;Rust enums, Typescript discriminated unions). I&#x27;m honestly not sure why I would use Go over TS, unless performance was my primary consideration. It feels like Go was designing to be as inoffensive as possible to a legion of new-grad Google programmers, and you sacrifice most modern language niceties for it. Please convince me I&#x27;m wrong, because I really wanted to like Go.
评论 #24298516 未加载
评论 #24298113 未加载
评论 #24298295 未加载
评论 #24298386 未加载
评论 #24298655 未加载
评论 #24298633 未加载
评论 #24300057 未加载
评论 #24300068 未加载
评论 #24298098 未加载
评论 #24298156 未加载
评论 #24301322 未加载
评论 #24301198 未加载
评论 #24298201 未加载
评论 #24301819 未加载
评论 #24298265 未加载
warent将近 5 年前
I absolutely love using Go. The logical flows for my programs are always so clean and easy to follow thanks to the language. Contrast to C++ in which spaghetti and magic is basically idiomatic. The only downside I can think of is that error&#x2F;crash recovery is pretty tricky, but it&#x27;s only really a concern if you&#x27;re careless with your goroutines.<p>Whenever I work in Go, I have a lot more confidence in the efficiency of resource usage, and sense of stability that I just don&#x27;t get from something like Node.js, where I&#x27;m constantly wondering... are any of these 1000s of dependencies going to suddenly do something weird like hijack my .env file? How is my program managing memory and overhead when it needs to interface with the kernel via a C++ wrapper? Are these machine resources even being capitalized on by Node.js properly? etc.<p>I&#x27;ve heard a lot of great things about Rust, and I&#x27;ve touched on it a bit, but Go is just awesome for its abstractions, ease-of-use, and of course insanely fast compile times.
评论 #24297589 未加载
评论 #24303461 未加载
mabbo将近 5 年前
While I do trust Rob Pike to not let personal biases sway his writing, I do have to wonder if the case studies weren&#x27;t selecting because they were positive. So I&#x27;m curious: does anyone have a case study where using Go was a disaster?<p>Every language has things it&#x27;s good at, and things it&#x27;s bad at. Where does Go not do well?
评论 #24298829 未加载
评论 #24298040 未加载
评论 #24298114 未加载
评论 #24298086 未加载
评论 #24298185 未加载
评论 #24299614 未加载
评论 #24308174 未加载
评论 #24300475 未加载
评论 #24298609 未加载
评论 #24300302 未加载
评论 #24301972 未加载
colesantiago将近 5 年前
You can see more very exciting case studies of companies using Go here, didn&#x27;t know until now Twitch or Facebook (and even Target!) uses Go a lot.<p><a href="https:&#x2F;&#x2F;go.dev&#x2F;solutions&#x2F;#case-studies" rel="nofollow">https:&#x2F;&#x2F;go.dev&#x2F;solutions&#x2F;#case-studies</a>
评论 #24298236 未加载
评论 #24297957 未加载
candiddevmike将近 5 年前
Anecdote of one here, but I think Go&#x27;s best use case is building monoliths (queue the irony of it being used for a lot of microservice work). The way the language works and the readability it provides really removes a lot of the arguments for breaking apart a monolith, and the performance guarantees it has around parallelism and goroutines make combining your async task processing into your main binary trivial. I&#x27;d go so far as to say I don&#x27;t think anything beats a Go monolith in terms of developer velocity, code quality, and performance.
评论 #24311506 未加载
nedsma将近 5 年前
Go is super productive. My day-to-day responsibilities include development in .NET and Go. A full day working in Go is like a having a pleasant day off. On the other hand, .NET is so cumbersome, complex and verbose (I&#x27;ve been using it since its inception), that I&#x27;d rather abandon it for good if possible.
评论 #24299638 未加载
评论 #24298398 未加载
andonisus将近 5 年前
Efficient user-space threads (go routines) and the way go lends itself to the reactor pattern is exactly why is has been the language of choice for the company I work for. We use it to power all of our distributed microservices which process IoT packets from a stream. The performance and ease-of-use is heads and shoulders above everything else we tried before (mainly, Java with Kafka&#x2F;Storm).
sfvisser将近 5 年前
&gt; Looking back from 2020, Go has succeeded in both ways: it is widely used both inside and outside Google, <i>and its approaches to network concurrency and software engineering have had a noticeable effect on other languages and their tools.</i><p>Don’t know much about go myself, but I’m interested in examples of this.
评论 #24297445 未加载
评论 #24297020 未加载
评论 #24298452 未加载
Knut4231将近 5 年前
I came to Go because some Kotlin CLI tools used too much memory and were clumsy to deploy.<p>I&#x27;m staying for the standard lib, tooling and stability.<p>Nothing gets out of the way better than Go.
评论 #24303436 未加载
评论 #24297880 未加载
bit_logic将近 5 年前
async&#x2F;await colored functions is a disaster: <a href="https:&#x2F;&#x2F;journal.stuffwithstuff.com&#x2F;2015&#x2F;02&#x2F;01&#x2F;what-color-is-your-function&#x2F;" rel="nofollow">https:&#x2F;&#x2F;journal.stuffwithstuff.com&#x2F;2015&#x2F;02&#x2F;01&#x2F;what-color-is-...</a> And so many languages and ecosystems have fallen to this. Even C#, which is surprising since I expected them to know better. There was so much hype about async&#x2F;await (nodejs was a big factor for this hype), that many languages adopted this without fully considering the long term maintenance nightmare it will create.<p>Because of this, I&#x27;m mostly interested in only Go and Java. Go obviously avoids the async&#x2F;await trap with its core feature, goroutines. Java managed to resist this trap and has Project Loom coming which will give it the same feature as goroutines, but in a backwards compatible way.<p>Go is criticized for not having generics, but I appreciate the slower and more thoughtful way both languages add new features. Javascript, C#, etc. these languages seem to add whatever FOMO driven new hyped language feature is popular at the moment. Many complain about Go taking so long to add generics, just like many complained about lambdas in Java. But evolving a language should not be done quickly and recklessly.<p>My focus is still on Java, but I&#x27;m occasionally looking at Go to see what they&#x27;re doing. It&#x27;s interesting watching these two languages become more like each other (generics in Go and fibers in Java).
评论 #24301210 未加载
评论 #24299954 未加载
scarmig将近 5 年前
&gt; Go also powered Google’s development and launch of Kubernetes in 2014.<p>Wasn&#x27;t k8s written originally in Java and only ported to Go later on?
评论 #24296776 未加载
enahs-sf将近 5 年前
I tried very hard to bring go into my previous employers environment, but it was all for naught. They are too bought into the JavaScript stack. Case studies like this would have been super helpful in trying to make my claims.
评论 #24297139 未加载
评论 #24298330 未加载
评论 #24297033 未加载
评论 #24297794 未加载
评论 #24296969 未加载
ridiculous_fish将近 5 年前
Does Google use Go for any non-server applications? For example in Android, iOS apps, ChromeOS, Chrome browser?
评论 #24298296 未加载
game_the0ry将近 5 年前
Go as a new language is a <i>mega</i> success.<p>K8s, docker, native concurrency, robust std lib, list goes on.<p>Obviously, not the magical swiss army knife for all engineering use cases, but successful in a lot of domains and well-liked by developers. Winning.<p>And its only version 1.XX.<p>I&#x27;ve never even used go and I am impressed.<p>Well done, Google. Well done. (golf clap)
评论 #24297184 未加载
评论 #24297356 未加载
评论 #24297166 未加载
saagarjha将近 5 年前
Important point: this is <i>Google&#x27;s</i> use of Go, not <i>your</i> use of Go. Take note to check whether their results are applicable to you before adding it to your repertoire of &quot;reasons we should use Go at our company&quot;.
评论 #24297381 未加载
评论 #24297412 未加载
评论 #24297177 未加载
PostThisTooFast将近 5 年前
Kinda tired of the proliferation of languages coming out of Google, whether they actually created them or not.<p>If Go is so great, why was Kotlin released four years later and made the standard on Android? It&#x27;s annoying enough to have to use Swift and Kotlin for iOS&#x2F;Mac vs. Android. Now Go? What happened to Dart?<p>Then there&#x27;s Rust. What about next week?
评论 #24297809 未加载
评论 #24297803 未加载
评论 #24298109 未加载
评论 #24297817 未加载
评论 #24297970 未加载
评论 #24298024 未加载
JamesBarney将近 5 年前
I see why go is clearly superior to C++. I see why it&#x27;s simplicity is great for bringing new people up to speed. I see why it&#x27;s concurrency model is better than many other languages. And I really like their software engineering philosophy.<p>Go seems clearly one of the if not the best systems language around.<p>But how is Go in the line of business web application space? The space that&#x27;s historically been dominated by your Python, Ruby, Go , node.js, C#, Java applications?<p>I get it&#x27;s probably more performant, but honestly in C# my primary language I spend almost all my time optimizing DB queries and almost none optimizing C# code. I get it&#x27;s concurrency model is better, but with web apps that usually isn&#x27;t much of a problem.<p>Is Go as better in this space as it clearly is in the systems programming space? I get it could be used for the LoB use case but is it better, and if so is it significantly or marginally better?
评论 #24297215 未加载
评论 #24297395 未加载