Golang does not scale well

blov · · 1716 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>Hi all,<br/> Peter Bourgon metioned in Fosdem conference, that Golang does not scale well or large projects. <a href="https://www.youtube.com/watch?v=GM39Be_OhLM" rel="nofollow">https://www.youtube.com/watch?v=GM39Be_OhLM</a>.<br/> How do you think about his opinion? </p> <hr/>**评论:**<br/><br/>peterbourgon: <pre><p>Well, I said it lacks some opinionated toolkits, like Twitter&#39;s Finagle, or Netflix&#39;s Ribbon/Hystrix/etc. suite. But I think Go is actually the best possible language for large microservice architectures (projects). Or, rather, it could be, if we spent a little effort on building the right tools. That&#39;s why I&#39;m working on <a href="http://gokit.io" rel="nofollow">http://gokit.io</a> :)</p></pre>alphfox: <pre><blockquote> <p>But I think Go is actually the best possible language for large microservice architectures (projects).</p> </blockquote> <p>That was before that Pony were released:</p> <p><a href="http://ponylang.org/" rel="nofollow">http://ponylang.org/</a></p></pre>jimuazu: <pre><p>Pony is pretty interesting. Actually they wrote and deployed the runtime before creating the language, and actors were originally written in C. All GC is local to actors, so there is no global GC pause. There is no mutable memory shared between actors, unlike Go where you can share mutable data between goroutines. They have algorithms to handle distributed actor cleanup without necessarily having up-to-date information on global state. The whole thing could potentially run over a cluster (although I don&#39;t know if that code is out there yet). Definitely one to watch, although as yet only at 0.1, so way behind Go and Rust in terms of lots of things.</p></pre>peterbourgon: <pre><p>Pony is super interesting, and I&#39;m excited to try it out, but it will be years before we know if it can deliver on its promises. Remember that Go has traction largely because it&#39;s easy to pick up; Pony&#39;s capabilities, for example, may prove too onerous.</p></pre>zero_coding: <pre><p>Wow. What is a microservice? Any example for that?<br/> Why netflix, twitter etc. still choosing java over golang?</p></pre>hoffentlich: <pre><p>They chose java a long time ago, they can&#39;t just switch to another language over night, look for developers skilled with that new language and rewrite everything from scratch.</p></pre>DavsX: <pre><p>I think the answer to the second question is maturity and the amount of 3rd party libraries + there are more Java devs on the market etc. Golang needs some time to be more robust and stable.</p></pre>hoffentlich: <pre><blockquote> <p>Golang needs some time to be more robust and stable</p> </blockquote> <p>What is the name of this planet of yours?</p></pre>dwevlo: <pre><p>Twitter uses scala. It&#39;s ideological (functional vs imperative), historical (go wasn&#39;t an option when twitter went from ruby to scala), tooling, developer knowledge, and in general just a conservative choice. No one was ever fired for going with java.</p> <p>That said I think you&#39;d be surprised by the state of many of the systems that make up large tech companies. They&#39;re always in a state of transition and development: using various rpc mechanisms, queuing techniques, http libraries, etc...</p> <p>The code-base problems a large company like this face don&#39;t really come down to language choice: it&#39;s a matter of corralling everything they&#39;ve already written into some semblance of order, while still moving the business forward (producing new services) and fixing high priority issues in legacy systems. The developers at these companies may want to try something new, but there&#39;s almost always going to be a lot of push back.</p> <p>Transitioning from Java or C++ to Go is a much harder sell than from a dynamic language like ruby or python. Especially when you have some of the most talented and capable Java and C++ developers out there.</p> <p>But for some reasons in these discussions we just assume the competence needed to produce software in any given language is the same regardless of the language.</p> <p>It&#39;s not. C++ and Java are much harder to user than Go.</p> <p>Hypothetically if there was a technology out there that made your job 2x easier, would you celebrate that?</p> <p>I think it depends on which side of the technology you fall on. If you already know how to do the hard job, then the new technology is a negative: both in terms of your value as an engineer, but also in terms of your own self image. But if you&#39;re on the outside looking it, the technology is a godsend. It opens up doors that were never available before.</p></pre>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

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