我注意到Go源的前4个版本f6182e5abf5e
,b66d0bf8da3e
,ac3363d7e788
,172d32922e72
都是在Golang被提议之前很久就已经提出的,{{3 }}。他们也都归功于AWK成名的Brian Kernighan。他们似乎是在C. hello, world
实施。这是复活节彩蛋还是有一些实际目的?
答案 0 :(得分:18)
thread提及:
敬意,复活节彩蛋,里面的笑话,请你选择:)。请注意有关提交的作者
所述线程引用this commit作为起点,但也指出了actual first commit的Golang项目的first revision of the Go spec。
第四次提交的(被指控的)“作者”是Brian Kernighan Rob Pike在1980年的Bell Labs与Brian合作过,所以这可以看作是对他职业起源的一种参考。
这个复活节彩蛋的想法是用C:
来说明Hello World
程序的演变
(请参阅最近的GopherCon 2014年4月的演讲hellogophers.slide
- Rob Pike)
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.