<p>Found this article and thought the arguments against it were poor. Wanted to share anyway to see if anyone thinks some of the criticisms have merit: <a href="http://www.koszek.com/blog/2015/07/22/why-the-go-wont-be-successful/" rel="nofollow">http://www.koszek.com/blog/2015/07/22/why-the-go-wont-be-successful/</a></p>
<hr/>**评论:**<br/><br/>sharptierce: <pre><p>Am I the only one that thinks that go already is successful?</p></pre>tex0: <pre><p>No, there are now at least two people that think Go is already successful ;)</p></pre>divan0: <pre><p>Haha.
The title must be "How I failed to set up env variable for Go".</p></pre>donatj: <pre><p>It's no more safe compiling yourself than running github binaries if you don't read and comprehend the full source. Gah.</p></pre>brokedown: <pre><p>No, he's just an idiot that doesn't read the install instructions.</p></pre>bat_country: <pre><p>While he is an idiot, it isn't a bad goal, for the sake of new user's experiences, to have</p>
<pre><code>$ brew install go
$ go build drive.go
</code></pre>
<p>work. I could very easily.</p></pre>brokedown: <pre><p>I agree, but that's a complaint to bring up with the maintainer of the brew package, though. </p></pre>bat_country: <pre><p>Isn't the issue go not having a default for GOPATH, like "$HOME/go". I don't think brew can fiddle with your environment.</p></pre>brokedown: <pre><p>I'm not that familiar with Homebrew but I'd guess it has the ability to edit files (such as .bashrc) and add things like that.</p></pre>TheMerovius: <pre><p>blerghs, you <em>really</em> don't want to programatically write to .bashrc (plus, that person doesn't use bash, so you'd have to find a file that is read by <em>all</em> shells <em>and</em> would need to trigger the currently running shell to reload the file. That is close to impossible).</p></pre>brokedown: <pre><p>Maybe rather than take the example you would mentally extend the suggestion to "do whatever other Homebrew packages do, because Go is likely not the only package it can install that wants to set an environment variable".</p></pre>010a: <pre><p>Brew can't and shouldn't modify the environment in that way.</p></pre>mgutz: <pre><p>Most brew packages have additional setup instructions. For example, how to load a daemon with launcher. <code>brew info go</code> says</p>
<p>As of go 1.2, a valid GOPATH is required to use the <code>go get</code> command:</p>
<p><a href="https://golang.org/doc/code.html#GOPATH" rel="nofollow">https://golang.org/doc/code.html#GOPATH</a></p></pre>bat_country: <pre><p>Which is great for people who read instructions... The vast majority of unix utilities will use a default directory if one is not provided (such as ~/.vim or ~/.ssh) and for good reason. It let's removes one extra step between a user's first contact with a tool and them getting to use it.</p></pre>TheMerovius: <pre><p>"He's just an idiot" is almost universally not a good response to people pointing out problems they had when using your software. While I agree that this person used an unnecessarily inflamatory title and probably should have read the documentation first, he <em>does</em> have a valid point by talking about sane defaults, for example. There is nothing preventing go from assuming ~/go, if GOPATH isn't set and that doesn't exist. I don't know if it necessarily <em>should</em>, but it's certainly a valid opinion to have.</p></pre>brokedown: <pre><p>Sure, most of the time a person pointing out a problem isn't an idiot. </p>
<p>However, when they're writing an inflammatory article like this and claiming some intellectual high ground that infers that the issue the experienced is with Go, it applies.</p>
<p>A more well thought article would have been much shorter: I installed Go from Homebrew (for my own personal reasons which may make sense only to me), and discovered that it merely installed the package but did none of the required configuration. So I had to create ~/go and set GOPATH to complete the setup. </p></pre>mattyw83: <pre><blockquote>
<p>I’d rather not run binaries from Github on my machine</p>
<p>sudo brew install go</p>
</blockquote></pre>defererror: <pre><p>While the author obviously needs to RTFM, I do agree the go tool could be a little more friendly to new users just wanting to install software and get on with their day.</p>
<pre><code>% go get golang.org/x/tools/cmd/goimports
package golang.org/x/tools/cmd/goimports: cannot download, $GOPATH not set. For more details see: go help gopath
</code></pre>
<p>Considering somebody who doesn't have their GOPATH set is probably completely new to Go, I think "go help gopath" is worded a little confusingly. It says "Each directory listed in GOPATH must have a prescribed structure:", which is odd because $GOPATH doesn't need to have a structure. It doesn't even need to exist. "go get" creates it if it doesn't exist, and it creates all the aforementioned structure.</p></pre>Ainar-G: <pre><p>Thanks for sharing, but no. I don't think any of them have merit. It's basically "I need to RTFM to use it? This software sucks!".</p></pre>mytrile: <pre><p>Dumbest article EVAR</p></pre>TheMerovius: <pre><p>I disagree with the opinions of the author, but I don't find it the least bit stupid.</p>
<p>I have experienced more than one non-idiot (though a novice) struggling with stuff like this. They didn't write a blogpost, but they <em>did</em> have the same problems. As such, the author of this post certainly expresses valid opinions (even if the title is truly horrible. But a horrible title and even a horrible blogpost is not a reason to belittle a person). I do think, the expressed criticsm has at least some merit, even though I don't really agree with all of the solutions given.</p>
<p>Disagree with that person all you like. But don't call them an "idiot" or "retarded". Be excellent :)</p></pre>BoTuLoX: <pre><blockquote>
<p>won't be</p>
</blockquote>
<p>It already is</p>
<p>Also the writer of that article is retarded. He doesn't want to use a binary compiled by the authors of a source code he didn't read but he won't even learn how to set-up the development environment either.</p>
<p>Almost troll-tier article.</p></pre>CornPlanter: <pre><p>So called article is just silly and whiny, does not even deserve a real criticism. On the other hand if the title was "Why go needs some minor improvements for the convenience" it would have been a good start.</p></pre>4ur3l13n: <pre><p>More I learn Go, more I think it will be successful and I am pretty sure that soon great things will happen between Go and Dart.</p>
<p>The Go community is great, the tools are great, and all works on fully free distro Archlinux / Parabola.</p>
<p>Your title is big jstuartmill, but I don't see your arguments.</p></pre>: <pre><p>[deleted]</p></pre>xkcd_transcriber: <pre><p><a href="http://imgs.xkcd.com/comics/duty_calls.png" rel="nofollow">Image</a></p>
<p><strong>Title:</strong> Duty Calls</p>
<p><strong>Title-text:</strong> What do you want me to do? LEAVE? Then they'll keep being wrong!</p>
<p><a href="http://www.explainxkcd.com/wiki/index.php/386#Explanation" rel="nofollow">Comic Explanation</a></p>
<p><strong>Stats:</strong> This comic has been referenced 2307 times, representing 3.1376% of referenced xkcds.</p>
<hr/>
<p><sup><a href="http://www.xkcd.com" rel="nofollow">xkcd.com</a></sup> <sup>|</sup> <sup><a href="http://www.reddit.com/r/xkcd/" rel="nofollow">xkcd sub</a></sup> <sup>|</sup> <sup><a href="http://www.reddit.com/r/xkcd_transcriber/" rel="nofollow">Problems/Bugs?</a></sup> <sup>|</sup> <sup><a href="http://xkcdref.info/statistics/" rel="nofollow">Statistics</a></sup> <sup>|</sup> <sup><a href="http://reddit.com/message/compose/?to=xkcd_transcriber&subject=ignore%20me&message=ignore%20me" rel="nofollow">Stop Replying</a></sup> <sup>|</sup> <sup><a href="http://reddit.com/message/compose/?to=xkcd_transcriber&subject=delete&message=delete%20t1_ctdhl2l" rel="nofollow">Delete</a></sup></p></pre>010a: <pre><p>I agree with his sentiment. </p>
<p>Its unfair to criticise him for not knowing the honestly quite obtuse idioms for compiling Go source code. Its unlike any other language out there. And it matters much more with go because the <em>entire dependency management system</em> is based around <code>go get</code> which works by compiling source code, not fetching binaries.</p>
<p>In essence: On a clean machine, its possible to have <code>make</code> build and run nearly any program in any other language. But go requires a modification to the environment (<code>GOPATH</code>) which makefiles cant touch. </p>
<p>I've gotten around this before on clandestine systems by creating a fake gopath in the directory of my project, moving my project files into <code>src/</code>, building, then removing the fake gopath. Its ridiculous, and the only response you'll ever hear from most other go developers is "well you're not doing it the <em>Go way</em>". You're right, but that's tangential to the issue of whether or not the "Go way" is the right way.</p>
<p>There are thousands of things I like about Go, hundreds I don't but can live with, and a single feature which begs the question of developers' sanity: <code>GOPATH</code>.</p></pre>hcwool: <pre><p>While this guy does need to RTFM, his complaints on usability regarding GOPATH creation are somewhat valid. I personally think it would be nice to have some safe defaults that do not require configuration. I do not quite see a downside to that approach.</p></pre>itsmontoya: <pre><p>Why do people use Homebrew when installing using pre-compiled binaries is a breeze?</p></pre>Streamweaver66: <pre><p>I love Go, have had great success with it so far. I think it's too early to say if it is or isn't successful as a long term language with wide adoption (I'm assuming that is what they mean).</p>
<p>Whatever reasons contribute to it's eventual success or failure, wont be anything mentioned in this post. It's a shame because this is a good piece of general commentary obscured with a hyperbolic title.</p></pre>weberc2: <pre><blockquote>
<p>All other technologies, such as Ruby, Python, and Node.js, can be installed and just work, but Go apparently can’t.</p>
</blockquote>
<p>Apparently he's never used pip or easy_install... These things fail all the time.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传