为什么那么多人用GO?GO语言的优势在哪里?-阿里云开发者社区

开发者社区> 旺仔大战肥五花> 正文

为什么那么多人用GO?GO语言的优势在哪里?

简介: Go语言最早并不是一个Google的正式项目,而是作为一个“20%”的项目出现。直到2009年,它被设计成一种系统编程语言,用于具有Web服务器、存储集群或类似用途的大型中央服务器的系统编程语言,目前Go Team有稳定的发布周期,大约半年一个新的版本,目前最新为1.9版本。
+关注继续查看

Go语言最早并不是一个Google的正式项目,而是作为一个“20%”的项目出现。直到2009年,它被设计成一种系统编程语言,用于具有Web服务器、存储集群或类似用途的大型中央服务器的系统编程语言,目前Go Team有稳定的发布周期,大约半年一个新的版本,目前最新为1.9版本。

对于高性能的分布式系统,GO语言无疑比大多数其他语言更高效。它提供了大量的并行支持,这对于游戏服务端的开发而言是再好不过了。

传统的语言如C++,大家花费太多时间来学习如何使用这门语言,而不是如何更好的表达写作者的思想,同时编译花费的时间实在太长,对于编写-编译-运行这个链条来说周期太长。动态语言如Python,由于没有强类型的约束,很多问题需要在运行时发现,这种低级错误更应该交给编译器来发现。

在人力成本越来越高、机器越来越便宜、机器的性能越来越厉害、想要在开发效率和运行速度上达到平衡的趋势趋势下,Go语言诞生了。

我们先来对比一下go语言与其它开源语言比较具有哪些优势?

与C++比,go的开发效率高,具有清晰的依赖管理和全自动垃圾回收机制,代码量大幅减少。

与Java比,更简明的类型系统。

与php比,go在性能上占有明显优势,且通用性和规范性更好,更适合构建大型的软件。

与python比,go在性能上占有明显优势,因为解释型语言与编译型语言在运行速度上不可同日而语,另外go在语法简明和类型系统设计上优于python。

选择GO语言,主要是基于两方面的考虑

执行性能 缩短API的响应时长,解决批量请求访问超时的问题。

在Uwork的业务场景下,一次API批量请求,往往会涉及对另外接口服务的多次调用,而在之前的PHP实现模式下,要做到并行调用是非常困难的,串行处理却不能从根本上提高处理性能。而GO语言不一样,通过协程可以方便的实现API的并行处理,达到处理效率的最大化。依赖Golang的高性能HTTP Server,提升系统吞吐能力,由PHP的数百级别提升到数千里甚至过万级别。

开发效率 GO语言使用起来简单、代码描述效率高、编码规范统一、上手快。

通过少量的代码,即可实现框架的标准化,并以统一的规范快速构建API业务逻辑。 能快速的构建各种通用组件和公共类库,进一步提升开发效率,实现特定场景下的功能量产。

Go语言虽然没有得到广泛的应用,但由于高效、易学、易用、易维护的特性,十分适合开发大型软件,很多大公司都在使用,如Google、Facebook、腾讯、百度、阿里巴巴、京东、小米以及360、美团、滴滴以及新浪等!快来学起来吧~

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
我们为什么会删除不了集群的 Namespace?
阿里云售后技术团队的同学,每天都在处理各式各样千奇百怪的线上问题。常见的有网络连接失败、服务器宕机、性能不达标及请求响应慢等。但如果要评选的话,什么问题看起来微不足道事实上却让人绞尽脑汁,我相信肯定是“删不掉”的问题,比如文件删不掉、进程结束不掉、驱动卸载不了等。这样的问题就像冰山,隐藏在它们背后的复杂逻辑,往往超过我们的预想。
1811 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9791 0
调用Thread类的方法:public final String getName() 为什么得到的线程对象的名称默认是:Thread-0、Thread-1、Thread-2、...呢?
调用Thread类的方法:public final String getName()为什么得到的线程对象的名称默认是:Thread-0、Thread-1、Thread-2、...呢? 1 package cn.
957 0
为什么那么多公司都钟爱Flutter?
1. 中小公司维护一个App的成本好高呀,有没有办法可以降低成本的可能性,但是又不想让代码缺少维护? 2. 有没有方案可以实现一份代码可以运行在多个平台,减少沟通成本呢?
491 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13517 0
代码为什么那么乱! 换种方法学面向对象
我们经常会为一个问题寻找多种不同的解决方案。当你评估不同的算法和数据结构时,通常会设计几种不同的方案,它们在性能和内存的使用上不尽相同。通过评估不同的方案,最终合理地优化应用程序,这是一种重要的面向对象设计技巧。
5216 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7176 0
8
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载