<p>Hey guys, I'm a Sophomore in college with good knowledge of Java, basic knowledge of C++. I've created an android project and I'm in an android internship right now. </p>
<p>I heard about Golang from a hackathon I went to this weekend and I was wondering what i can do with it. I've read a bit about it but it's still unclear to me.</p>
<p>Thanks :)</p>
<hr/>**评论:**<br/><br/>knotdjb: <pre><p>Here is a <a href="https://commandcenter.blogspot.com.au/2012/06/less-is-exponentially-more.html">good article</a> about the language design and how it differs to C/C++. However Go stands out from the languages you mentioned by having simple & straightforward constructs to do powerful concurrency. So if you're writing socket servers or require elaborate synchronization, Go can make this quite natural.</p>
<p>I would say its weak (at the moment) in developing GUI and scientific/numerical software. Probably quite a bit more. But if you follow the language enough, it is evolving at a steady pace and <em>carefully</em> tackles its shortcomings rather than doing a half-arsed hackjob.</p></pre>butMED: <pre><p>Got it! Thank you very much, I will take a look at the article. I appreciate your reply.</p></pre>weberc2: <pre><p>Go is a general purpose programming language, so you can do all sorts of things with it (though I don't think it's a good candidate language for Android/iOS apps yet). It's especially good for web backends, where concurrency matters (few languages can compete with Go on concurrency). That said, it's an easy language to learn--much easier than Java or C++. Head over to <a href="http://tour.golang.org">http://tour.golang.org</a> for some interactive tutorials. I haven't done the tour in a few years, but you should be able to get through it in an afternoon. Once you've done that, you should have a pretty good idea about how the language works--enough to start writing interesting programs. Getting a Go development environment set up is a bit tricky (I have an installation guide <a href="http://weberc2.bitbucket.org/posts/installing-go-on-linux-and-osx.html">here</a>, but I don't know that it's very good and others should feel encouraged to recommend additional guides), so feel free to come back and ask questions.</p>
<p>Hopefully others can chime in here with some good introductory resources (specifically good links about $GOPATH or good GUI text editors).</p></pre>sh41: <pre><blockquote>
<p>Getting a Go development environment set up is a bit tricky</p>
</blockquote>
<p>I actually think installing Go is the easiest and simplest experience I've seen yet. Do you know of other languages you'd consider to be less tricky than Go? I'd like to look into them and compare.</p></pre>slimsag: <pre><p>FWIW I consider Rust to be just as easy, and <em>maybe</em> even easier to set up because it has no concept of GOPATH / a central project directory. (P.S. hi :) )</p>
<p>Also, even easier if you use the <code>rustup.sh</code> install script available at <a href="https://www.rust-lang.org/en-US/downloads.html">https://www.rust-lang.org/en-US/downloads.html</a></p></pre>sh41: <pre><p>Thanks, I will be curious to check it out and see if I can gather any insight from it then. And hi. :)</p></pre>weberc2: <pre><p>Go is easier than every language I know, but I still had a hard time getting up and running. Specifically pertaining to GOPATH and project directory structure.</p></pre>hoffentlich: <pre><p>That just means you don't have simple knowledge of how a shell works. If adding two shell variables means "tricky", then I don't know what else to say.</p></pre>weberc2: <pre><p>I just checked your comment history. Please don't troll here.</p></pre>hoffentlich: <pre><p>Trolling or not, it has nothing to do with this thread and it doesn't change the fact that what I said is obvious. </p></pre>: <pre><p>[deleted]</p></pre>sh41: <pre><p>I think it's simple and clear. How can Go know where you'd like to store your personal code? Setting a single env var to tell it that seems very reasonable.</p>
<p>I suppose it having a default sensible location if GOPATH is unset would be okay too. Then, if you're happy with the default, no need to set GOPATH, and if you want to change it, you can.</p>
<p>The downside of that is if you accidentally run <code>go</code> with that env var not set, it'll potentially start looking in the wrong folder and give you weird/unexpected results, instead of just a clear error.</p>
<p>(There is a <a href="https://github.com/golang/go/issues/12488" rel="nofollow">proposal</a> about this or something related to this.)</p></pre>: <pre><p>[deleted]</p></pre>sh41: <pre><blockquote>
<p>If you're doing serious work you're going to start setting those different on per project basis anyway.</p>
</blockquote>
<p>Go uses workspaces, not projects. It's a different approach.</p>
<p>You can do things differently, but it's not neccessary and often not helpful.</p>
<p>What are the default locations for Python, Node, Rust?</p></pre>butMED: <pre><p>Thank you very much! I'll head over there and try to learn the syntax. I will also check out the installation guide. I really appreciate the help.</p></pre>weberc2: <pre><p>No problem. Feel free to come back to this sub (or PM me) whenever you get stuck; we'll get you moving again quickly.</p></pre>thewhitetulip: <pre><p>If you want to explore the world of writing webapps, read my book :-)</p>
<p>It is a practical based tutorial on how to write webapps in Go without a framework and assumes 0 knowledge about how to write webapps .</p>
<p><a href="https://github.com/thewhitetulip/web-dev-golang-anti-textbook/">https://github.com/thewhitetulip/web-dev-golang-anti-textbook/</a></p></pre>butMED: <pre><p>Just downloaded the PDF. I love the formatting, will definitely be reading through this for reference.</p></pre>thewhitetulip: <pre><p>Thanks! Which PDF? there are two, leanpub.com and one from gitbooks.com</p>
<p>I love the leanpub one!</p></pre>bitmadness: <pre><p>Step 1: Have some self-confidence and don't think of yourself as a noob, noob.</p></pre>butMED: <pre><p>Hahahaha okay okay I'll try not to :)</p></pre>saeijou: <pre><p>it's a good question, i looked a bit into go as well and I was wondering, if and how i could write programs for windows</p>
<p>is that easy with go, or should i look into something different?</p></pre>arschles: <pre><p>You can write programs in Go and compile them for Windows, but they'll likely be for the command line. If you're looking to build GUI apps for Windows in Go, there's a pretty good list at <a href="https://github.com/avelino/awesome-go#gui" rel="nofollow">https://github.com/avelino/awesome-go#gui</a> for GUI toolkits in Go. </p>
<p>I've never tried any of them, but <a href="https://github.com/lxn/walk" rel="nofollow">https://github.com/lxn/walk</a> seems to be specifically targeted for windows.</p>
<p>Good luck!</p></pre>saeijou: <pre><p>awesome, thank you so much!</p></pre>bigpigfoot: <pre><p>I'm gonna compare your question to "What is Java and what can I do with it as a noob?" and say Go excels at high performance web applications and its standard library allows you to do pretty much everything you'd want to including cross platform compilation, writing any kind of applications (except ones with GUIs as Go doesn't really have a GUI library – you have a web browser for that).</p></pre>brokedown: <pre><p>It is a programming language and you can use it to write programs. For more info, see golang.org.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传