インターネット上にはいろいろなジョーク文書が出回っていますが、私が好きなもののひとつに「
The Evolution of a Programmarというのがあります。
私がこれを始めて見たのは、今はなきパソコン通信ホストの
アスキーネットPCS内にあった
junk.testという掲示板で、1994年のことでした。
その時私は大学院の修士2年でしたが、入社してから10年、開発実働部隊からマネージメントもし始める今となって、このジョークの面白さがより理解できるようになった気がします。
詠み人知らずなので、原作者は不明です。ネットニュースの
rec.humor.funny
に1990年に投稿されているところまでは分かりましたが、オリジナルがいつ頃作られたのかはまだ分かっていません。
全部を貼り付けると長くなるのでここでは一部を抜粋して紹介します。
HTML形式にして見やすくして、私のコメントをつけたものを
私のサイトに置いたので、興味のある方(特にプログラム開発者の方)は読んでみてください。きっとニヤリとするでしょう。
The Evolution of a Programmer
-----------------------------
===================
High School/Jr.High
===================
10 PRINT "HELLO WORLD"
20 END
===================
First year in College
===================
program Hello(input, output)
begin
writeln('Hello World')
end.
===================
Senior year in College
===================
(defun hello
(print
(cons 'Hello (list 'World))))
===================
New professional
===================
#include <stdio.h>
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}
===================
Seasoned professional
===================
(略: C++で書いてある)
===================
Master Programmer
===================
(略: VC++でOLEを使って書いてある)
===================
Apprentice Hacker
===================
#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;
===================
Experienced Hacker
===================
#include <stdio.h>
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}
===================
Seasoned Hacker
===================
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
===================
Guru Hacker
===================
% cat
Hello, world.
^D
===================
New Manager
===================
10 PRINT "HELLO WORLD"
20 END
===================
Middle Manager
===================
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
===================
Senior Manager
===================
% zmail jim
I need a "Hello, world." program by this afternoon.
===================
Chief Executive
===================
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout