说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

选择Go语言的12个理由

HTML文档下载 WORD文档下载 PDF文档下载
Go语言在编程语言的家族中算是一个比较新的成员,弥补C语言的不足并且保持了C的极简主义,专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

编者按:多核化和集群化是互联网时代的典型特征,那语言需要哪些特性来应对这些特征呢?多数语言在语法层面并不直接支持协程,而通过库的方式支持的协程的功能也并不完整,比如仅仅提供协程的创建、销毁与切换等能力。如果在这样的协程中调用一个同步 IO操作,比如网络通信、本地文件读写,都会阻塞其他的并发执行协程,从而无法真正达到协程本身期望达到的目标,而Go语言的出现解决了这个问题。

以下是原文:

Go语言是谷歌推出的一种编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

Go语言在编程语言的家族中算是一个比较新的成员,弥补C语言的不足并且保持了C的极简主义,因此在过去的几年中它的发展却十分迅速。目前在我的工作中Go语言也充当着一个重要的角色!

到底Go语言对企业来说有什么好处?下面简单介绍一下企业选择Go语言的12个理由:

1. 一个完整的语言体系

Go语言已经逐渐发展成一个完整的体系,不论是Go项目自身还是ta的社区都有了极大的发展。

2. C级性能

Go语言目前的性能已经达到了C语言的程度。而且Go语言的性能要比其他企业级语言(如Java、Scala等)更强。随着Go语言版本的更新,它将会变得愈来愈成熟。

"Go is like a better C, from the guys that didn’t bring you C++" — Ikai Lan

3. 快速编译

Go语言编译速度很快,如此快速的编译使它很容易作为脚本语言使用。因为谷歌设计Go语言就是为了解决谷歌自身的问题——数以万计的代码和CPU核心。我自己的也验证过Go语言的编译速度,几乎是和语言同步进行。 

4. 跨平台

Go语言可以在多个平台上进行编译。Go语言设计支持主流的32位和64位的x86平台,同时也支持32位的ARM架构,同时支持多种操作系统,在企业中不需要针对系统环境做额外的部署。

5.测试调优框架

这些基准测试可以查看: my recent post about Golang benchmarking

6. 语言级并行

并发性是能够同时执行多个计算结果。现在并发性已经成为衡量一个语言的关键特性,Go语言就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。

7. 代码风格 - gofmt

通过谷歌的页面可以看见Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难

8.内置文档 - godoc

企业中API和程序的相互协作以及和第三方协作是非常重要的,Go语言可以建立一个代码的内置文档-godoc,可以分享将资源在代码中进行分享。

9.自动垃圾回收

在C和c++程序员花费很多的时间和精力分配和释放内存,R语言则可以消除这种情况,确保程序员可以集中精力进行更多的生产任务。当然垃圾收集也有自身的问题,不过这些都是通过语言来实现的,不需要程序员进行额外的工作。

10. 丰富的库

一个丰富的库对于任何一种语言都是非常重要的,可以通过 the list of packages in Go查看Go语言的库,包括压缩、加密、大量的数据结构、SQL语句、JSON和XML解析、模板、网络等等。

11. 有趣的语言,低门槛学习条件

有一些优秀的程序员可以学习多种语言,他们是非常优秀的。但是作为一个普通人,学习语言还是很痛苦的,但是Go语言有C的基因,学习门槛很低,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。

"After Go, programming in anything else seems as difficult as balancing the State of California’s budget." — Charles Thompson

12. 经过线上大规模考验的成功案例

我研究越多,越让我印象深刻。还有很多好处我没有列出来,因为实在是太多了。通过一些具体的案例来展示一下吧。 

iron.io

"In retrospect, it was a great decision to choose Go as it's allowed us to build great products, to grow and scale, and attract grade A talent." — Read Case Study

bitly.com

"We identified early on that Go had all the makings of a language that could supersede some of the places we would have traditionally turned to C and some of the places where we wanted to move away from Python." — Read Case Study

torbit.com

"We process over 6 billion performance metrics a day and our goal is to keep our customers’ data safe forever." — Read Case Study

conformal.com

"In summary, Go makes hacking fun again by doing away with intellectual masturbation and terrible, terrible tools. It compiles super fast and runs at native speeds. Any C expert can pick it up over the course of a few weeks and with its awesome data representation features I believe we could rewrite a product such asCyphertite in 25% as many lines of code." — Read Case Study
原文链接:12 Benefits of Golang For Enterprise Systems   (编译:刘亚琼/审校:仲浩) 


以“云计算大数据 推动智慧中国”为主题的第六届中国云计算大会将于5月20-23日在北京国家会议中心隆重举办。产业观察、技术培训、主题论坛、行业研讨,内容丰富,干货十足。票价优惠,马上报名
打破边界 生态化反!乐视发布三款超级手机 苹果收购LinX:iPhone或将采用双摄像头技术 Google《Android性能优化》学习笔记 Amaze UI 2.3.0版本发布 整合多个第三方插件 专访Layabox创始人谢成鸿:Flash与HTML5结合的背后 高德推“LBS+”开放平台战略 整合位置大数据和云计算 CLion 1.0发布,C/C++跨平台集成开发环境 2015超实用的前端开发指南 期待吗?Linux 4.1将引入大量汇编代码变更! TSMC量产16FF+制程,Apple Watch或将采用Finfet技术 谷歌搜索引擎更新 移动端支持不好的网站排名将受影响 《近匠》格知GUECHI,设计师品牌让你离时尚更近 Apple Watch应用开发经验谈:我遇到的那些坑 约吗?UNITE 2015 BEIJING日程全揭晓! 谷歌扩擴增App搜索結果 已抓取300亿App页面 功耗、联网与交互:可穿戴设备操作系统问题解读 李大学离职京东后:转做投资人,助传统产业“互联网+”转型 Skype Translator实现中英实时语音对话 语音翻译领域又一新突破 如何判断自己是否适合自由职业? 创造·连接·成就:UNITE 2015 BEIJING圆满落幕 IT互联网人才招聘市场特点:人少钱多疯狂抢? React Native并非原生 Instagram Apple Watch应用设计师:对原有App全部重新思考 腾讯网移动端H5页面设计实战分享 Kendo UI和AngularJS常见问题解析 Elevator.js:模拟电梯运行的“返回顶部”JS插件 Java,传奇的一生! 约吗?Java二十周年特别策划——寻找Java大牛! 走近英特尔软件技术王牌之师:系统技术和优化部门 新兴技术袭来,Web开发如何抉择? 新创社交平台Tsu 5周註冊用户破百万秘訣 请问,谁手里有PERL的表单提交程序?(不要能让访问者看的见的) vivianchou@eyou.com 我所遇见的招聘题。。。555 怎么回事~? 参天无眼!!我所遇见的招聘题呀,你。。。55555555555 哪位知道象windows优化大师那样的平面按钮控件。 c+vc+vb+java+delphi+>>>>=工作? 怎么得分呀? dos下的Tcp/Ip协议应用 白痴,笨蛋,神经病之差异(转贴) 测试(大家都不许进来,只是测试,注意,只是测试) 请大家说一下哪个代理注册的网站收费比较底,而且服务又比较好的,谢谢! 在asp中如何实现记录集与编辑框、table表等的数据绑定,给个思路也行。着急呀 [-------大虾帮忙啊--------] bcb中缺少的帮助文件能否再添加? 在哪里可以找到关于sybase的资料 哪位仁兄知道如何打包delphi开发的sybase客户程序,最高78分奉送 一个关于OnDraw()的重绘问题,急急急急急急急! 新手的问题! dll调问题???VB调用VC++的DLL需要返回值时,DLL如何定义?VB调用函数如何定义??? 各位大虾 谁能提供视频采集卡的原代码,必须要CB的,300分 在堆(heap)上与在栈(stack)上建立的对象有什么区别? 一个问题,在做元件时怎样建立TdateTimePicker 给大家看看我弟弟给我的信 求助,标题栏为“The police are investigating the robbery-"的是什么程序? 谁能将.CPP文件的代码翻译成DELPHI语言?? 有关于FLASH5.0的问题!!!请各位大吓指点! 一个问题,怎样在PC:PageControl上增加TabSheet1,TabSheet1,TabSheet1…. 标题栏为“The police are investigating the robbery-"的是什么程序? 一个弱弱的问题 一个问题,建立的 FB: TBevel没显示,好象根本没建立一样。 如何在 MDI CLIENT 中添加快捷方式??谢谢!! 55分,如何映射控件中子控件的消息? 如何选择书 关于文献数据库的一个问题-如何把一个字段和一个文件关联起来? 所有喜欢到水园来逛逛,但是从不回帖子或很少回帖子的人进来签到~~~~ 谁来救救我呀,我好惨呀。。。。 如何通过VC编程,随时关闭网络端口 诚寻对嵌入式linux感兴趣的网友 今天临走前,再灌一桶酒! 急!!!哪里可以下载到制作工具栏时用到的位图呀? 太原的在哪能买到程序员杂志 我的qq:10120129 谁找我??? xml 高手帮帮我,为什么我下面的文件,在IE5.0中什么也没有?? 请问高手:在uml类图中如何用关系表示一个实体类和一个接口间的关系。 Cathy进来~~ 请问高手们一个Delphi的一个应该是比较底层的东西。 mimi大酒店正式開業﹗先進來的有分啊﹗ 哪个高手完整地讲讲OpenWith菜单项的调用方法和函数等 关于非模态对话框中使用UpdateData(FALSE)函数的问题,朋友,帮个忙好吗? “记事本”小问题,大逻辑.大虾们,照顾照顾小弟呗. 全世界北纬18度的度假胜地有哪些. 1、 找出不同的数2 3 5 8 12 16 23 302 4 8 12 16 32 不同在哪里啊?2、 643 111 421269 ( ) 4917 4 68 4 86 5 ()回答得都不错,只是第二题的第一小题,大家没有说清楚! 观察下列数,-1,-1/3,1/4,-1/5,1/6,…….依照这样的规律,第2013个数是_____,如果这一列数无限排列下去,越来越接近_______. 想知道:中国 北纬18度,经度78.24度 在哪 1,2,5,( ) 有一组数:2,-3,2,-3,2,-3,2,-3,...,根据这个规律,那么第2013个数是?初中数学问题 北纬18度在那个地方? 7 8 14 16 21 24什么32 找规律:1,-1/2,1/3,-1/4,1/5,-1/6,.,猜想第2 010个数是 多少,如果这一列数无限排列下去,与什么 请问北纬18度有哪些国家的哪些城市?尽量多点,请问北纬18度有哪些国家的哪些城市?尽量多点,能提供点非洲的城市吗? 三年级找规律(8,6).(24,2).(16,3).(12,) 有一列数为:—1,1/2,—1/3,1/4,1/5,1/6,…,找规律得到第2013个数是______. 想知道: 北纬44度 东经4度 在哪 小学奥数网--------找规律:1/2,7/2,10,20,()(),49,98 7、31、37、82、( )、49 是什么 北纬20度,东京5度,在北纬40度,东经166度,什么方向 1、2、3、4、5、12、( )、( ) 现在基本知道可能是奇数项分一组,偶数项分一组。前面1、3、5、7…为一组规律, 1.2.4.7.11( )( )( 在北纬30度,东经5度;北纬20度,东经110度.哪个是既在东半球,又在西半球?在北纬30度,东经5度;北纬20度,东经110度。哪个是既在东半球,又在北半球? 一道小学奥数找规律题1 2 3 7 11 16 () 29 找规律填数的第2题 1、1、2、3、5_、_、_ 东经160度北纬55度左右是什么地方 东经115度北纬48度是哪. 4()16.()填啥数儿 找规律填数.求解答! 北纬34.5度东经43.58度具体位置 给出依次排列的一列数,-1,2,-4,8,-16,32,-64..这列数的第2009个数是多少 找规律填数, 北纬39度55分451秒东经116度23分504秒 这是我国那个城市的什么部位. 依次排列的一列数:-1 ,2,-4,8,-16,32,...按照规律,第n个数为? 找规律,填数字,求解答 北纬39度54分20秒,东经116度25分29秒在哪个半球,东南西北 给出依次排列的一列数2、4、8、16、32,……,1)按照依次给出的几个数的排列规律,继续写出后面的3个数;2)这个数的第2014项是几?第n项呢? 1,1,2,3,5,8,( ),21,( ),55. 北纬39度55点451秒东经116度23点504秒很具体的说是什么地方.什么北京南三环赵公口与草桥之间老师说这样还太大,最具体的是什么地方? 给出依次排列的一列数:-1,2,-4,8,-16,32,…①写出32后面的三项数②按照规律,第n个数为 找规律:15,20,12,25,9,30,( ),35,3,( ).怎么做? 例如:北京在北纬39度,东经116度;合肥在北纬32度,东经117度.算出该地点与我们的距离急 算式! 有一列数,按一定规律排成1、-2、4、-8、16、-32、……设其中 某三个相邻的数的和是-384,求这三个数各 1,4,9,20,35找规律能讲下为什么吗?有没有简单一点的方法呀? 北纬21.37度,东经110.1度是什么地方 有一列数,按一定的规律排列成:-2,4,-8,16,...,其中某三个相邻的数的和为-384,求这三个数各为多少. 找规律 4 2 2 3 6求下一位 东经110度 北纬35度在什么地方东经110度 北纬35度是什么地方? 有一列数,按一定规律排列成:-1,2,-4,8,-16,32,-64…,其中有三个相邻的和为1224,这种说法对吗?请说明理由 找规律:1,2,4,4(),8,64 A 16 B 8 C 12 D 6A 16 B 8 C 12 D 6 选一个填空 东经110北纬25是什么地方关于地理方面的 有一列数,按一定规律排列成1,-2,4 ,-8,16,-32,64……其中3个相邻数的和是-1536,这三个数是多少? 400斤等于多少升油 东经100度北纬100度是什么地方 有一列数,按一定的规律成1,-2,4,-8,16,-32,64,``````,其中某三个相邻数的和为1536,这三个数各是多少? 2吨400克等于多少克 东经96,北纬17是什么地方 有一列数,按一定的规律成-1,2,-4,8,-16,32,-64,``````,其中某三个相邻数的和为1536,这三个数各是多少? 400克等于多少千克? 东经122北纬38是哪里 西经157度 北纬21度在什么地方 观察下面一列数,根据规律填空:-1,1/2,-1/3,1/4,-1/5,1/6,···第2012个数是 北纬50.38° 东经30.49°什么地方 东经20北纬60是什么地方/内海、湖泊啊 试题 用计算器探索以下按一定规律排列的一组数:1,根号2,-根号3,2,根号5,-根号6,根号7……,如果从1开始依此连续选取若干个数,使它们的和大于5,那么至少要选( )个数.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn