Besides building API's what else can I do with Go?

blov · · 649 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>I&#39;m in the process of learning Go because my new company uses it, but I&#39;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&#39;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&amp;since=monthly" rel="nofollow">https://github.com/trending?l=go&amp;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&#39;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&#39;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&#39;s shining on everything that&#39;s infrastructure that doesn&#39;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&#39;s also found a niche among command-line tool development.</p> <p>To mention a few.</p></pre>DualRearWheels: <pre><p>Sadly, you can&#39;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 &#34;simplified&#34; mode) this would be near perfect language.</p></pre>lapingvino: <pre><p>Wouldn&#39;t it be possible to implement OpenGL completely natively?</p></pre>DualRearWheels: <pre><p>&#34;OpenGL is a C standard, all OpenGL implementations only have C interfaces.&#34;</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&#39;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&#39;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&#39;ve been toying with OpenGL development in Go but haven&#39;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&#39;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&#39;s exactly what I was looking for. I&#39;d been looking at the Azul project. I&#39;d also been thinking about doing my work in C since most of the material I&#39;ve been reading is C based. But for the stuff I&#39;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 &#34;rendered&#34; 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&#39;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

649 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传