Go语言是谷歌2009发布的第二款开源编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
一、为什么要选择学习Go语言呢?与其他语言的应用相比,它有什么优点呢?
1. 学习曲线
它包含了类C语法、GC内置和工程工具。这一点非常重要,因为Go语言容易学习,所以一个普通的大学生花一个星期就能写出来可以上手的、高性能的应用。在国内大家都追求快,这也是为什么国内Go流行的原因之一。
2. 效率
Go拥有接近C的运行效率和接近PHP的开发效率,这就很有利的支撑了上面大家追求快速的需求。
3. 出身名门、血统纯正
之所以说Go语言出身名门,是因为我们知道Go语言出自Google公司,这个公司在业界的知名度和实力自然不用多说。Google公司聚集了一批牛人,在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑。而且从Go语言的发展态势来看,Google对它这个新的宠儿还是很看重的,Go自然有一个良好的发展前途。我们看看Go语言的主要创造者,血统纯正这点就可见端倪了。
4. *高效:组合的思想、无侵入式的接口
Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持。Go语言支持当前所有的编程范式,包括过程式编程、面向对象编程以及函数式编程。程序员们可以各取所需、*组合、想怎么玩就怎么玩。
5. 强大的标准库
这包括互联网应用、系统编程和网络编程。Go里面的标准库基本上已经是非常稳定了,特别是我这里提到的三个,网络层、系统层的库非常实用。
6. 部署方便:二进制文件、Copy部署
我相信这一点是很多人选择Go的最大理由,因为部署太方便了,所以现在也有很多人用Go开发运维程序。
7. 简单的并发
它包含了降低心智的并发和简易的数据同步,我觉得这是Go最大的特色。之所以写正确的并发、容错和可扩展的程序如此之难,是因为我们用了错误的工具和错误的抽象,Go可以说这一块做的相当简单。
8. 稳定性
Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。那么为什么Go相比于其他程序会更稳定呢?这是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、gofmt、go test。
二、Go语言适合用来做什么?
- 服务器编程:以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
- 分布式系统:数据库代理器等。
- 网络编程:这一块目前应用最广,包括Web应用、API应用、下载应用、内存数据库。
- 云平台:google开发的groupcache,couchbase的部分组建云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。
Go语言成功的项目:
nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息
docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建
groupcache:memcahe作者写的用于Google下载系统的缓存系统
syncthing:开源的文件同步系统,它使用了其独有的对等*块交换协议,速度很快,据说可以替换BitTorrent Sync。
grafana:一款开源监控度量的看板系统,可以接Graphite、Elasticsearch、InfluxDB等数据源,定制化很高。
etcd:一款分布式的,可靠的K-V存储系统,使用简单,速度快,又安全。
hub:一款更便捷使用github的工具,包装并且扩展了git,提供了很多特性和功能,使用和git差不多。
influxdb:可伸缩的数据库,使用场景主要用来存储测量数据,事件点击以及其他等实时分析数据,用来做监控性能很不错。
caddy:快速的,跨平台的HTTP/2 Web服务器。
beego:国产开源的高性能Web框架,让你快速的开发Go Web应用服务,谢大主笔。
martini:也是一款不错的Web框架。
cayley:Google开源的图数据库,这是一个NoSql数据库,适合处理复杂的,但是结构化低的数据,适用于社交网络,推荐系统等。
作者:Linux地平线
链接:https://leetcode-cn.com/circle/article/Co0J4R/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。