课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于程序员来说,在软件开发项目过程中转变编程语言是非常危险的一种操作。下面我们就一起来了解一下,go语言都有哪些值得替换的原因。
原因1–性能
Go的运行速度非常快。性能类似于Java或者C++。对于我们的使用情况来说,Go一般比Python快30倍。这里有个小型的测试游戏GovsJava。
原因2–语言的性能很重要
对于很多应用来说,编程语言只是应用程序和数据库之间的粘合剂。语言本身的性能通常无关紧要。
然而,Stream是一家API提供商,其为500家公司和2亿多终端用户提供信息流基础设施。我们一直在优化Cassandra、PostgreSQL和Redis等工具。这持续了好几年,但是终,我们还是到达了所用语言的瓶颈。
Python是一门很棒的语言,但是在诸如序列化/反序列化、排序以及聚合之类的场景上,它的性能相当差。我们常常遇到性能上的问题:花1ms的时间拿到Cassandra中的数据,Python接下来还需要花10ms的时间将拿到的数据转换成对象。
原因3–开发人员的开发效率&拒绝太富有创造性
看看这些来自于HowIStartGotutorial的Go的代码片段。(这是一个很棒的教程,也是一个学习Go语言的一个很好的起点。)
如果你是Go语言新手,在阅读那些代码片段时,没有什么会让你大吃一惊。这些代码段仅仅演示了go语言的一些特性,例如赋值、数据结构、指针、格式化和内置的HTTP库。
当我一次开始编程时,我总是喜欢用Python比较高级的特性。Python允许你更有“创意”的写代码。比如,你能够做如下的事:
在代码初始化时使用元类自行注册类
关键字True和False的值可以互换
编写自己的函数,并且使其成为内建函数。
通过魔法方法重载运算符
这些特性很有趣,但是,正如大多数程序员都同意的那样,在阅读别人的代码时,它们的存在使得代码更难理解。
Go迫使你回归基础。这决定了Go代码是容易阅读和理解的。
说明:当然,“容易”的程度需要视情况而定。如果你想要创建一个基本的增删改查接口,我仍然推荐你使用Django+DRF,或者用Rails。
原因4–并发&管道
作为一门编程语言,Go试图让事情变得简单。它没有引入很多的新概念。重点是创造的这门编程语言的性能要难以置信的快,并且容易上手。goroutines和管道是Go仅有的创新点。(准确的讲,CSP这个概念1977年就被提出了,因此这个创新更准确的说法是——旧点子的新实现)Goroutines是Go对线程的轻量级实现,而管道是让goroutines之间相互通信的绝佳的方式。
Goroutines占用的资源非常少,只需要几KBs的额外内存。因为Goroutines非常轻量,所以同时运行数百甚至数千个也不在话下。
你可以使用管道在goroutines之间通信。Go运行时会处理所有的复杂事物。goroutines的存在以及基于管道的并发方法,使得程序可以充分利用CPU资源、处理并发IO—所有这些都没有增加开发的复杂性。与Python/Java相比,在goroutine上运行一个函数只需要非常少的样板代码。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。