<story><title>Why I Don&apos;t Want to Learn Go</title><url>http://arantaday.com/why-i-dont-want-to-learn-go</url><text></text></story><parent_chain></parent_chain><comment><author>jrockway</author><text>Go is designed for large codebases, which is a problem that the author may not have, and so he may not see the benefits.&lt;p&gt;One key feature is that the Go compiler itself is the style guide: it automatically reformats your code to remove style guide violations.  This makes it easy to work on a codebase the size of Google&apos;s because everything looks like it was written by the same person.  We try to do the same thing for C++, Java, and Python, but it doesn&apos;t work as well because the process is manual.&lt;p&gt;Similarly, compilation time and runtime for every component, no matter how unimportant, is of utmost importance for Google&apos;s codebase.  It may not matter how long it takes to run one one-off script, and it may not matter to you how long it takes to compile, but it does matter at Google because we compile every project and run every test after every commit.  (OK, builds and tests that are obviously unaffected are skipped.  But it&apos;s still a lot of code being built and tested.) So your Python project that takes 5 seconds to run tests instead of 1 second ends up wasting decades of CPU time throughout its life time.  Same for C++ projects that take many hours to compile.  Go tries to be as expressive as Python and run as fast as Java (and compile faster than anything else), and this saves lots of time in aggregate.  (Remember, when you break someone&apos;s build, the delay between submitting your change and the system knowing about the breakage can result in a lot of hair-pulling for the developers on the project you broke.  But if we can know the build is broken before the change is even submitted, then many hours of developer productivity are saved.)&lt;p&gt;Anyway, don&apos;t take this to mean that you&apos;re doing software wrong if you don&apos;t see the value of Go.  Google is a special case and just because we have some problem doesn&apos;t mean you should have the same problems.  One-man shops should optimize for individual efficiency instead of aggregate efficiency like Google does.</text></comment>
<story><title>Why I Don&apos;t Want to Learn Go</title><url>http://arantaday.com/why-i-dont-want-to-learn-go</url><text></text></story><parent_chain></parent_chain><comment><author>babarock</author><text>Unfortunately, as much as I want to agree with it, the article seriously lacks any credibility. Go claims to present high-level features (namely GC) for low-level system programming. Obviously, this sounds new and ground-breaking. Simply dismissing it on account that &quot;GC is unacceptable [for low level problems]&quot; is nothing short of stating a disbelief: it doesn&apos;t prove anything.&lt;p&gt;If anyone wants to prove any shortcoming, than maybe they should come up with a more technical analysis, or at least some sort of benchmarking.</text></comment>