コーディングとプログラミングの違いがわかるだろうか。
与えられた目的を達成するためのコードを書くのがコーディング。
与えられた道具を使って何かできないか考えるのがプログラミング。
コーディングが作業であるのに対し、プログラミングは創作だ。
ゆの in languageと呼ばれる言語ハックの遊びが流行しているところだけど、これが流行するのはこれが正にプログラミングだからだと思うのだ。
ルールとしては
X / _ / X < :来週も見てくださいね!といったアスキーアートを含む一文を演算子オーバーロードなどを用いて実行可能なプログラムとして解釈させ
ひだまりスケッチ365 来週も見てくださいね!
とコンソールに出力させる。
ゆの in language
というもの。Rubyで作った場合は「ゆの in Ruby」と呼ばれるしJavaで作れば「ゆの in Java」*1と呼ばれる。言語仕様という道具を駆使してどうにかアスキーアートを実行可能なプログラムに仕立て上げるのだが、これこそ創作であってプログラミングなのだ。
そして、ここにあるのは「わかる奴だけ楽しめばいい」という秘密結社的な壁*2。普段あまり使われない言語の機能や表記法を駆使しているため、これを見てニヤリとできるためには結構高い壁がある。
逆に、だからこそその内側に入れている人間には至高の娯楽となっているわけだ。
ブックマークされているものだけでもすでに結構な数になる。多様な言語でAAをプログラムにする娯楽が伝播しているのがわかる。
*1:演算子オーバーロードがないJavaの場合、AA自体の実行によってコンソール出力することができない。ゆの in Javaは無理かと思っていたが言語中にAAを描くというぐらいのルールであればid:t_yano氏がhttp://d.hatena.ne.jp/t_yano/20080711/1215747589で実演してしまった。私も触発されてゆの in Java 真面目に考えてみた版を書いてみた。
*2:だからこそ楽しい。わからない奴に合わせて笑いのレベルを下げるのではなく、人をより分けて笑うには素養がいる笑いを楽しむという衒学的な娯楽なわけだ