GoLang语言如何?发展前景怎么样?
王佳怡
2022-03-26 21:12:27
共 1 个回答
雷钰玲
2022-03-30 16:57:27
作为一名刚入行go不久的后端开发工程师,个人觉得这门语言还挺不错的,语法简单,2天就可以上手做项目了!可能是我小白,我觉得go还挺不错的,尤其是在处理高并发场景,这个可能是优势。框架现在国内很多大公司都有在用go。比如滴滴,字节,很多业务也都是go。所以不必担心前景。
最后再说一句,别太在乎语言,更注重编程思想!
Go语言是Google大牛团队(Robert Griesemer、Rob Pike以及Ken Thompson)设计的一种静态类型、编译型编程语言,支持垃圾回收和轻量级并发,它于2009年11月诞生,一面世就以语法简单、原生支持并发、标准库强大、工具链丰富等优点吸引了大量开发者。经过10余年演化和发展,Go如今已成为云基础架构的标准编程语言,很多云原生时代的杀手级平台、中间件、协议和应用都是采用Go语言开发的,比如:Docker、Kubernetes、以太坊、Hyperledger Fabric超级账本、新一代互联网基础设施协议ipfs等。“钱景”一直处于上升通道。
Go也是一门特别容易入门的编程语言,无论是刚出校门的新手还是从其他编程语言转过来的成手,都可以在短时间内快速掌握Go语法并投入到Go代码的编写中。
go语言在国内尤其火,看看每年举行的gopherchina大会动辄上千人参会就可窥见一斑。
go语言还是一门“大小”皆宜的语言,无论阿里,滴滴,百度这样的大厂,还是初创互联网服务公司,go都算是即插即用 。
从学习成本、开发效率、运行速度和工程化实践几个方面来谈谈我对Go语言的看法吧
1.学习成本
个人认为,Go语言的设计原则是less is more,语法点少,语法简单,容易理解,学习成本低。Go语言从2009年诞生至今,已经过了11年了,但是它并不笨重,是属于轻量灵活的语言
2.开发效率
Go语言是静态强类型的编译型语言,可以在编译链接阶段发现代码的问题,而不用推迟在运行时,减少了开发过程中调试的成本
Go语言天生支持并发编程,内部支持协程,还提供了不少好用的并发控制支持,让并发编程变得更简单,轻松支持高并发。第一次接触到Go的并发机制时,我是被震撼到了。
Go程序虽然跟C/C++一样会被编译成二进制的可执行程序,但是,Go是提供垃圾回收的,换言之,就是不用开发者来管理内存了,这无疑大大提升了开发的效率
3.运行速度
Go程序是直接编译成二进制可执行程序,直接运行在操作系统之上,不需要经过虚拟机(如java的jvm),运行速度还是非常高的,但是由于要支持垃圾回收机制,运行速度相对于C程序还是有一点的逊色,但是相对于动态解析类的语言还是出色不少
4.工程化实践
Go语言静态强类型的编译型语言,无疑是适合工程化的,docker、k8s等云原生应用都是使用Go开发的。
Go1.12是之前,包的依赖管理不太完善,之后的版本支持go mod,也较好地解决了该问题
总体来说,我觉得Go是一门不错的语言,目前,国内不少公司(包括大公司和初创公司在内)都在推广和使用,在云计算、服务端等方向有不错的应用前景,还是非常值得学习和使用的
golang使用C族C系语法,很方便开发者上手
但是,各种功能严重不足,只适合服务器端
这样去思考这个问题:
程序员一辈子可能需要用到多种编程语言,所以有人提倡隔断时间学习一门新的编程语言。
等换工作,或内部换Team 时,有更强的竞争力。
Go、Rust,Julia 等新的编程语言都值得关注。
听tony大佬的没有错,go未来是会壮大的,毕竟听到go的人越来越多,却没有人说:“go是世界上最好的语言“,足以证明不会和php走一样的路
Go语言是Google大牛团队(Robert Griesemer、Rob Pike以及Ken Thompson)设计的一种静态类型、编译型编程语言,支持垃圾回收和轻量级并发,它于2009年11月诞生,一面世就以语法简单、原生支持并发、标准库强大、工具链丰富等优点吸引了大量开发者。经过10余年演化和发展,Go如今已成为云基础架构的标准编程语言,很多云原生时代的杀手级平台、中间件、协议和应用都是采用Go语言开发的,比如:Docker、Kubernetes、以太坊、Hyperledger Fabric超级账本、新一代互联网基础设施协议ipfs等。“钱景”一直处于上升通道。Go也是一门特别容易入门的编程语言,无论是刚出校门的新手还是从其他编程语言转过来的成手,都可以在短时间内快速掌握Go语法并投入到Go代码的编写中。go语言在国内尤其火,看看每年举行的gopherchina大会动辄上千人参会就可窥见一斑。go语言还是一门“大小”皆宜的语言,无论阿里,滴滴,百度这样的大厂,还是初创互联网服务公司,go都算是即插即用 。
作者:Tony Bai
链接: GoLang语言如何?发展前景怎么样?
来源:芝士回答
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
还是觉得c++有搞头
你不是杨超越,让真的杨超越来问我。
在当今流行的编程语言中,Go 语言名列前茅。Go 语言热情、有趣并以其快速高效的特点深受社区的青睐,但值得我们了解的还有更多。 我们对有关 Go 语言的可用信息做了更深入的研究,以期有更多发现。 我们的常驻 Go 专家、GoLand 的布道师 Florin Pățan 受邀根据调查结果提供他的见解,探明 Go 的现状。
约 110 万开发者
总体来说有 110 万专业的开发者 选择 Go 作为其 主要开发语言 。但如果我们将那些以其他编程语言作为主要开发语言,却同时使用 Go 的开发人员也算在内,这一数字就将高达 270 万
就其全球分布而言, 居住在 亚洲 的开发者最多,大约有 57 万开发者使用 Go 作为其主要开发语言。
专家分析
这符合我对 Go 开发区域分布的预期。亚洲的 Go 用户数量排名第一,我想这是因为那里有大量来自腾讯、阿里巴巴和华为等大公司的开发者。 这些公司通常都有很多开发者。
下图显示了我们在 开发者生态系统调查 2020 中调查的每个国家使用 Go 作为主要语言的开发者的分布情况(受访者最多可以选择 3 种主要语言)。 我国的开发者集中度最高,有 16% 的中国开发者使用 Go 语言。
我对我国位居榜首并不感到意外。 我本以为俄罗斯会排第二,美国会更高一些,也许会排进前五。
我国之所以排在首位,可能是因为那里的开发者非常多。 我知道的很多公司,比如 PingCAP、腾讯和华为都有很多开发者,能够支持并构建与微服务结合的内部工具、架构和后端服务。这一点似乎很关键。
我知道俄罗斯的 Go 语言社区相当出色,Go 在那里深受欢迎自然也不足为奇了。我对日本和乌克兰的结果很好奇,因为我没想到他们会这么高,我预计德国和印度会高一点。我记得早在四五年前,我在柏林的时候,我了解到的几乎所有创业公司都在使用 Go。
根据开发者生态系统调查 2020, 是专业开发者的前 前10大主要语言 之一,占 7% 的份额。
我认为 Go 从未停止发展。 人们通常不会以 Go 作为第一门编程语言,而倾向于从其他语言(如 PHP 和 Ruby)迁移到 Go,但据我所知,主要是从 C++ 和 C# 迁移到 Go。
与 PHP 相比,Go 的优势在于类型安全,因为 Go 是静态类型的语言,而 PHP 是动态的。 这意味着由编译器将完成大部分工作,确保您编写的代码将在运行时能够正常地编译和运行。 与 C++ 相比,Go 的优势在于简单。Go 语言中,一切都很直观。
总的来说,Go 的特点是在编写代码和运行时都具有很高的内置速度。通常,使用 Go 语言您可以没有任何特殊优化的情况下获得5-10 倍的性能提升,这对企业而言是很关键的生产力优势。同时它简单、易于上手,并且很容易替换现有项目中的微服务。
许多 IT 架构工具由 Go 构建而成,例如大型的 Kubernetes、Docker 和 Vault 等。 因此,尽管有许多公司在使用 Java,但这些公司也都会有一个团队执行 Go ,特别是此类项目的修补和维护。这或许也是一个 Go 语言正在逐步被更多的人所接受的原因,在公共基础架构和部署中使用得越多,Go 的使用增长就越快。 因此,我认为未来几年会有越来越多的人开始使用 Go,其比例可能会达到 15-20%,特别是考虑到开发者生态系统调查中的问题“您打算在今后 12 个月内采用/迁移到其他语言吗? 如果有计划,是哪种(哪些)?”其中 13% 的受访者回答了 Go。
Web 服务 是 Go 语言开发最受欢迎的领域,开发者生态系统调查 2020 结果显示,其占比达到了36%。
对于 Web 服务,我认为首要任务是创建快速的 API 服务器。它们不一定需要框架,所以您可以使用 Go 快速启动和运行。
我不认为这张图未来会发生太大的变化。我觉得未来 Web 服务的所占比例会增长,因为用 Go 语言来上手确实很轻松。
对于 "实用小程序",情况大致相同。可以处理大量数据的快速应用、小型实用程序应用或需要大量功能的一次性任务用 Go 语言都很容易实现。IT 架构的情况也说得通。采用 Docker 和 Kubernetes 的人越多,使用 Go 的人就越多,因为它们都是用 Go 编写的。 任何类型的 DevOps 工作都可以从 Go 中特别受益,因为 Go 提供了类型安全和更快的速度。 与基础架构的交互也变得容易 – Google, Amazon, 以及 Azure 等都有很好的SDK。 我想当未来泛型到来之后,“Libraries / Frameworks” 会有一定提升。
系统软件 – 我认为随着越来越多的人开始使用 Rust 这样的系统软件,它会开始下降。 数据库也一样。因此在未来充满商机的情况下,大概会占到 6% 左右。编程工具 – 我很惊讶它居然这么靠前,我十分好奇 Go 都打造了哪些编程工具。
根据开发者生态系统调查 2020, Go 程序员主要从事 IT 服务 ,其次是 金融和金融科技 云计算 / 云平台 , 和其他行业。
金融和金融科技。这是我所希望看到的,据我所知已经有相当多的银行已经采用或正在使用 Go 语言开发的基础架构。例如,英国的 Monzo 使用 Go 构建了他们的整个银行系统。云计算和云平台的情况也很合理,因为很多种应用程序都是以 Go 编写的。
移动开发,这是意料之外的。Go 并没有良好的移动开发的历史。如果有,我想人们有可能会用 Go 为移动应用制作 Web 服务或后端,但也仅此而已。
有几个行业我预计 Go 的使用率不会在短期内出现增长。例如那些基于机器学习的领域,那是 Python 的强项。Go 中的机器学习也在朝着更普及、更优良的方向前进,但我认为至少还要几年才能真正看到成果。
包管理工具
Go Modules 是 Go 开发者最喜爱的软件包管理器。根据 开发者生态系统调查 2020 ,其采用率从 2019 年的 41% 上升至2020的 82%。
我认为在某种程度上我们已经不必再问这个问题了,因为 Go Modules 已经被设置为标准默认模型,并且 Go 团队也想弃用 GOPATH。那时候其他的一切可能都会被淘汰。
根据2020 年和 2018 年的开发者生态系统调查,自 2018 年以来, Gorilla / Mux 标准库 始终是最常用的 Go 路由器。
标准库之所以如此受欢迎,可能是因为无论在 Reddit、Slack 还是其他地方,人们通常都会建议坚持使用标准库,不到万不得已不会换用其他东西。 我使用 gorilla/mux,因为在标准库的基础上更加抽象,而性能不会受太多影响。 这也可能是因为这是最接近标准库的一个,它使编写服务器更容易。总的来说,这种分布大概和预想的一样。
根据 2020 年和 2018 年开发者生态系统的调查,自 2018 年以来, Gin 的使用量几乎翻了一番,而其他 Web 框架基本保持稳定。
Gin 在 web 上如此受欢迎,可能是因为它是一个快速框架,也得到了很好的推荐。它同时也是最古老的框架之一。所以有很多现成的文档,很多用户已经在使用和推荐它。
使用内置测试的开发者比例从 2018 年的 64% 下降到 2020 年的 44%,而其他测试框架的使用量略有增长。
内置测试占比很高,是因为 Go 标准库有一个非常好的开箱即用的测试库。
内置测试的下降可能是因为越来越多的人转移自其他语言,比如 PHP,他们更倾向于重复他们已有的测试习惯。
IT 社区经常讨论 Go,Stack Overflow 就是其中之一。 我们从问答区的数据中找出最常与“Go”一同出现的标签。 其中,有 23 种工具和 2 种语言 -“MySQL”和“PostgreSQL”。 除了工具外,与其他主要语言也有共存。 纵轴表示标签出现的总数,横轴表示带有“Go”的标签的提及。
我料到 JSON 会成为一个问题。把 Go 的数据结构序列化和反序列化成 JSON 确实很不容易,这或许是 JSON 如此醒目的原因。 struct 之所以出现,是因为来自其他语言的人通常很难理解这个问题,除非他们来自 C++ 或 C 语言。
根据 Amazon Web Services 自身的普及程度,我预计 AWS 这里会有很多问题。现在为 Google App Engine 开发 Go 应用程序更简单了,之前还不是如此,所以才会有这么多问题。
总而言之,成为 Go 社区的一员让我感受到了这是一个非常有趣且包容的社区。 新人总会得到支持,也被鼓励提出问题和探索语言。 对于一般主题,最常讨论的是泛型以及一些语言的改进、编译器的改进等。
尤其是泛型,因为它是语言最需要的功能之一,很多工作负载都可以从这个功能中受益。
根据以上的数据,从开发者人群、开发地区分布、go语言特点、开发环境、开发工具等方面,我认为go语言的前景是很不错的。至于取代C语言我觉得应该目前不行或者也不会取代C语言。它们会在各自不同的领域发挥更好的效果。
另外,如果又想要学习Go语言的开发者,可以去我的Github看看,我整理了关于golang的学习资料,还算比较全吧! 欢迎大家给我Star!
目前没有泛型,很多地方都不能封装,只能复制粘贴,也不像c语言可以强转。
其他还好说。
发展前景不错,语法也简单,就是目前来说由于是新语言,各方面都不是很完善,所以当前使用场景仅适用在后端,希望未来它可以像node一样多端通吃。
互联网时代的C语言,但是业务能力不行,没有Java那么成熟
阅读原文