什么是GO语言?为什么GO语言是最有潜力的编程语言?
随着时代发展,编程语言种类越来越繁多,老牌强将势头仍然强劲,不过也很难抵挡住新兴编程语言的实力和发展。GO语言就是这样一个年纪很小的实力新星。
Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
Go语言的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。
GO语言目前的用户群体暂时并不大,不过用过的人对其评价很高,那我们来看看什么是GO语言吧。
0.什么是Go语言?
Golang (GO)是由Google在2009年推出的编程语言,是一门全新的、现代的、语法简洁并容易上手的编程语言,是具备独立的运行时库,就像C语言一样。
曾协助实现 Java 的 HotSpot 编译器和 JavaScript V8 引擎的Robert Griesemer,曾是贝尔实验室的 Unix 团队和 Plan9 操作系统成员,与 Thompson 一起创造了 UTF-8 字符编码的Rob Pike 以及技术圣殿的人物,创造了 C 语言和 Unix,获得了 1983 年图灵奖和 1988 国家技术奖的Ken Thompson。
据说这些大神们创建 Go 语言的初衷是:近十年来开发程序之难让我们有点沮丧。于是 Go 诞生了。
1.Go语言的优势?
可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。
静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。
语言层面支持并发,这个就是Go语言最大的特色,天生的支持并发,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?Go语言就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。
内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。
2.GO语言适合用来做什么
- 服务器编程,用Go语言来做很合适,比如处理日志、数据打包、虚拟机处理、文件系统等;
- 分布式系统,数据库代理器等等;
- 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用;
- 内存数据库,前一段时间google开发的groupcache,couchbase的部分组建;
- 云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台;
3.Go语言成功的项目
- nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息;
- docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建;
- packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者;
- skynet:分布式调度框架;
- Doozer:分布式同步工具,类似ZooKeeper;
- Heka:mazila开源的日志处理系统;
- cbfs:couchbase开源的分布式文件系统;
- tsuru:开源的PAAS平台,和SAE实现的功能一模一样;
- groupcache:memcahe作者写的用于Google下载系统的缓存系统;
- god:类似redis的缓存系统,但是支持分布式和扩展性;
- gor:网络流量抓包和重放工具;
文中若有表述错误的地方欢迎大家留言指正。
分享 IT 技术和行业经验,请关注-技术学派。