亿万级的 go与C高效混合编程!

今年是 Go 语言诞生的 8 周年,在这个特别的年,Go 语言官方博客发表的纪念刊文称,全球有大约 100 万 Go 开发者,Go 语言在 GitHub 的 2017 年最流行编程语言榜上排第九,也是 2017 年 GitHub 增长最快的语言,同比增长率 52%。

根据编程问答网站 Stack Overflow 的调查,Go 语言是唯一一个同时进入用户最喜欢编程语言和最想要编程语言榜单的前五。

很多小伙伴并不是很了解 GO 语言,让我们一起来看看他8年的辛苦历程!

1

什么是GO语言?

Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。

2

GO语言行业趋势如何?

Go 语言作为开源项目发布,已经 8 周年了。官方发表博客表示了对它的庆祝,并罗列了几项流行度趋势图。我们明显可以看出,Go 这几年的快速发展。

Go 在全世界拥有大约 100 万的 Go 开发者,它在 GitHub 的 2017 年最流行编程语言榜上排第九,Go 还以每年 52% 的增长率成为 GitHub2017 年增长最快的十种语言之一。在增长速度方面,Go 超越了增长率为 44% 的 Javascript,占据了它的位置。

在 Stack Overflow's 2017 年开发者调查中,Go 是唯一一个同时位列“最喜爱的五种语言”和“最想使用的五种语言”的语言。正在使用它的人们热爱它,还没在使用它的人们希望使用它。

在 2014 年,分析家 Donnie Berkholz 称 Go 为正在兴起的云基础架构的语言。到 2017 年,Go 已经成长为成熟的云基础架构的语言。如今,每一个云公司在其云基础架构中都有用 Go 语言实现的关键的组件,包括 Google Cloud,AWS,Microsoft 等等。

3

GO语言可以做什么?

根据谷歌著名的软件工程师——Go语言的设计人之一——Rob Pike的说法,它是用来开发”大型软件“的。

Pike说Go语言适合于很多程序员一起开发的大型软件,并且开发周期较长,支持云计算的网络服务:简言之,就是服务端软件。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。“(作为原贝尔实验室Unix开发小组成员,Pike对系统软件有相当的认识。)

3

GO语言的优势是什么?

部署简单。Go 编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。

并发性好。Goroutine 和 channel 使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。单个 Go 应用也能有效的利用多个 CPU 核,并行执行的性能好。

良好的语言设计。从学术的角度讲 Go 语言其实非常平庸,不支持许多高级的语言特性;但从工程的角度讲,Go 的设计是非常优秀的:规范足够简单灵活,有其他语言基础的程序员都能迅速上手。更重要的是 Go 自带完善的工具链,大大提高了团队协作的一致性。

执行性能好。虽然不如 C 和 Java,但通常比原生 Python 应用还是高一个数量级的,适合编写一些瓶颈业务。内存占用也非常省。

go语言虽然很多特性都被人诟病,语法层面乏善可陈,可是他毕竟解决了码农的痛点。迅速形成了一个强大的社区。强大的社区又会导致语言进一步强化自身,形成正反馈,想不成功都难。

本文来自企鹅号 - 黑马程序员视频库媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

锤子发布会,天知道服务器都经历了什么!

对于任何的活动,产品来说,服务器往往是最后一关,也是必须要过的一关,对于众多企业来说,为了不要让自己的汗水白流,为了让自己的产品顺利发布,一定要在上线之前对自己...

1404
来自专栏Jerry的SAP技术分享

SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成

今天的文章仍然来自Jerry的老同事,SAP成都研究院的张航(Zhang Harry)。关于他的背景介绍,请参考张航之前的文章:SAP成都研究院飞机哥:程序猿和...

1020
来自专栏Java技术栈

面试时如何介绍自己的项目经验?

在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

1982
来自专栏SDNLAB

SDN和NFV的基础,Intel如何思考

开发实施软件定义网络 (SDN) 和网络功能虚拟化 (NFV) 的解决方案仍然是企业和通信服务提供商 (CSP) 面临的一大挑战。适用于网络节点、网络控制和网络...

3495
来自专栏程序人生

漫谈工程师的三观

工程师要有技术观,产品观和数据观。 (1)技术观 什么是正确的技术观? 我觉得首先是对各种技术不排斥,兼容并蓄。初入行的工程师往往会陷入对某种技术的深深的迷恋而...

35311
来自专栏SDNLAB

SDN初创公司Plexxi及其产品介绍

编者按:随着软件定义网络(SDN)技术的不断发展,SDN业界相当多的创业公司变得越来越炙手可热。打铁还需自身硬,SDN初创公司Plexxi凭借完整优秀的SDN解...

3046
来自专栏SDNLAB

ONF开源白皮书:SDN解决方案案例——SDN/NFV

译者简介:蒋暕青@上海宽带技术及应用工程研究中心:SDN技术实践者,大四北上思博伦实习半年,现工作地点上海 6.1 CORD:将交换中心重新设计为数据中心 世...

2847
来自专栏大数据文摘

数字营销分析工具:美国今天,中国明天

1515
来自专栏达摩兵的技术空间

所谓“前端能力不足”

随着前端越来越多的被提上日程,用户对产品的体验度要求越来越高,产品除了实用的特性还必须满足方便用,美观,交互好,人性化等一系列的操作,谁的产品先做到这些,就能获...

804
来自专栏JAVA高级架构

阿里面试回来,想和 Java 程序员谈一谈

1384

扫码关注云+社区