Go語言源碼可追溯到1972 年?
周四就有地鼠提問,“Go 源碼中幾十年前的那些修訂是什嘛情況哦?”
原來,Go 代碼庫的最初四次修訂發生于 1972-1988 年,然后才有了 Go 語言規范的初稿。
其中,***次修訂 Revision f6182e5abf5e (1972) 是 Brian Kernighan《B 語言入門教程》第七節中的“hello, world!”示例代碼:
- main( ) {
- extrn a, b, c;
- putchar(a); putchar(b); putchar(c); putchar('!*n');
- }
- a 'hell';
- b 'o, w';
- c 'orld';
第二次修訂 Revision b66d0bf8da3e (1974) 將程序用 C 語言重寫了一遍,當年 Unix 內核的主要部分已經采用 C 重新編寫:
- main() {
- printf("hello, world");
- }
第三次修訂 Revision ac3363d7e788 (1988) 按 ANSI C 草案的標準加上了 #include 語句,并補上了漏掉的換行符:
- #include <stdio.h>
- main()
- {
- printf("hello, world\n");
- }
第四次修訂 Revision 172d32922e72 (1988) 則給程序加上了輸入原型與返回值:
- #include <stdio.h>
- int
- main(void)
- {
- printf("hello, world\n");
- return 0;
- }
(次年,標準 C89(ANSI X3.159-1989)誕生。)
這四次修訂重現了編程語言由 B 到標準化的 C 的發展史,也顯示了項目組的宏偉抱負。當然,Go 團隊本身也是大有來頭,其中就包括 B 語言與 Unix 作者 Kenneth Thompson 和 Plan 9 架構師 Rob Pike,他倆都曾在貝爾實驗室工作,并共同完成了 UTF-8 編碼的創立。(via cnet)在 Go 語言中,Ken Thompson 還彌補了沒能在 Unix 中“拼全‘create’”的遺憾。(via mattn)
Go 公布初期就提供了 cgo 命令以及 gcc 前端 gccgo,可以說 Go 本身就是對歷代成果 fork 而來的項目。
敬請期待 Go 的正式發布!
原文出自:http://www.guao.hk/
【編輯推薦】