我注意到,前4个版本f6182e5abf5e,b66d0bf8da3e,ac3363d7e788,172d32922e72围棋源都来自很久以前Golang甚至提出,从1972年的最古老的存在。他们也都归功于AWK区名望的Brian Kernighan。它们似乎是hello, world用C实现的。这是复活节彩蛋还是有实际用途?
f6182e5abf5e
b66d0bf8da3e
ac3363d7e788
172d32922e72
hello, world
该线程提到:
敬意,复活节彩蛋,开个玩笑,请选择:)。还要注意相关提交的作者
所述线程将此提交作为起点,但也指出了Golang项目的实际第一次提交,以及Go规范的第一次修订。
前四次提交的(指定的)“作者”是Brian Kernighan。 罗伯·派克(Rob Pike)于1980年代在贝尔实验室(Bell Labs)与布莱恩(Brian)合作,因此这可被视为他职业渊源的参考。
这个复活节彩蛋的想法是为了说明Hello WorldC语言程序的演变:
Hello World
(请参阅最近的GopherCon 2014 hellogophers.slide 年 4月演讲 -Rob Pike )
hellogophers.slide
hg log -r 0:4 changeset: 0:f6182e5abf5e user: Brian Kernighan <bwk> date: Tue Jul 18 19:05:45 1972 -0500 summary: hello, world $ hg update -r 0 $ cat src/pkg/debug/macho/testdata/hello.b main( ) { extrn a, b, c; putchar(a); putchar(b); putchar(c); putchar('!*n'); } a 'hell'; b 'o, w'; c 'orld';
changeset: 1:b66d0bf8da3e user: Brian Kernighan <bwk> date: Sun Jan 20 01:02:03 1974 -0400 summary: convert to C $ hg update -r 1 $ cat src/pkg/debug/macho/testdata/hello.c main() { printf("hello, world"); }
changeset: 2:ac3363d7e788 user: Brian Kernighan <research!bwk> date: Fri Apr 01 02:02:04 1988 -0500 summary: convert to Draft-Proposed ANSI C $ hg update -r 2 $ cat src/pkg/debug/macho/testdata/hello.c #include <stdio.h> main() { printf("hello, world\n"); }
changeset: 3:172d32922e72 user: Brian Kernighan <bwk@research.att.com> date: Fri Apr 01 02:03:04 1988 -0500 summary: last-minute fix: convert to ANSI C $ hg update -r 3 cat src/pkg/debug/macho/testdata/hello.c #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; }
changeset: 4:4e9a5b095532 user: Robert Griesemer <gri@golang.org> date: Sun Mar 02 20:47:34 2008 -0800 summary: Go spec starting point.