<story><title>Go is amazing, period.</title><url>http://poincare101.blogspot.com/2012/03/experiences-in-go-ing.html</url></story><parent_chain><item><author>FreakLegion</author><text>&lt;p&gt;&lt;pre&gt;&lt;code&gt;    void func()
    {
    }
&lt;/code&gt;&lt;/pre&gt;
vs.&lt;p&gt;&lt;pre&gt;&lt;code&gt;    void func() {
    }
&lt;/code&gt;&lt;/pre&gt;
Does Go really enforce the latter? That would be incredibly silly.</text></item><item><author>CamperBob</author><text>&lt;i&gt;I&apos;m historically a braces-on-their-own-line guy, so getting used to the strict enforcement of the other style was a pain for me&lt;/i&gt;&lt;p&gt;Wait, what?</text></item><item><author>georgemcbay</author><text>As someone who is 38, and has programmed in everything from 6510/68k/MIPS/ARM assembler to C/C++ to ActionScript/haxe/JavaScript to D to Python, et al, I also think Go is pretty great.&lt;p&gt;In addition to the cool things in the language, I really love what they are doing with the build system.  The Go programming I&apos;ve been doing has been on Windows but targeting an ARM CPU (the PXA168 in the Chumby 8 device) and cross-compiling Go code requires simply setting a couple of environmental variables.  Sooo much nicer than having to set up a full-on GNU-style cross-compiling setup and using different toolchains for all your different targets.&lt;p&gt;eg:&lt;p&gt;set GOOS=windows&lt;p&gt;set GOARCH=386&lt;p&gt;go build&lt;p&gt;Just built my project for Windows x86.&lt;p&gt;---&lt;p&gt;set GOOS=windows&lt;p&gt;set GOARCH=amd64&lt;p&gt;go build&lt;p&gt;Just built my project for Windows x64&lt;p&gt;---&lt;p&gt;set GOOS=linux&lt;p&gt;set GOARCH=ARM&lt;p&gt;set GOARM=5&lt;p&gt;go build&lt;p&gt;Just built my project for the Chumby device.&lt;p&gt;---&lt;p&gt;I highly recommend checking Go out and looking past any of the superficial allergies you have to it (I&apos;m historically a braces-on-their-own-line guy, so getting used to the strict enforcement of the other style was a pain for me) and giving it at least a few weeks to sink in.  If it still isn&apos;t your cup of tea after that, then that&apos;s fine, but it is well worth a look, IMO.</text></item></parent_chain><comment><author>enneff</author><text>It does, but for a good reason. Its so the parser can find the line endings without needing complicated rules and look-ahead.&lt;p&gt;Go style is enforced mechanically with gofmt (&lt;a href=&quot;http://weekly.golang.org/cmd/gofmt/&quot; rel=&quot;nofollow&quot;&gt;http://weekly.golang.org/cmd/gofmt/&lt;/a&gt;), anyway, so one typically drops the pretension of these kinds of style quibbles. It is more important to have one consistent style than to make everyone happy. The gofmt style forced me to change several of my own habits, but it was definitely worth it for my code to look like everyone else&apos;s. I&apos;ve never encountered a Go programmer who hasn&apos;t become grateful for gofmt, in the end.</text></comment>
<story><title>Go is amazing, period.</title><url>http://poincare101.blogspot.com/2012/03/experiences-in-go-ing.html</url></story><parent_chain><item><author>FreakLegion</author><text>&lt;p&gt;&lt;pre&gt;&lt;code&gt;    void func()
    {
    }
&lt;/code&gt;&lt;/pre&gt;
vs.&lt;p&gt;&lt;pre&gt;&lt;code&gt;    void func() {
    }
&lt;/code&gt;&lt;/pre&gt;
Does Go really enforce the latter? That would be incredibly silly.</text></item><item><author>CamperBob</author><text>&lt;i&gt;I&apos;m historically a braces-on-their-own-line guy, so getting used to the strict enforcement of the other style was a pain for me&lt;/i&gt;&lt;p&gt;Wait, what?</text></item><item><author>georgemcbay</author><text>As someone who is 38, and has programmed in everything from 6510/68k/MIPS/ARM assembler to C/C++ to ActionScript/haxe/JavaScript to D to Python, et al, I also think Go is pretty great.&lt;p&gt;In addition to the cool things in the language, I really love what they are doing with the build system.  The Go programming I&apos;ve been doing has been on Windows but targeting an ARM CPU (the PXA168 in the Chumby 8 device) and cross-compiling Go code requires simply setting a couple of environmental variables.  Sooo much nicer than having to set up a full-on GNU-style cross-compiling setup and using different toolchains for all your different targets.&lt;p&gt;eg:&lt;p&gt;set GOOS=windows&lt;p&gt;set GOARCH=386&lt;p&gt;go build&lt;p&gt;Just built my project for Windows x86.&lt;p&gt;---&lt;p&gt;set GOOS=windows&lt;p&gt;set GOARCH=amd64&lt;p&gt;go build&lt;p&gt;Just built my project for Windows x64&lt;p&gt;---&lt;p&gt;set GOOS=linux&lt;p&gt;set GOARCH=ARM&lt;p&gt;set GOARM=5&lt;p&gt;go build&lt;p&gt;Just built my project for the Chumby device.&lt;p&gt;---&lt;p&gt;I highly recommend checking Go out and looking past any of the superficial allergies you have to it (I&apos;m historically a braces-on-their-own-line guy, so getting used to the strict enforcement of the other style was a pain for me) and giving it at least a few weeks to sink in.  If it still isn&apos;t your cup of tea after that, then that&apos;s fine, but it is well worth a look, IMO.</text></item></parent_chain><comment><author>amattn</author><text>Nothing in go is silly.  There are multiple reasons why it&apos;s required.&lt;p&gt;The answer usually given is faster compile times and the removal of semicolons from the language.  I don&apos;t know the details, but someone new complains about it on the mailing list fairly frequently.&lt;p&gt;Also having a tool enforced brace style is just plain practical.  Less silly arguments/bikeshedding.&lt;p&gt;I was also a brace on its own line kinda guy, but between javascript and go, I&apos;ve gotten over it.</text></comment>