选择Go语言的12个理由

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择Go语言的12个理由相关的知识,希望对你有一定的参考价值。

编者按:多核化和集群化是互联网时代的典型特征,那语言需要哪些特性来应对这些特征呢?多数语言在语法层面并不直接支持协程,而通过库的方式支持的协程的功能也并不完整,比如仅仅提供协程的创建、销毁与切换等能力。如果在这样的协程中调用一个同步 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的基因,学习门槛很低,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。



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


本文为CSDN编译整理,点击“阅读原文”可查看全文并参与讨论。


以上是关于选择Go语言的12个理由的主要内容,如果未能解决你的问题,请参考以下文章

五大理由从 Python 转到 Go 语言

go语言之数组

初识Go语言

我为什么要学Go语言

如何用go语言每分钟处理100万个请求

Go语言中的Interface