<story><title>Half a decade with Go</title><url>http://blog.golang.org/5years</url></story><parent_chain><item><author>kjksf</author><text>You should ponder why Erlang or Haskell achieved a fraction of Go&amp;#x27;s adoption despite being on the market 20+ years longer.&lt;p&gt;Some people see languages as a bag of features (immutability! generic programming! laziness! operator overloading! algebraic types! hindley-miller type inference! pattern matching! exceptions! manual memory management!). See &lt;a href=&quot;http://yager.io/programming/go.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;yager.io&amp;#x2F;programming&amp;#x2F;go.html&lt;/a&gt; for an example of that line of thinking.&lt;p&gt;Those people won&amp;#x27;t get Go.&lt;p&gt;Designing a language is not about cramming every feature you can think of. It&amp;#x27;s about making good trade offs.&lt;p&gt;A trade off is: you get something but you also loose something.&lt;p&gt;I use Go because it made the biggest number of good trade offs.&lt;p&gt;Or to put it differently: I program in Go because when writing code, it irritates me less than other languages.&lt;p&gt;If you want a longer explanation of that: &lt;a href=&quot;http://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;commandcenter.blogspot.com&amp;#x2F;2012&amp;#x2F;06&amp;#x2F;less-is-exponentia...&lt;/a&gt;</text></item><item><author>wyager</author><text>What do you think is worthwhile about Go? I agree that the tooling is nice, but beyond that, there is nothing interesting to me. Goroutines aren&amp;#x27;t interesting; languages like Erlang and Haskell got green threads right many years before Go was on the scene.</text></item><item><author>ansible</author><text>&lt;i&gt;At launch, there was a flurry of attention. Google had produced a new programming language, and everyone was eager to check it out. Some programmers were turned off by Go&amp;#x27;s conservative feature set—at first glance they saw &amp;quot;nothing to see here&amp;quot;...&lt;/i&gt;&lt;p&gt;This was totally me.  I am very much a programming language aficionado (or maybe just a dilettante), and when I first read about Go, I dismissed it quickly.  I&amp;#x27;d mostly been using Lua at the time, and didn&amp;#x27;t really understand what was different with goroutines vs. coroutines.&lt;p&gt;&lt;i&gt;After the initial release, it took us a while to properly communicate the goals and design ethos behind Go. Rob Pike did so eloquently in his 2012 essay Go at Google: Language Design in the Service of Software Engineering and more personally in his blog post Less is exponentially more. Andrew Gerrand&amp;#x27;s Code that grows with grace (slides) and Go for Gophers (slides) give a more in-depth, technical take on Go&amp;#x27;s design philosophy.&lt;/i&gt;&lt;p&gt;It was Rob Pike&amp;#x27;s essay that caused me to investigate it again.&lt;p&gt;I have been quite impressed with lots of little details that have been &amp;#x27;fixed&amp;#x27; (relative to C) in Go.  Such as how variables are declared, the module system, and much more.  And I was and continue to be impressed with the associated tooling.&lt;p&gt;I hope that if Go has just one lasting legacy in the history of programming, it will be how it pushed forward people&amp;#x27;s expectations of what a good language ecosystem should provide.</text></item></parent_chain><comment><author>wwweston</author><text>&amp;gt; You should ponder why Erlang or Haskell achieved a fraction of Go&amp;#x27;s adoption despite being on the market 20+ years longer.&lt;p&gt;This line of thinking serves more to call in to question the engineering and management cultures we have than it does to reflect poorly on Haskell and Erlang, and if it&amp;#x27;s true that Go&amp;#x27;s essential strength compared to them is that it is well-fitted to these cultures, that&amp;#x27;s not particularly flattering, however locally practical it may be.</text></comment>
<story><title>Half a decade with Go</title><url>http://blog.golang.org/5years</url></story><parent_chain><item><author>kjksf</author><text>You should ponder why Erlang or Haskell achieved a fraction of Go&amp;#x27;s adoption despite being on the market 20+ years longer.&lt;p&gt;Some people see languages as a bag of features (immutability! generic programming! laziness! operator overloading! algebraic types! hindley-miller type inference! pattern matching! exceptions! manual memory management!). See &lt;a href=&quot;http://yager.io/programming/go.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;yager.io&amp;#x2F;programming&amp;#x2F;go.html&lt;/a&gt; for an example of that line of thinking.&lt;p&gt;Those people won&amp;#x27;t get Go.&lt;p&gt;Designing a language is not about cramming every feature you can think of. It&amp;#x27;s about making good trade offs.&lt;p&gt;A trade off is: you get something but you also loose something.&lt;p&gt;I use Go because it made the biggest number of good trade offs.&lt;p&gt;Or to put it differently: I program in Go because when writing code, it irritates me less than other languages.&lt;p&gt;If you want a longer explanation of that: &lt;a href=&quot;http://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;commandcenter.blogspot.com&amp;#x2F;2012&amp;#x2F;06&amp;#x2F;less-is-exponentia...&lt;/a&gt;</text></item><item><author>wyager</author><text>What do you think is worthwhile about Go? I agree that the tooling is nice, but beyond that, there is nothing interesting to me. Goroutines aren&amp;#x27;t interesting; languages like Erlang and Haskell got green threads right many years before Go was on the scene.</text></item><item><author>ansible</author><text>&lt;i&gt;At launch, there was a flurry of attention. Google had produced a new programming language, and everyone was eager to check it out. Some programmers were turned off by Go&amp;#x27;s conservative feature set—at first glance they saw &amp;quot;nothing to see here&amp;quot;...&lt;/i&gt;&lt;p&gt;This was totally me.  I am very much a programming language aficionado (or maybe just a dilettante), and when I first read about Go, I dismissed it quickly.  I&amp;#x27;d mostly been using Lua at the time, and didn&amp;#x27;t really understand what was different with goroutines vs. coroutines.&lt;p&gt;&lt;i&gt;After the initial release, it took us a while to properly communicate the goals and design ethos behind Go. Rob Pike did so eloquently in his 2012 essay Go at Google: Language Design in the Service of Software Engineering and more personally in his blog post Less is exponentially more. Andrew Gerrand&amp;#x27;s Code that grows with grace (slides) and Go for Gophers (slides) give a more in-depth, technical take on Go&amp;#x27;s design philosophy.&lt;/i&gt;&lt;p&gt;It was Rob Pike&amp;#x27;s essay that caused me to investigate it again.&lt;p&gt;I have been quite impressed with lots of little details that have been &amp;#x27;fixed&amp;#x27; (relative to C) in Go.  Such as how variables are declared, the module system, and much more.  And I was and continue to be impressed with the associated tooling.&lt;p&gt;I hope that if Go has just one lasting legacy in the history of programming, it will be how it pushed forward people&amp;#x27;s expectations of what a good language ecosystem should provide.</text></item></parent_chain><comment><author>wcummings</author><text>I get the impression some of the folks in the Golang crowd are &amp;quot;Blub&amp;quot; programmers [1]. It&amp;#x27;s not so much a matter of simplicity and trade-offs as it is a matter of &amp;quot;I don&amp;#x27;t need things I don&amp;#x27;t know about&amp;quot;, which isn&amp;#x27;t a good argument to use Golang.&lt;p&gt;[1] &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.paulgraham.com&amp;#x2F;avg.html&lt;/a&gt;</text></comment>