mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 12:32:21 +00:00
ch1-1: 规范图和代码的编号
This commit is contained in:
parent
2d963aeed2
commit
20842e5071
@ -4,9 +4,9 @@ Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个
|
|||||||
|
|
||||||
Go语言很多时候被描述为“类C语言”,或者是“21世纪的C语言”。从各种角度看,Go语言确实是从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想,还有彻底继承和发扬了C语言简单直接的暴力编程哲学等。图1-1是《Go语言圣经》中给出的Go语言的基因图谱,我们可以从中看到有哪些编程语言对Go语言产生了影响。
|
Go语言很多时候被描述为“类C语言”,或者是“21世纪的C语言”。从各种角度看,Go语言确实是从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想,还有彻底继承和发扬了C语言简单直接的暴力编程哲学等。图1-1是《Go语言圣经》中给出的Go语言的基因图谱,我们可以从中看到有哪些编程语言对Go语言产生了影响。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*图 1-1 Go语言基因族谱*
|
*图 1.1-1 Go语言基因族谱*
|
||||||
|
|
||||||
首先看基因图谱的左边一支。可以明确看出Go语言的并发特性是由贝尔实验室的Hoare于1978年发布的CSP理论演化而来。其后,CSP并发模型在Squeak/NewSqueak和Alef等编程语言中逐步完善并走向实际应用,最终这些设计经验被消化并吸收到了Go语言中。业界比较熟悉的Erlang编程语言的并发编程模型也是CSP理论的另一种实现。
|
首先看基因图谱的左边一支。可以明确看出Go语言的并发特性是由贝尔实验室的Hoare于1978年发布的CSP理论演化而来。其后,CSP并发模型在Squeak/NewSqueak和Alef等编程语言中逐步完善并走向实际应用,最终这些设计经验被消化并吸收到了Go语言中。业界比较熟悉的Erlang编程语言的并发编程模型也是CSP理论的另一种实现。
|
||||||
|
|
||||||
@ -24,17 +24,17 @@ CSP并发模型最经典的实际应用是来自爱立信发明的Erlang编程
|
|||||||
|
|
||||||
图1-2展示了Go语言库早期代码库日志可以看出最直接的演化历程(Git用`git log --before={2008-03-03} --reverse`命令查看)。
|
图1-2展示了Go语言库早期代码库日志可以看出最直接的演化历程(Git用`git log --before={2008-03-03} --reverse`命令查看)。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*图 1-2 Go语言开发日志*
|
*图 1.1-2 Go语言开发日志*
|
||||||
|
|
||||||
从早期提交日志中也可以看出,Go语言是从Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,它首先是C语言家族的成员,因此很多人将Go语言称为21世纪的C语言。
|
从早期提交日志中也可以看出,Go语言是从Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,它首先是C语言家族的成员,因此很多人将Go语言称为21世纪的C语言。
|
||||||
|
|
||||||
图1-3是Go语言中来自贝尔实验室特有并发编程基因的演化过程:
|
图1-3是Go语言中来自贝尔实验室特有并发编程基因的演化过程:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*图 1-3 Go语言并发演化历史*
|
*图 1.1-3 Go语言并发演化历史*
|
||||||
|
|
||||||
纵观整个贝尔实验室的编程语言的发展进程,从B语言、C语言、Newsqueak、Alef、Limbo语言一路走来,Go语言继承了来着贝尔实验室的半个世纪的软件设计基因,终于完成了C语言革新的使命。纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。
|
纵观整个贝尔实验室的编程语言的发展进程,从B语言、C语言、Newsqueak、Alef、Limbo语言一路走来,Go语言继承了来着贝尔实验室的半个世纪的软件设计基因,终于完成了C语言革新的使命。纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ CSP并发模型最经典的实际应用是来自爱立信发明的Erlang编程
|
|||||||
|
|
||||||
按照惯例,介绍所有编程语言的第一个程序都是“Hello, World!”。虽然本教假设读者已经了解了Go语言,但是我们还是不想打破这个惯例(因为这个传统正是从Go语言的前辈C语言传承而来的)。代码1-1展示的Go语言程序输出的是中文“你好, 世界!”。
|
按照惯例,介绍所有编程语言的第一个程序都是“Hello, World!”。虽然本教假设读者已经了解了Go语言,但是我们还是不想打破这个惯例(因为这个传统正是从Go语言的前辈C语言传承而来的)。代码1-1展示的Go语言程序输出的是中文“你好, 世界!”。
|
||||||
|
|
||||||
*代码 1-1*
|
*代码 1.1-1*
|
||||||
|
|
||||||
```Go
|
```Go
|
||||||
package main
|
package main
|
||||||
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Loading…
x
Reference in New Issue
Block a user