エスペラントという言葉はその昔、ルドヴィコ・ザメンホフというひとがつくろうとした世界共通の言語体系のことを指すのだけど、例えばちょっと考え方を変えてみるといろんなところに国境を超えた共通言語ってあると思う。
コンピュータっていうのは特殊なモノでない限り基本的には0と1の連なりで命令を処理する。インプットも0と1。アウトプットも0と1。それはそれですごく美しい方程式みたいだけど、人間は0と1だけだと読むのがツライからある程度は人間語に翻訳するってわけ。それがプログラム。だからプログラムも世界共通言語なはずだ。
プログラミングの世界に入ったらまず習うこと、それは真っ黒な(もしくは真っ白かもしれないけれど)画面に
Hello world
たった一言表示させることだ。みんな最初に勉強するから、これを「世界一有名なプログラム」とか言ったりするひともいる。とてもシンプルでいい言葉だなあとか思うんだけど、実はコレがすげえ奥深い。
プログラムといってもいろいろあるわけで、例えば普通のウェブサイトHTMLっていうプログラム言語で記述されてて、Java Applet語では「Hello world」はこう書く。
<html>
<head>
<title>Hello World</title>
</head>
<body>
HelloWorld Program says:
<applet code="HelloWorld.class" width="600" height="100">
</applet>
</body>
</html>
これがXHTMLっていうやつになるとこう↓
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” lang=”en” xml:lang=”en”>
<head>
<meta http-equiv=”content-type” content=”application/xhtml+xml; charset=UTF-8″ />
<title>Hello, World!</title>
</head>
<body>
<p>Hello, World!</p>
</body>
</html>
これがコンピューターの基礎になる言語だと、データベースだと、JAVAだと、PHPだと・・・って具合だ。
今日の本題はプログラミングなのだけど、じつは全く使用に適さない難解なプログラムってのがあって、使えないからすごく無駄といえば無駄なんだけどその無駄でダメな感じが僕としてはウェブっぽく思えて好きだったりする。例えばね、さっきの「Hello World」。実は空白だけでプログラミングすることだってできるんです。こんな感じ↓
意地悪だけどこれ、多くの一般的なプログラミング言語では空白に相当する文字(スペース、タブ、言語によっては改行も)を使ってプログラミングしてて、ちゃんと作動するWhitespaceって名前が付いた言語。すごいっしょ。思いついた奴、相当な暇人だと思う。けど天才的な発想ですよね。タブとスペースの関係に色を付けるとこんな感じ。
あとこれもすごい。Pietっていう色をプログラミング言語にするもの。同じく「Hello World」って描いてます↓
あとこんなのとか
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
————.<++++++++.——–.+++.——.——–.>+.
こんなの
`r““““““`.H.e.l.l.o.,. .w.o.r.l.d.!.a
あとこんなのまである
`|
これ全部
Hello world
愛される練習問題ってイイよね。普段気がつかない部分に面白い世界はけっこうあるもんだと感心する。