<p>With the nature of concurrency and low-level, it is tempting to make an backend API server with Go Lang and do some computation. However, I see that the problem for Go is not a "big" community and limited number of libraries. Should I transition to Go, or just wait? Any opinion is welcome!</p>
<hr/>**评论:**<br/><br/>rz2yoj: <pre><p>Unless you're doing something extremely niche, you won't run into problems finding libraries to do what you need. Third party libraries aside, the standard libraries are comprehensive enough that most projects don't really require anything else.</p>
<p>Just dive in.</p></pre>floatdouble: <pre><p>In general, Go is amazing for setting up a backend server. What are you trying to do specifically?</p></pre>some_coreano: <pre><p>A web and mobile! So Go will be used to fetch data ..!</p></pre>qu33ksilver: <pre><p>In that case, I'd wager that you will find pretty much everything you need in the standard library itself. </p>
<p>Regarding "community" - hey, that's what this sub is for ;)</p>
<p>So give Go a chance !</p></pre>Ravekelder: <pre><p>This is what I do as well. I came from Laravel, but Go feels so much better! Good luck with your adventure. </p></pre>wubrgess: <pre><p>The company where I work has in the past year really opened up to go and are loving working with it. The biggest complaints I've heard so far are that there aren't really options for mirroring libraries (to remove external dependencies at deployment time) & version control, and its goofy directory structure requirement.</p></pre>StevenTheBirdSeagull: <pre><p>Can I recommend gRPC. It makes it a breeze to exchange messages between services. <a href="https://grpc.io/" rel="nofollow">https://grpc.io/</a></p></pre>some_coreano: <pre><p>What is RPC??</p></pre>StevenTheBirdSeagull: <pre><p>remote procedure call. Check the link I sent in my previous comment. It's two process from different Lang communicate with each other in an standard way.</p></pre>some_coreano: <pre><p>Thanks!</p></pre>philiplb: <pre><p>We thought about this as well but require a web client beside the apps. So we decided against gRPC in favor of GraphQL:
- gRPC is binary and so not that easy to debug (via Postman, curl and co)
- Not all browsers can deal with it without going through some hoops</p></pre>Kraigius: <pre><p>How complex are the relationships in your data? Last time I checked it was not worthwhile implementing graphQL unless you had complex relationships and shit tons of data that particular clients might not be interested in.</p></pre>yami_odymel: <pre><p>Don't use gRPC if your client is a browser, because gRPC doesn't support the browser.</p></pre>fazalmajid: <pre><p>Go is one of the best languages for this purpose. My elevator pitch for it is "80% of the productivity of Python, 80% the performance of C". My company started with Python and when we outgrew it, switched to Go. We handle 800Mbps of traffic and over 2 Billion API calls per day.</p>
<p>As for the size of the community, it is middling but growing fast, and more importantly the quality of both members and contributed code is very high. No architecture astronauts over-engineering and over-complexifying as with the Java weenies, or noobs creating security vulnerabilities by cluelessness as with PHP.</p>
<p>IMHO, the three general-purpose languages any programmer ought to learn are JavaScript, Go and either C or Rust.</p></pre>iroflmaowtf: <pre><p>go will handle all your needs and the community and amount of libraries available are significant</p>
<p>to give you some perspective, replaced a node server with golang, same aws server is now under 5% usage, with more 3x the number of users, while previously it would have taken 10-20 seconds for some requests that are now served within milliseconds</p></pre>some_coreano: <pre><p>Wow that sounds really promising. What material did you use to learn go? I just went through go tutorial on the go page, until gorotuines, but I don't think I'm ready yet...</p></pre>iroflmaowtf: <pre><p>I've actually started right away in go with a project, it went well after a few hours and decided to continue forward with go, here I am ~4 years later and many backends in golang</p>
<p>I'd recommend looking on github for some golang library that seems interesting and start playing with it, in this way, you'll get to use go and see how things go, you'll pick it up in less than a week</p></pre>RustyCrustyBoy: <pre><blockquote>
<p>Go is not a "big" community</p>
</blockquote>
<p>Better keep it small. It consists of retards mostly at the moment. Why would you want to grow it?</p></pre>gac_web: <pre><p>Do you intent to integrate legacy enterprise systems that rely on SOAP? then I'd say no. Otherwise it's fine. The question is more where do you come from and what kind of libraries do you expect to find in Go.</p>
<p>And yes, the libraries are mostly focused on REST API/ Devops and just go to <a href="https://stackoverflow.com/questions/tagged/go" rel="nofollow">https://stackoverflow.com/questions/tagged/go</a> to see that you'll get very limited help there. No matter how people try to inflate the community it isn't that big.</p></pre>jetjaguar76: <pre><p>Well said, and good point about SOAP. A definite no go if you need to work with it. </p></pre>holyjeff: <pre><p>What other languages besides java and c# have good soap support ?</p></pre>gac_web: <pre><p>PHP, Python, C++ , Delphi, all have good soap server implementations ...</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传