##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0 要不等到 2013年4月10日 再来看看吧~~
或者先去看看 《Go编程基础》 或者 《Go Web编程》 也可以喔~~
如果不想学习,去逛逛 Golang中文社区 或者 Go语言学习园地 也不错哒。
#1.2 语言的主要特性与发展的环境和影响因素 ##1.2.1 影响Go语言发展的早期编程语言 正如“21世界的C语言”这句话所说,Go语言并不是凭空而造的,而是和C++,Java和C#一样属于C系。不仅如此,设计者们还汲取了其它编程语言的精粹部分融入到Go语言当中。
在声明和包的设计方面,Go语言受到Pascal,Modula和Oberon系语言的影响;在并发原理的设计上,Go语言从同样受到 Tony Hoare 的CSP(通信序列进程 *Communicating Squential Processes*)理论影响的Limbo和Newsqueak实践中借鉴了一些经验,并使用了和Erlang相同的机制。
这是一门完全开源的编程语言,因为它使用BSD授权许可,所以任何人都可以进行商业软件的开发而不需要支付任何费用。
尽管为了能够让目前主流的开发者们能够对Go语言中的类C语言的语法感到非常亲切而易于转型,但是它在极大程度上简化了这些语法,使得它们比C/C++语法更加简洁和干净。同时,Go语言也拥有一些动态语言的特性,这使得使用Python和Ruby的开发者们在使用Go语言的时候感觉非常容易上手。
下图展示了一些其它编程语言对Go语言的影响:
图1.3 其它编程语言对Go语言的影响
##1.2.2 为什么要创造一门编程语言
##1.2.3 Go语言的发展目标 Go语言的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡,从而使编程变得更加有乐趣,而不是在艰难抉择中痛苦前行。
因此,Go语言是一门类型安全和内存安全的编程语言。虽然Go语言中仍有指针的存在,但并不允许进行指针运算。
Go语言的另一个目标是对于网络通信,并发和并行编程的极佳支持,从而更好地利用大量的分布式的和多核的计算机,这一点对于谷歌内部的使用来说就非常重要了。设计者通过 goroutine 这种轻量级线程的概念来实现这个目标,然后通过 channel 来实现各个 goroutine 之间的通信。他们实现了分段栈增长和 goroutine 在线程基础上多路复用技术的自动化。
这个特性显然是Go语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存编程语言在这方面所存在的不足。
Go语言中另一个非常重要的特性就是它的构建速度(编译和链接到机器代码的速度),一般情况下构建一个程序的时间只需要数百毫秒到几秒。作为大量使用C++来构建基础设施的谷歌来说,这无疑从根本上摆脱了C++在构建速度上非常不理想的噩梦。这不仅极大地提升了开发者的工作效率,同时也使得软件开发过程中的代码测试环节更加紧凑,而不必浪费大量的时间在等待程序的构建上。