为什么越来越多的人偏爱go语言

qfhanru · 2019-04-23 16:55:06 · 4304 次点击 · 预计阅读时间 5 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2019-04-23 16:55:06 的文章,其中的信息可能已经有所发展或是发生改变。

如果你是一个开发者或者程序员,你大概应该听过Go语言或者Golang语言。当然,如果没有听过也没关系,看到这篇文章的同学,就说明你对Golang是关注的,只需要这一点就够了。今天来聊聊关于Golang的几个问题。

越来越多人偏爱Go语言的真相

可能你身边有程序员朋友,或者技术论坛里有人在谈论Go或者Golang,引起了你的注意,让你觉得越来越多的人喜欢Go语言。

作为一名负责人的技术普及人员,“越来越多”到底是多少,我去亲自做了数据收集,如下图:

  • 中国的Golang语言搜索指数 http://7xtcwd.com1.z0.glb.clouddn.com/golang_search.png
  • Google中的Golang搜索指数 http://7xtcwd.com1.z0.glb.clouddn.com/golang_googlesearch.png
  • Golang指数地区热度分布 http://7xtcwd.com1.z0.glb.clouddn.com/golang_hot_map.png
  • Golang搜索指数城市热度分布 http://7xtcwd.com1.z0.glb.clouddn.com/golang_map_city.png

看完上面的趋势图和热度城市分布,大家应该能看到了。不论是中文社区,还是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做布道者。 http://7xtcwd.com1.z0.glb.clouddn.com/go_father.png 这位作者就是布莱恩·柯林汉(Brian Kernighan,1942年-),如果你不熟悉他的名字,那你一定熟悉他的作品。他在36岁时写了《C编程语言》,73时又写了《Go编程语言》,可谓复制经典。

Golang给我的冲击和震撼

使用冲击和震撼着两个词,是因为我自己本身之前就是Java语言的使用者。因此,我这里还是要说一句,使用Java进行开发的同学,强烈建议大家接触一下Golang语言,接触后绝对能感受到Golang语言满满的善意。

  • 语法更简洁 http://7xtcwd.com1.z0.glb.clouddn.com/java_main.png http://7xtcwd.com1.z0.glb.clouddn.com/golang_main.png 上图说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语言现在是一个进入了青春期的小男孩,目前身体发育各项指标良好,有非常大的可培养潜力。 http://7xtcwd.com1.z0.glb.clouddn.com/golang_develpement.png

Go自己也在努力:新品牌

2018年4月26日,Go官方发布了Go语言新的品牌。新的品牌更为简洁,遵循简单而非复杂的核心理念。使用现代的斜体无衬线字体与三条简单的运动线相结合,形成一个类似于快速运动的两个轮子的标记,传达速度和效率。字母的圆形形状暗示了Go gopher的眼睛,创造了一个熟悉的形状,并允许标记,和吉祥物很好的进行配对。来感受一下新品牌的风貌:

http://7xtcwd.com1.z0.glb.clouddn.com/go_new_logo.png

这说明一个问题:这个年代连编程语言都注意自己的形象包装了!

当前现状

目前的现实情况是,相较于企业的需求来说,市场上Go程序员数量还很少;而且因为采用go开发业务的一般是中型公司或者大型公司,这就要求招聘的Go程序员开发这有一定的编程能力,因此很多公司都招不到自己满意的程序员,有的甚至在招聘其他语言时,会在JD上添加一条:愿意学习或者转向Go语言开发者优先。 http://7xtcwd.com1.z0.glb.clouddn.com/go%E5%BC%80%E5%8F%91%E8%80%85.png

聊到这里,不知道大家能否理解了:为什么越来越多的人开始偏爱Go语言。行文最后,再说句心里话:按照都知道的物以稀为贵的道理来说,如果你在观望是否学习Golang,那么现在是个好机会。


出处:千锋教育go语言教研部

作者:茹姐

备注:本文为作者原创内容,未经授权,禁止转载,违者必究!


有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4304 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传