Go从1.0版本到现在,大致版本发布了五个,根据Go语言的几个版本,这里总结一下它的演进。
语法变化:几乎没有增加什么明显的语法特性,变化主要围绕:降低心智负担、细节完善、工程化;
Go本身迭代的核心是实现优化,主要围绕:性能、性能、性能!(重要的事情说三遍),性能的优化尤其体现在GC上,此外,还围绕更多的平台移植及更进一步的标准化,以强化社区约定。
Go和Java不一样的地方在于,Go保留了比较大的灵活性的因素。我个人对Go语言未来有这样的判断:Go介于Java和很多灵活性的语言之间。Go的语言特性,三年虽然发布了五个大版本,但其实没有什么语言的实质性变化,我见到有人喷Go时,认为Go语言太不思进取了,也有人认为Go社区对好的想法不思进取、不愿意吸收。
我认为其实不然,不止三年,哪怕是十年,Go语言的语法变化也别指望有大的改进,它基本上只会修补一些很小的地方,我觉得与其说是不思进取,不如说是它对如何写好代码这样的需求理解的自信,这是其他语言远不能企及的,也是我对Go最佩服的地方。
我为什么选Go?并不是因为Go有多好,七牛是做云服务的,云服务特别依赖并行支持,而Go可能是这世界上对并行支持的先行者。
最早七牛用Go的时候,Go 1.0还未发布,我当时对语法变化的判断不是特别高,这自信有点类似C,C到现在已经十几年了,但C到现在变过吗?几乎没什么改变,哪怕有C 99之类的,变化都很小。Go语言的想法和C很类似,我觉得很难预期 Go的语法特性变化很剧烈,但这恰恰是这个语言发展的魅力所在,因为你不用担心你写的代码三十年后会过时。从某种意义上讲,这是一种自信,它已经知道这个世界未来就应该这个样子。
Go语言的研究方向
大家都很关心Go语言未来会如何发展,我觉得三到五年内Go语言的主攻方向仍然是服务端开发,这不会有太大的变化。比如内建HTTP 2.0的支持(更多的支持会以独立的开源库的方式提供,未必直接包含在Go的发布包);另外,尽管Go已经开始支持桌面端(Mobile)的开发,但这仍然是探索性和试验性的,如果站在10年的维度上,Go语言会在桌面端(Mobile)大放异彩,占据重要地位。
很有意思的是,全球对Go最感兴趣的是中国,进一步来讲其实是华人,为什么?因为对Go感兴趣排第二的是香港,第三是新加坡,这些地方都是华人聚集地,所以Go语言在中国发展或者在华人圈发展非常不错,比在美国本土还牛很多(当然这仅仅是搜索,其实我是开玩笑的)。从开源项目的角度看,Go在国外发展的其实非常好,刚才所讲的语法特性,大家觉得发展好像很慢,但其实不然,因为它在1.0的时候就把后面的所有做的事情都想好了,后面所要做的就是优化。
下面关于Go,有一些公开的预测:
第一个预测,我最早在2012年新浪微博里提过,Go语言10年内一定会超过C和Java,变成排行榜第一的语言。今天大家可能会略相信,但在2012年的时候没有多少人会相信,即使今天讲出来,绝大部分人都会觉得太早,毕竟它还没有排进前五。
第二个预测,Go语言将在两年内制霸云计算领域。
第三个预测,Go将统治下一个 10 年。
接下来一个问题,非技术人怎么看Go?第一是国外的投资人怎么看Go,我觉得国外的投资人和中国投资人不一样,他们挺技术范儿的,他们认为"开源的Go语言将成为最持久、最有广泛影响力的开源系统之一"。另外,有商务开发人士认为,"这个世界上好像几乎所有新的、有趣的项目都是用 Go写的"。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/6981/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料