Let’s Go
就在昨天Google发布了它自己开发的编程语言Go,给我们这群光棍的节日增加了无限的乐趣,在脱光之余,喊了一句”Let’s Go!”。
首先让我们看一下Go的开发人员吧:
- Robert Griesemer
- Rob Pike :UNIX Team成员,《The Unix Programming Environment》的作者,UTF-8的开发人员
- Ken Thompson:Unix的作者
- Ian Lance Taylor:gcc/binutils大牛
如此多的高人大牛!
我们在来看Go的特点:
- simple
- fast
- safe
- concurrency
- fun
- open source
:Go程序的速度可以与c/c++相匹敌,其编译速度更是快的不得了,有人测试快过gcc -O2的的编译速度
类型安全,内存安全,指针安全(没有指针运算)
采用goroutines这样一个轻量级的通信系统,你能够同时运行几千个goroutines,保证没有栈溢出
建立快速,语法简洁,垃圾回收,任何类型的函数,运行时反射。就像流行的动态语言一样,但是有着极快的速度。
BSD License.
首先看到Go,我的第一反映是Google Obejct-oriented Language,但是看了半天语法,发现Go中根本没有类这个概念,在FAQ中发现:Is Go an object-orientted language? 回答是:Yes and No。 因为Go的类型和函数能够提供面向对象的编程风格经过它之中没有继承,同时Go提供了interface,这是一个更加有用和普通的类型(其实在java中interface也是比继承有用)。
由于Go是编译型语言,而其有提供了动态语言的很多特性,所以Go生成的应用程序很大,一个hello world就有624K,比C语言的helloworld大了100倍。这主要应该是由于Go的run-time是自包含在应用程序之中,而不像java有专门的jre。
Go的定位是系统编程,比如Web服务器、存储系统和数据库等,但也欢迎在其它方面的应用。
Go现在有Linux/Mac下的版本,同时支持i386/amd64/arm三种平台,开发环境的建立是非常的方便的,具体见install Go,想体验的同学得抓紧了,因为 G×F×W的魔爪已经伸向它了,昨天被墙了好几回了。
——————————————————————————-
ps:Go 的logo是一只金花鼠:Gopher,这可能就是Go的名字的由来,同时我发现原来plan 9( Ken Tompson跟Rob Pike等在bell搞的一个超越Unix的OS)的logo也是一只金花鼠,由此我们发现 Ken Tompson跟Rob Pike等对金花鼠是情有独钟~~~
来一张plan 9的截图:

还有Go里的连接器也都是从plan9里面修改过来的,这个从Go提供的文档可以看到
$godoc 6l
6l is a modified version of the Plan 9 linker. The original is documented at
http://plan9.bell-labs.com/magic/man2html/1/2l
Its target architecture is the x86-64, referred to by these tools as amd64.
It reads files in .6 format generated by 6g, 6c, and 6a and emits
a binary called 6.out by default.
并且所有的编译器的命名规则也跟plan 9里一模一样,下面是我从plan 9文档里找到的
0c spim little–endian MIPS 3000 family
1c 68000 Motorola MC68000
2c 68020 Motorola MC68020
5c arm little–endian ARM
6c amd64 AMD64 and compatibles (e.g., Intel EM64T)
7c alpha Digital Alpha APX
8c 386 Intel i386, i486, Pentium, etc.
kc sparc Sun SPARC
qc power Power PC
vc mips big–endian MIPS 3000 family
ps:据说Rob Pike, Ken Thompson搞这个Go的目的就是为了重写Plan 9。
竟然是编译型的
[回复]
risent 回复:
November 14th, 2009 at 19:03
@wiwe, 解释性已经有Python了,google没必要再弄一个了。
[回复]
看起来很牛
[回复]