TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Eight years of Go

360 pointsby spaceyover 7 years ago

14 comments

nine_kover 7 years ago
Go is an example of how to be extremely successful by catering to the needs of the project's core audience (well-rounded stdlib, extremely fast GC, short build times, trivial deployment, etc) while paying much less attention to the vocal minority's complaints (generics, package system, etc).
评论 #15671984 未加载
评论 #15672046 未加载
评论 #15671904 未加载
评论 #15674952 未加载
评论 #15672286 未加载
评论 #15672403 未加载
评论 #15672018 未加载
评论 #15672150 未加载
评论 #15672766 未加载
评论 #15673068 未加载
评论 #15672180 未加载
评论 #15675375 未加载
评论 #15675887 未加载
评论 #15674016 未加载
评论 #15671962 未加载
brian-armstrongover 7 years ago
Go is woefully missing some really key features, which you encounter when tuning it for high performance. My list of grievances:<p>- Dep handling was never considered. Makes sense given Google&#x27;s monorepo but thats not how the world works.<p>- Stdlib just loosely wraps posix features with many C flags copied verbatim. These APIs are old and could use a refresh but Go never bothered.<p>- No easy way to construct arenas&#x2F;pools. Once you go down this route you have a great headache of releasing in the right places. The GC doesn&#x27;t cut it, you need pools sometimes<p>- Debugging basically doesn&#x27;t work on some OSes. No easy way to attach gdb and see what&#x27;s happening. Doubly so if you use Cgo<p>- Similarly, Go doesnt bother to hide the differences of different OSes. Up to you as the programmer. Again not surprising for Google&#x27;s all Linux world. If everything is Linux then OS difference doesnt matter. But even Python does a better job here.<p>- Logging is poorly thought out as evidenced by multitude of third-party log packages. Anemic compiler means you can&#x27;t get verbose logging without paying a performance penalty.<p>- No RAII. Defers are a lazy attempt at this, but they&#x27;re not even close to being as good as RAII. This is probably the biggest point where you realize Go can&#x27;t dethrone C++<p>- Tricky Close() semantics force you to architect entire program around who will close() things at end of their lifetime. Lots of terrible hacks ensue when people build something that works but realize close ownership is ambiguous and rightfully don&#x27;t want to rebuild it all<p>- Channels don&#x27;t have a good way to deal with errors. You&#x27;re forced to come up with an ad hoc solution to deal with your graph of goroutines&#x2F;channels when one node errors<p>- No supervision tree. Erlang existed far before Go but they didn&#x27;t learn from this key feature. But it would greatly enhance Go to have it<p>- Hacky reflection semantics that cause subtle runtime bugs when a JSON struct field&#x27;s name starts with a lowercase letter. And of course, there are no generics, the larger issue here.<p>I was hopeful that Go would fix some of these things before it went 1.0 and locked in its syntax. Sadly that didn&#x27;t happen as it was likely already locked in at Google. Go is ultimately kind of brain dead, useful for some very particular features but not so compelling that it can replace any other language.
评论 #15674536 未加载
评论 #15673049 未加载
评论 #15672767 未加载
评论 #15672779 未加载
noncomlover 7 years ago
Things I love about go:<p>1. Probably the best ecosystem out there.<p>2. Go routines<p>3. (Enabled by (2) actually) `defer`<p>4. That I can add interfaces implementations to structs I don’t own<p>5. No exceptions.<p>Actually (5) is one of the few things I don’t like about Haskell.<p>If Go had ADTs and generics it would easily be my favorite language.<p>Edit: and of course the channels.<p>Edit2: yeah, i have no idea why i connected (2) and (3). Had just woken up. No idea what I was thinking.
评论 #15672061 未加载
评论 #15672138 未加载
评论 #15672057 未加载
评论 #15671856 未加载
评论 #15673619 未加载
评论 #15671863 未加载
评论 #15672679 未加载
评论 #15675558 未加载
评论 #15671932 未加载
评论 #15672325 未加载
评论 #15671930 未加载
评论 #15671976 未加载
indescions_2017over 7 years ago
&gt; every single cloud company has critical components of their cloud infrastructure implemented in Go<p>And this is how the &quot;network effect&quot; propagates. As the customers of cloud services also begin to experiment in Golang. And discover the holistic ecosystem of distributed systems packages.<p>Even Blizzard with its massive C++ codebase is gaining converts<p><a href="https:&#x2F;&#x2F;youtu.be&#x2F;Az5F4lwSljI?t=23m50s" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;Az5F4lwSljI?t=23m50s</a>
评论 #15677193 未加载
mfrwover 7 years ago
Simplicity is the Ultimate form of sophistication -- Leonardo da Vinci<p>The quote fits perfectly for the design of go.
评论 #15672999 未加载
评论 #15672957 未加载
评论 #15675202 未加载
davidkuhtaover 7 years ago
way to go, Go!<p>Just to accentuate some of the neat things you can do with Go, watch: &#x27;Can you write an OS Kernel in Go?&#x27; from the Golang UK Conf. <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=8T3VxGrrJwc" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=8T3VxGrrJwc</a>
评论 #15672250 未加载
hellofunkover 7 years ago
I find myself wondering how important the &quot;fun facts&quot; are in this fascinating thread about Go:<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;pasiphae_goals&#x2F;status&#x2F;923820615022399488" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;pasiphae_goals&#x2F;status&#x2F;923820615022399488</a>
评论 #15671898 未加载
评论 #15672131 未加载
stablemapover 7 years ago
A post earlier this year by Rob Pike, celebrating ten years of Go:<p><a href="https:&#x2F;&#x2F;commandcenter.blogspot.com&#x2F;2017&#x2F;09&#x2F;go-ten-years-and-climbing.html" rel="nofollow">https:&#x2F;&#x2F;commandcenter.blogspot.com&#x2F;2017&#x2F;09&#x2F;go-ten-years-and-...</a>
评论 #15672143 未加载
fithisuxover 7 years ago
I use golang since 2010. My only complaint is that they dropped gxui. So I use golang mainly for cli utilities. The other options (I do not like javascript) are ill-maintained. For me it is more important than generics.
KarlAuerover 7 years ago
eight years a-go? :)
kown223over 7 years ago
For me Go is amazing, is my first language where I don&#x27;t need a virtual machine or interpreter to compile to machine code, C++ is OK but not for day to day web.<p>Changing something then having to wait 40 seconds for java to recompile drive me crazy, also same for tests. Yes would love to have a package system, but is coming.
评论 #15671950 未加载
mtgxover 7 years ago
Can you do something about Golang&#x27;s performance on Arm servers? It seems to be terrible compared to x86 performance:<p><a href="https:&#x2F;&#x2F;blog.cloudflare.com&#x2F;arm-takes-wing&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.cloudflare.com&#x2F;arm-takes-wing&#x2F;</a><p>This would have a positive impact on Google, too, as the more server chip competition there is, the cheaper it will be for Google to buy those chips for its cloud services.
dogruckover 7 years ago
In honor of the exponential, I wish the conclusion was “Thank you, and here’s to sixteen more years!” :-)
shkkmoover 7 years ago
Go&#x27;s biggest issues still seems to be the lack of a standard mature dependency management system.
评论 #15673958 未加载
评论 #15672732 未加载
评论 #15672335 未加载
评论 #15673380 未加载