起源及演进
最近十年来,C/C++在计算领域没有很好得到发展,并没有新的系统编程语言出现。对开发程度和系统效率在很多情况下不能兼得。要么执行效率高,但低效的开发和编译,如C++;要么执行低效,但拥有有效的编译,如.NET、Java;所以需要一种拥有较高效的执行速度、编译速度和开发速度的编程语言,Go就横空出世了。
go是一个Google公司推出的一个开源项目(系统开发语言),它是基于编译、垃圾收集和并发的编程语言。并将其开源并在BSD许可证下发行。
Go最初的设计由Robert Griesemer,Rob Pike 和Ken Thompson在2007年9月开始的,官方的发布是在2009年11月。2010年5月由Rob Pike公开的将其运用于google内部的一个后台系统。目前在google App Engine也支持go语言(目前仅支持三种:Java、Python和Go)
Go可以运行在Linux, Mac OS X, FreeBSD, OpenBSD, Plan 9 和 Microsof windows系统上,同时也支持多种处理器架构:I386, AMD64和ARM
(注:官方网站:http://golang.org)
Robert Griesemer:曾协助制作Java的HotSpot编译器和Chrome浏览器的JavaScript引擎V8
Rob Pike:曾是贝尔实验室的Unix团队和Plan9操作系统计划成员,与Thompson工同创造了UTF-8字符编码
Ken Thompson:是C语言和Unix的创造者。(1983年图灵奖和1988国家技术奖)
他们对系统编程语言、操作系统和并发有很深的理解。
主要特点
它最初的构想是作为一个系统编程语言,但目前也被用于像Web Server,存储架构等这类分布式、高并发系统中。当然也可以用于一般的文字处理和作为脚本程序。
Go的编译器作为Native Client被内嵌到Chrome浏览器中,可以被Web应用程序用来执行本地代码;同时Go也可以运行在Intel和ARM的处理器上。
目前已被Google集成到Google APP Engine中,在基于Google App Engine基础设施的Web应用中也得到了很好的应用。目前GAE中仅支持三种应用程序开发语言:Java、Python和Go。(注:GAE的链接)
但不适合应用到对实时性要求很高的系统中,因为Go的内存模型是基于垃圾回收机制和原子内存分配。
目前缺少的一些特性
目前Go对OO中涉及到的一些特点还没有很好的支持,但可能会在以后进一步完善。
- 没有函数和操作符的重载
- 不支持隐式类型转换, 避免产生Bug和迷惑。
- 不支持类和继承。
- 不支持动态代码加载
- 不支持动态库
- 不支持泛型
总结
Go语言的主要特点
- 强调简单、易学
- 内存管理和语法简单
- 快速编译
- 并发支持
- 静态类型
- 部署简单(go install)
- 自身就是文档(通过godoc将代码中的注释信息构造成文档)
- 开源免费(BSD licensed)
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/aaron_ye/article/details/8550398
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。