This commit is contained in:
Unknown
2013-04-08 19:02:21 -04:00
parent d3142ac829
commit 1638ed6475
2 changed files with 25 additions and 0 deletions

View File

@@ -7,3 +7,28 @@
#1.2 语言的主要特性与发展的环境和影响因素 #1.2 语言的主要特性与发展的环境和影响因素
##1.2.1 影响Go语言发展的早期编程语言 ##1.2.1 影响Go语言发展的早期编程语言
正如“21世界的C语言”这句话所说Go语言并不是凭空而造的而是和C++Java和C#一样属于C系。不仅如此设计者们还汲取了其它编程语言的精粹部分融入到Go语言当中。
在声明和包的设计方面Go语言受到PascalModula和Oberon系语言的影响在并发原理的设计上Go语言从同样受到 Tony Hoare 的CSP通信序列进程 *Communicating Squential Processes*理论影响的Limbo和Newsqueak实践中借鉴了一些经验并使用了和Erlang相同的机制。
这是一门完全开源的编程语言因为它使用BSD授权许可所以任何人都可以进行商业软件的开发而不需要支付任何费用。
尽管为了能够让目前主流的开发者们能够对Go语言中的类C语言的语法感到非常亲切而易于转型但是它在极大程度上简化了这些语法使得它们比C/C++语法更加简洁和干净。同时Go语言也拥有一些动态语言的特性这使得使用Python和Ruby的开发者们在使用Go语言的时候感觉非常容易上手。
下图展示了一些其它编程语言对Go语言的影响
![](images/1.3.influences_on_go.jpg?raw=true)
图1.3 其它编程语言对Go语言的影响
##1.2.2 为什么要创造一门编程语言
- C/C++的发展速度无法跟上计算机发展的脚步,十多年来也没有出现一门与时代相符的主流系统编程语言,因此人们需要一门新的系统编程语言来弥补这个空缺,尤其是在计算机信息时代。
- 对比计算机性能的提升,软件开发领域不被认为发展地足够快或者比硬件发展更加成功(有许多项目均以失败告终),同时应用程序的体积始终在不断地扩大,这就迫切地需要一门具备更高层次概念的低级语言来突破现状。
- 在Go语言出现之前开发者们总是面临非常艰难的抉择究竟是使用执行速度快但是编译速度并不理想的语言C++),还是使用编译速度较快但执行效率不佳的语言(如:.NETJava或者说开发难度较低但执行速度一般的动态语言呢显然Go语言在这3个优势之间做到了最佳地平衡快速编译高效执行易于开发。
##1.2.3 Go语言的发展目标
Go语言的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合达到完美平衡从而使编程变得更加有乐趣而不是在艰难抉择中痛苦前行。
因此Go语言是一门类型安全和内存安全的编程语言。虽然Go语言中仍有指针的存在但并不允许进行指针运算。
Go语言的另一个目标是

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB