¿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?