Go是一门开源、并发支持、具备垃圾回收机制、编译性系统编程语言。在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点。被称为21世纪的C语言。Go语言已经成为云计算、云存储时代最重要的基础编程语言。c++
首先,Go语言的开源使得全世界的Go语言爱好者(Gopher)均可觉得Go的设计和改进作出贡献。Go是在语言级别而非库级别支持并发编程,更好的适应多核以及集群化开发。具备垃圾回收机制使得开发者不再用担忧内存泄漏问题。和C同样做为一种编译型系统编程语言保证了Go程序的性能。程序员
Go语言是以C语言为原型的,因此也被称为21世纪C语言。编程
大名鼎鼎的Docker从推出开始,就被各大公司普遍的应用在云计算、云存储领域,而Docker彻底使用Go语言实现的。七牛云是国内第一个核心服务彻底采用Go语言实现的云产品。2017年8月28日七牛云完成了新一轮10亿人民币的融资,本轮融资由阿里巴巴集团和云锋基金领投。仅仅从以上两个典型的例子来看,Go语言确实已经成为云计算、云存储时代最重要的基础编程语言。浏览器
1) 语法简洁并发
共25个关键字,与C语言同样,拥有简洁的语法。编程语言
2) 内置对并发的支持高并发
语言级别的支持并发处理,更加适合高并发和集群化的互联网时代。工具
3) 提供垃圾回收机制性能
这也是与C语言的重要区别,避免了c/c++程序员常常所面临的内存泄漏问题学习
4) 采用组合,摒弃继承
Go语言采用组合的方式实现面向对象的编程,这样就避免了传统的面向对象编程语言因为继承带来的复杂性。
5) 非侵入式接口编程
在Java和C#等面向对象编程中,为了实现一个接口,子类都须要从该接口继承,并须要导入定义接口的包。在Go语言中,无需从接口继承,只要实现该接口中定义的方法便可,也就无需导入定义接口的包。
6) 良好的项目管理
Go命令行工具完全的消除了项目文件的概念,彻底用目录结构和包名来推导项目结构和构建顺序。并且自动检查没有使用的包,提升编译速度。
7) UTF-8编码支持
原生态的支持UTF-8编码。任何字符均可以直接输出,甚至能够用UTF-8中的任何字符做为标识符。
总之,做为一门年轻的语言,Go适应时代发展的须要,既博采众家之长,又极力维持语言的简洁。
Go语言由Google公司的肯·汤普逊 、罗布·派克、罗伯特·格瑞史莫 三位大牛于2007年9月开始设计和实现,于2009年11月对外正式发布。
|
|
|
² Thompson:1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言。
² Rob Pike:曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操做系统计划的成员。他与Thompson共事多年,并共创出普遍使用的UTF-8 字元编码。
² Robert Griesemer:曾协助制做Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
新的语言层出不穷,老的语言也在推出新的特性,哪些语言能够脱颖而出?有人戏言,语言进入“拼爹”时代,从这个角度看,Go的背景仍是很强大的。