已阅读
我们为什么要学习Go语言与cdn加速平台搭建?
在这篇文章中,我不会教你如何用Go语言打印出“Hello World”,我只想要告诉你,为什么要学习一门函数式编程语言(Go)。
大势所趋
在过去的几年里,有一种新的编程语言的热度在持续的上涨,他就是Go或者叫Golang。推荐阅读:《免费CDN服务|前端面经笔记》
如何证明Go的热度在持续上涨呢?下面来介绍一款工具:Google trend,它是google利用自身优势,通过对搜索关键词进行统计分析,根据单词频率分析特定时期某类事物发展趋势的一款分析工具。
下面我们来用Google trend来分析一下从2004发布至今Golang的发展趋势:
可以看出,从2004年发布,在2008年至今,Go语言的发展趋势一直处在稳步上升的阶段。
在全世界的上升趋势很好,但是并不代表在中国的发展趋势就好,就像微软的Net C#一样,在中国的发展趋势跟Java相比差了太多了。那下面我们就来看一下Go语言在中国区域的统计信息:
从上图可以看出,Golang在中国区域从2013年之后,也一直处于稳步上升的趋势。
除了Google趋势分析,下面我们来看看最近一段时间Go在TIOBE语言榜上的表现:
呃?怎么才十九名,好紧张,这是要被自己打脸了吗?先找几个理由挽回一下局面吧!
首先,Golang是一门非常年轻的语言,仅用十年时间就从世界上数以千计的编程语言中脱颖而出,发展速度迅猛。诸如Java、Python、PHP、Javascript都和我一样处在了奔三的路上,近30载的发展才有当前的生态与地位;
其次,Golang在2018年的最好成绩曾到达过前十名,这个成绩足以说明golang的流行程度。而且排名存在浮动也是很正常的事情,Golang这些年稳步的发展趋势还不能给我们足够的信心吗?
所以,通过以上的数据分析,我们得到了一些结论,Go语言的发展趋势很好,不过趋势很好,就认为稳赢,显然这是很不合理的。所以,我们还需要分析一些更层次的原因。
背景历史
Golang诞生于Google,有大厂背景,毕竟跟着巨人的脚步一般是不会走错方向的,就像google的Android开发。并且开发Go语言的最核心开发人员分别是Ken Thompson、Rob Pike、Robert Griesemer。
看到名字是不是一脸懵逼,不认识没关系,肯定是大牛中的大牛,下面介绍一下他们的成就你就可以开始膜拜了,
-
Robert Griesemer,参与开发了 Java HotSpot 虚拟机和Javascript的Chrome V8引擎;
-
Ken Thompson,C和B语言的设计者、Unix创始人之一,操作系统Plan 9的主要作者,1983年图灵奖得主;
-
Rob Pike,UTF8的主要设计者,与Ken Tompson为贝尔实验室的同事,共同参与了Plan9。而且Golang的logo,据说是囊地鼠,英文gopher,就是Rob Pike的妻子设计的;
都是如此这般牛人坐镇,可见golang的层次已经高出其他语言很多个台阶了。
说到这里,你有没有一点感觉到学习Go语言的必要性了,如果没有也没关系,下面我们继续看一下使用Go语言开发的优秀项目,相信看了下面这么多优秀的项目,你应该对Go语言增添几分兴趣,到时也成为一名大牛,改变互联网。
优秀项目
-
docker,golang头号优秀项目,通过虚拟化技术实现的操作系统与应用的隔离,也称为容器;
-
kubernetes,由google开发,简称k8s,k8s和docker是当前容器化技术的重要基础设施;
-
etcd,一种可靠的分布式KV存储系统,有点类似于zookeeper,可用于快速的云配置;
-
codis,由国人开发提供的一套优秀的redis分布式解决方案;
-
tidb,国内PingCAP 团队开发的一个分布式SQL 数据库,国内很多互联网公司在使用;
-
influxdb,时序型DB,着力于高性能查询与存储时序型数据,常用于系统监控与金融领域;
-
cockroachdb,云原生分布式数据库,继NoSQL之后出现的新的概念,称为NewSQL数据库;
-
beego,国人开发的一款及其轻量级、高可伸缩性和高性能的web应用框架;
-
caddy,类比于nginx,一款开源的,支持HTTP/2的 Web 服务端;
-
flynn,一款开源的paas平台;
-
consul,HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置;
-
go-kit,Golang相关的微服务框架,这类框架还有go-micro、typthon;
-
go-ethereum,官方开发的以太坊协议实现;
-
couchbase,是一个非关系型数据库;
-
nsq,一款高性能、高可用消息队列系统,每天能处理数十亿条的消息;
-
packer,一款用来生成不同平台的镜像文件的工具,例如VM、vbox、AWS等;
-
doozer:高速的分布式数据同步服务,类似ZooKeeper;
-
tsuru:开源的PAAS平台,和SAE实现的功能一模一样;
-
gor:一款用Go语言实现的简单的http流量复制工具;
如果上面这么多优秀项目还没有打动你,那下面我们再继续看看Go的应用领域,有没有跟最近最火的区块链、微服务、云服务、分布式有关。
答案当然是:当然有关
区块链
当前的两个主流区块链框架,分布式记账本框架hyperledger和以太坊合约框架go-ethereum都是使用Golang开发;下图是某招聘网站关于区块链职位要求技能的分析。
微服务
现在越来越多的项目会采用微服务架构,前面介绍的优秀项目中也看到很多go提供的微服务框架,如git-kit、micro等。中国最火的今日头条就是使用Golang构建千万级的微服务,如果你想以后进入今日头条,可以选择学习Go,但是学习Go并不能保证进今日头条啊!据我所知,今日头条对算法要求很高。
云服务
云服务,如国内著名的七牛云全站采用Golang开发;还有如盛大CDN、阿里云CDN等;很多的云平台基础设施如docker、kubernetes等为Golang开发;京东的消息推送与分布式存储也是如此;
分布式
诸如数据库中间件、代理服务等很多采用Golang开发,比如前面的介绍codis、cockroachdb、etcd等;
总结
说了这么多,你有没有一点想要开始学习Go语言的兴趣,如果有的话,那么接下来,我们一起在这里一起学习,一起进步,一起成功。