如果你是一个开发者或者程序员,你大概应该听过Go语言或者Golang语言。当然,如果没有听过也没关系,看到这篇文章的同学,就说明你对Golang是关注的,只需要这一点就够了。今天来聊聊关于Golang的几个问题。
越来越多人偏爱Go语言的真相
可能你身边有程序员朋友,或者技术论坛里有人在谈论Go或者Golang,引起了你的注意,让你觉得越来越多的人喜欢Go语言。
作为一名负责人的技术普及人员,“越来越多”到底是多少,我去亲自做了数据收集,如下图:
中国的Golang语言搜索指数
Google中的Golang搜索指数
Golang指数地区热度分布
Golang搜索指数城市热度分布
看完上面的趋势图和热度城市分布,大家应该能看到了。不论是中文社区,还是Google 趋势的全球搜索趋势,都验证了“越来越多”人喜欢上Go这个事实。其次,Go中文社区的发展在全球来说还是非常活跃的,北京、深圳、上海更是城市热度分布的前三甲。
总之,上面的图片和文字说明翻译成人话就是:Go语言确实受到越来越多的人的关注。Go中国社区发展很快,想要学习和从事Golang语言的相关的职位,要去北上广深一线城市。
聊聊历史
目前大家熟知的是Go语言在2009年被公开发布。2012年,Go的创造者们发布了Go语言的1.0版本。但很多人并不清楚Go语言的来历和渊源,如果追溯到Go的萌芽时期,能够发掘到上个世纪,因此你可以知道,Go语言的产生绝不是心血来潮。
Go语言的前身名称为Limbo编程语言。Limbo是用于开发运行在小型计算机上的分布式应用的编程语言,它支持模块化编程,编译期和运行时的强类型检查,进程内基于具有类型的通信通道,原子性垃圾收集和简单的抽象数据类型。大家可以看到,Go语言中的模块化编程,包设计,静态语言编译检查,通道,结构体,自动垃圾回收以及现在基于Go做的很多微服务,分布式编程框架等,可谓处处透露着Limbo语言的影子。
再举一个例子,Go语言创造者之一是大神肯·汤普逊(Ken Thompson)创造了Unix系统和C语言,除此之外其还创造了UTF-8编码,而恰恰Go语言的编码格式正是UTF-8编码。所以,我们现在来聊Go语言,或者说聊任何一门语言,从语言的参与者和设计者的履历中也能发现很多有价值的信息。这样一位计算机界的大神,能亲自操刀设计Go语言,必然是可以学一下的。
这里插个话题,除了创立者之外,许多人都在为Go做布道者。
这位作者就是布莱恩·柯林汉(Brian Kernighan,1942年-),如果你不熟悉他的名字,那你一定熟悉他的作品。他在36岁时写了《C编程语言》,73时又写了《Go编程语言》,可谓复制经典。
Golang给我的冲击和震撼
使用冲击和震撼着两个词,是因为我自己本身之前就是Java语言的使用者。因此,我这里还是要说一句,使用Java进行开发的同学,强烈建议大家接触一下Golang语言,接触后绝对能感受到Golang语言满满的善意。
语法更简洁
上图说Java和Go最简单的语法编写实现,相较于Java,Golang没有任何的拖泥带水。
简单的并发实现Goroutine 和 channel 使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。单个 Go 应用也能有效的利用多个 CPU 核,并行执行的性能好。借用asta谢的话说:天生的支持并发是Go语言最大的特色。天生的基因和整容是有区别的,举个例子来说:大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?
丰富的第三方库如果是在3年以前写这篇文章,可能Golang的第三方库和社区还不是忒别完善。今天再来看Go语言的社区发展,标准库和第三方库目前已经丰富了太多。各位开发者在进行开发时不再需要自己重复造*,就可以直接拿来使用。比如:文本处理库、序列化库、数据库连接库、高并发框架、微服务框架、分布式框架、区块链应用等等非常多的Go语言的实现。
资料越来越全面现在,如果你想真的想学Go语言的话,已经可以在Github,中文社区,公众号,论坛等很多地方,看到一些Golang各式各样的应用和框架的资料,这为学习者们提供了最大的土壤,让初学者可以有迹可循。
未来可期移动互联网普及以后,直播,视频,社交,游戏等长足发展,未来的5G更是不可想象。作为一名程序员,肯定越来越多的听到了云计算、人工智能、大数据、分布式应用、物联网、区块链等这些在现在或者将要引领技术发展的专业名词。而Golang非常适合用来进行:服务器编程、分布式系统、数据库代理器、网络编程、内存数据库、云平台、微服务、区块链等这些领域或者行业的应用和实施。
Golang社区发展情况
下图是gihut网站监测统计的各语言的活跃代码库,以及代码库推送,被fork数以及新关注者的数据统计。从下图中可以看出,Go语言作为一个2009年刚刚诞生的语言,在活跃代码仓库的绝对数量上处于劣势,依次向后看,用来评价仓库fork数量,仓库活跃度,新增观看人数的指标上来看,Go语言呈阶梯状提升。打个比方的话就是:Go语言现在是一个进入了青春期的小男孩,目前身体发育各项指标良好,有非常大的可培养潜力。
Go自己也在努力:新品牌
2018年4月26日,Go官方发布了Go语言新的品牌。新的品牌更为简洁,遵循简单而非复杂的核心理念。使用现代的斜体无衬线字体与三条简单的运动线相结合,形成一个类似于快速运动的两个*的标记,传达速度和效率。字母的圆形形状暗示了Go gopher的眼睛,创造了一个熟悉的形状,并允许标记,和吉祥物很好的进行配对。来感受一下新品牌的风貌:
这说明一个问题:这个年代连编程语言都注意自己的形象包装了!
当前现状
目前的现实情况是,相较于企业的需求来说,市场上Go程序员数量还很少;而且因为采用go开发业务的一般是中型公司或者大型公司,这就要求招聘的Go程序员开发这有一定的编程能力,因此很多公司都招不到自己满意的程序员,有的甚至在招聘其他语言时,会在JD上添加一条:愿意学习或者转向Go语言开发者优先。
聊到这里,不知道大家能否理解了:为什么越来越多的人开始偏爱Go语言。行文最后,再说句心里话:按照都知道的物以稀为贵的道理来说,如果你在观望是否学习Golang,那么现在是个好机会。