go mercurial

¿Cuál es la historia detrás de la historia de revisión de Go?



mercurial (1)

Ese thread menciona:

Homenaje, huevo de pascua, broma interna, haz tu elección :). Nótese también a los autores de los compromisos en cuestión.

Dicho hilo hace referencia a este compromiso como punto de partida, pero también señala el primer compromiso real del proyecto de Golang, con la primera revisión de la especificación de Go .

El (supuesto) "autor" de los cuatro primeros cometidos es Brian Kernighan .
Rob Pike ha trabajado con Brian en la década de 1980, en los Laboratorios Bell , por lo que puede verse como una referencia a su origen profesional.

La idea de este huevo de Pascua es ilustrar la evolución de un programa Hello World en C:

(Ver más con esta reciente charla de GopherCon en abril de 2014 hellogophers.slide - Rob Pike )

Hola Mundo

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'';

Convertir a C

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"); }

Convierta a ANSI C propuesto

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"); }

Arreglo de última hora: convertir a ANSI C

changeset: 3:172d32922e72 user: Brian Kernighan <[email protected]> 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; }

Ir al punto de inicio de especificaciones

changeset: 4:4e9a5b095532 user: Robert Griesemer <[email protected]> date: Sun Mar 02 20:47:34 2008 -0800 summary: Go spec starting point.

Noté que las primeras 4 revisiones f6182e5abf5e , b66d0bf8da3e , ac3363d7e788 , 172d32922e72 de la fuente Go son todas anteriores a Golang, la más antigua es de 1972 . Todos ellos también están acreditados a Brian Kernighan de AWK-ward fame. Parecen ser hello, world implementaciones hello, world en C. ¿Es esto un huevo de Pascua o hay algún propósito práctico?