【独家】鲜为人知的Google go语言若干细节
来源:互联网 发布:杭州派购网络 编辑:程序博客网 时间:2024/06/06 05:43
Google于不久前发布了一门全新的开源编程语言名为Go。Go语言的设计最早始于2007年9月,设计者包括Robert Griesemer, Rob Pike和Ken Thompson,后来Ian Lance Taylor实现了基于GCC的go编译器gccgo,Russ Rox的加入推动了语言和库的实际可用性。它于2009年9月被官方正式宣布发布,兼容Linux和Mac操作系统。
Go是一门富有表达力的、并发的、具有垃圾回收功能的编程语言。
用Google的话来说:Go实验性地将C或者C++语言的性能、安全性与动态语言如Python的速度结合起来。代码的编译运行接近于C,甚至大规模的二进制编译只需要几秒钟。
Go中不包含的特性有:
1. 异常处理(Exception handling)
2. 类型继承(Type inheritance)
3. 泛型编程(Generic programming)
4. 断言功能(Assertions)
5. 方法重载(Method Overloading)
让我们来看一下Go语言的Hello World
package main
import fmt fmt // Package implementing formatted I/O.
func main()
{
fmt.Printf(Hello world/n);
}
除了断言类型(declarations type)之外,Go语言的语法与C语言的非常相似。但是Go的设计简化头文件的依赖管理,使用轻量级的类型系统,类型没有继承,支持垃圾收集和并发,从而提供在多核系统上设计系统软件的方案。其他语法上的不同还有:在if和for语句中,Go缺省了括号。
Go是并发的程序设计语言,不同于Limbo,它不提供任何内置的安全观念。Go有一些PI 演算(Pi calculus)的特性如通道传递(channel passing)。概括而言Go语言如下:简单、快速、安全、并发、快乐编程、开源。
希望Go语言成为支持多进程系统编程的优秀语言,保持清新和轻量来从事面向对象的开发设计,同时具备一些很棒的特性如闭包和映射(reflection)。
Go最初的设计者简介:
Robert Griesemer,参与设计Chrome浏览器中的Javascript执行引擎V8,V8采用即时编译技术和分代(generational)的stop-the-world垃圾收集机制;
Rob Pike乃大名鼎鼎的人物,曾在贝尔实验室工作,是Unix操作系统、Plan9操作系统、Limbo编程语言和UTF-8编码的主要设计者,写过愤青式的文章Systems Software Research is Irrelevant,还有两本书The Unix Programming Environment和The Practice of Programming;
Ken Thompson是图灵奖获得者,是Unix操作系统、Plan9操作系统、UTF-8编码和B编程语言(C的前身)的创立者之一。在google,Ken和Robert还设计过过用于大规模数据分析的Sawzall语言。
Ian Lance Taylor是GCC社区的超级活跃人物,是gold连接器和GCC过程间优化LTO的主要设计者之一,是Zembu公司的创始人之一。(文/王玉磊)
原文链接:http://www.programmingfacts.com/2009/12/04/facts-of-googles-go-programming-language/
- 【独家】鲜为人知的Google go语言若干细节
- Go logo Google的编程语言 Go
- 走进 Google 的 Go 语言
- 走进 Google 的 Go 语言
- Google鲜为人知的强大功能!
- google鲜为人知的小技巧
- Google鲜为人知的强大功能!
- Google的Go编程语言源代码(Windows)
- Google Go,不一样的语言特性
- 编程语言 Google Go 的初级读本
- 【热点】Google的Go语言速度提升
- go语言string遍历细节
- 关于全局变量的若干细节
- java编程的若干细节
- jsonData的若干细节问题
- 关于全局变量的若干细节
- google 鲜为人知的用法(转)
- google一些鲜为人知的搜索技巧-1
- 20100128 Lecture4_Monad Parser
- AMD欲借CPU和GPU整合优势对抗Nvidia
- DotNet关键知识点——WCF篇(一)
- DotNet关键知识点——WCF篇(二)
- mfc中滑动条的使用(实现和编辑框的关联)
- 【独家】鲜为人知的Google go语言若干细节
- DotNet关键知识点——WCF篇(三)
- ch1处理器管理
- 象棋外挂的一些思路
- 2010-01-28
- SQL中truncate table和delete的区别
- JAVA获取当前工程路径(非web工程)
- 如何利用“暗时间”
- 恋字宴 作者:郭敬明