<p>I'm in the process of learning Go because my new company uses it, but I'd like to know what other accomplishments people have released with the language and tools.</p>
<hr/>**评论:**<br/><br/>nexusbees: <pre><p>Its possible to write the business logic of a mobile app in Go and then ship it on with only the UI written with native APIs. An example of this is Ivy - <a href="https://itunes.apple.com/us/app/ivy-big-number-calculator/id1012116478">App Store</a> and <a href="https://play.google.com/store/apps/details?id=org.golang.ivy">Play Store</a>. Its a little cumbersome to pull off right now, but I think it will get easier with Go 1.6 and beyond.</p>
<p>You can find a bunch of cool Go projects at this page - <a href="https://github.com/avelino/awesome-go">awesome-go</a>. My favourites are</p>
<ul>
<li><a href="https://github.com/boltdb/bolt">Bolt</a> - an embedded key-value store, inspired by LMDB.</li>
<li><a href="https://github.com/anacrolix/torrent">A bittorrent client</a></li>
<li><a href="https://github.com/docker/docker">Docker</a> and <a href="https://github.com/kubernetes/kubernetes">Kubernetes</a>, used for managing containers.</li>
<li><a href="https://github.com/coreos/etcd">etcd</a> - A highly-available key value store for shared configuration</li>
<li>And as mentioned by someone else, <a href="https://github.com/spf13/hugo">hugo</a>, used for creating static sites.</li>
</ul></pre>PaulCapestany: <pre><p>Somehow this is the first time I'd heard of Ivy... very cool.</p></pre>PaulCapestany: <pre><p>Besides <a href="https://github.com/avelino/awesome-go" rel="nofollow">awesome-go</a>, this is another way to get an idea of interesting projects being built with Go:</p>
<p><a href="https://github.com/trending?l=go&since=monthly" rel="nofollow">https://github.com/trending?l=go&since=monthly</a></p>
<p>Also, if you like listening to podcasts, TheChangelog is a great podcast where developers of cool open source projects are interviewed and discuss what they're up to. Here are the episodes that are about Go projects: </p>
<p><a href="https://changelog.com/tagged/go/" rel="nofollow">https://changelog.com/tagged/go/</a></p></pre>cryp7ix: <pre><p>Is the frontend code for Ivy a, or any other mobile gui available? I think a couple of good solid examples could really kick this off.</p></pre>nexusbees: <pre><p>I couldn't find the source for the mobile apps, but there is a talk that explains the process by <a href="https://www.youtube.com/watch?v=sQ6-HyPxHKg">Hana Kim</a>. Some details have probably changed since she gave the talk though.</p></pre>fr4nk3n: <pre><p>The code for Ivy is available <a href="https://go.googlesource.com/mobile/+/master/example/ivy/">HERE</a></p></pre>google_you: <pre><p>You can write a compiler in <a href="https://github.com/golang/go/">Go</a></p></pre>BoTuLoX: <pre><p>Well it's shining on everything that's infrastructure that doesn't absolutely require well-written C levels of latency and throughput, Hugo has done a great job at promoting static sites where people used to roll with PHP and it's also found a niche among command-line tool development.</p>
<p>To mention a few.</p></pre>DualRearWheels: <pre><p>Sadly, you can't write competitive OpenGL games (calling C functions has significant overhead). If there was a way to use Go with C without overhead (even in thread/goroutine "simplified" mode) this would be near perfect language.</p></pre>lapingvino: <pre><p>Wouldn't it be possible to implement OpenGL completely natively?</p></pre>DualRearWheels: <pre><p>"OpenGL is a C standard, all OpenGL implementations only have C interfaces."</p>
<p><a href="https://groups.google.com/forum/#!topic/golang-nuts/x-OoOlxi3o0" rel="nofollow">https://groups.google.com/forum/#!topic/golang-nuts/x-OoOlxi3o0</a></p>
<p>I don't know if it is true but I never met any native OpenGL lib in language other than C or using C bindings. I guess it is a huge undertaking to make it, and it would require constant updating as specs change.</p>
<p>Anyway, removing CGO overhead might benefit Go significantly. I don't know what are exact limitations.</p>
<p>On a side note, by using gccgo (gcc Go compiler) seems that there is no overhead, which is encouraging.</p></pre>storm14k: <pre><p>Has anyone done any benchmarking around some worthwhile game code to get a real world idea of the impact? I've been toying with OpenGL development in Go but haven't come anywhere close to anything complex enough to judge the bottleneck. I was mainly aiming to learn OpenGL and how engines work under the hood and considered moving to an established engine to work on games. But I like Go so much I'd like to stay and build out my own purpose built engine.</p></pre>DualRearWheels: <pre><p>Similar thread <a href="https://www.reddit.com/r/golang/comments/3w42nq/the_cost_and_complexity_of_cgo/" rel="nofollow">https://www.reddit.com/r/golang/comments/3w42nq/the_cost_and_complexity_of_cgo/</a></p></pre>storm14k: <pre><p>Thanks that's exactly what I was looking for. I'd been looking at the Azul project. I'd also been thinking about doing my work in C since most of the material I've been reading is C based. But for the stuff I'd be capable of doing in my spare time Go is probably fine. </p></pre>hesdeadjim: <pre><p>I would love to experiment with taking a command buffer approach to C interop. The last rendering backend I did actually "rendered" commands into an API agnostic command buffer and then submitted the entire batch to the actual renderer backends. Taking a similar approach, one could do the command generation on the Go side and then pay the cost of crossing the language barrier once instead of each call.</p></pre>DualRearWheels: <pre><p>Yes, I tried something similar, instead of eg. 100 x glMultMatrix I would store 100 matrix data in buffer and call C function once that would go trough buffer and do the job. This avoids C overhead, but loading buffer adds overhead too. I didn't do comprehensive tests as I doubt it would work satisfactory with heavy load.</p></pre>pkieltyka: <pre><p>everything.</p></pre>howeman: <pre><p>A group of us has been building scientific libraries for Go. (github.com/gonum)</p></pre>gopherGator: <pre><p>you can build API that builds APIs ?</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传