人間は、どのようなプログラミングを求めているのか?

 僕らがPythonRubyを使うべき本当の理由は、根源的には、野菜の好き嫌いがある理由と同じです。
 子供の頃、クラスに好きなこと嫌いなこがいた理由とも同じです。
 好きな女の子に意地悪ばかりしてしまう理由とも同じです。
 まだ終わらせていないゲームがあるのに新しいゲームを買ってしまうのとも同じ理由です。
 読みもしない本を大量に買ってしまい、いつか読もうと積ん読になってしまうのとも同じ理由です。
 作りたいものが思いついて作り始めるけれどもまた違うものが作りたくなって放りだしてしまうのとも同じ理由です。

 その理由は、根本的には「好き嫌いに根拠はない」「面倒なことは嫌い」「でも欲求は満たしたい」という移ろいがちな心理変化に起因します。

 一つのものを延々と食べ続けるより摘み食いが大好きだ、ということにも起因します。
 要するに、ちょっと触ってみて作った気になれる、というのはとても最高です。
 実用ベースに持って行くのは研磨を必要としますが、そうではなくて触ってみる、という行為は10分や20分、長くても一時間、もしくは一日で自分をその気にさせてくれます。
 そうした自らの欲求を満たすのに大変適切なのがPythonをはじめとしたLL言語であると言えます。
 例えば粘土をこねてそれっぽい形にするのは容易いです。が、それを出展できるレベルにするのには苦難を伴います。
 楽器をとりあえず楽譜に沿って演奏できるようになるのはそれなりの努力で達成できます。が、それを人前で演奏したり、評価されたりするレベルにするのには苦難を伴います。

 プログラム的に言えばGUIにしても何にしてもウィンドウに類する見た目を出すのは簡単です。
 テキストボックスを用意するのも簡単です。ボタンを置くのも簡単です。入力して、それを表示させるのも簡単です。DBに登録するのも簡単です。
 でも、それを組み合わせて何をするのか考えるのは大変難しいです。

 なので、人はそこを出来る限り回避しようとします。
 でも、充実感は得たいのでどうにか形に見えるくらい、いわゆる動く、くらいにまでは手になじませます。

 そうした、人の欲求を簡単に満たしてくれるのがLLであるとも言えます。いろんなモジュールがあって、様々な難解な事を隠蔽してくれて。手軽に様々な事をした気にさせてくれます。
 新しいものずきの人間の欲求を満たすのには最高のおもちゃです。

 自分が毎日本当に使うべき道具、例えばエディタ、ブラウザ、メーラーなどはそれぞれ専用の人が作ってくれ、また、フリーでも世界にはたくさん転がっているのでそれを使えばよく、多くの人に目の前にある鉄塊に火を入れて研磨するところまでいくモチベーションはありません。

 そんなことをしている時間があれば、もっと楽しいこと。遊んだり怠けたり眠ったり、そういうことに時間を使いたいと思うからです。面倒で苦しくてつらい事に時間を費やすのはごめんだからです。

 ただただ、手の中で簡単に充実感を得たい、というニーズとLL言語はとてもマッチしました。
 そうしてインストールも必要とせず、コンパイラおばさんと会話をする必要もないLL言語は最高のおもちゃとなりました。

 楽しく手軽に充実感を満たす、それが言語を使う目的となりました。
 人の心は移ろいやすく、一つのものをずっと使っていくというより、ちょっとずつ摘み食いする方が楽しいからです。
 
 だから、人は好き嫌いとか「どうでも良い理由」で言語を選ぶ「べき」です。
 「Rubyが嫌いだからPython」でも良いし「マイナが好きだからPython」でも良いし「はやっているからRuby」でも良いです。
 「はてながつかっているからPerl」「なんか便利そうだからPHP」でも良いです。

 自身の充実感をある程度満たしてくれて、自分は最高の道具を使っている! くらいに思わせてくれる、まさに自尊心をくすぐるような言語を人は求めています。
 ただ、そうして「好き嫌い」で選んだからにはオモチャを貶されるのには耐えられないので、喜んで論争には参加します。自分の遊んでいるオモチャが役立たずだとか、***より劣っているだなんて事を言われることは自尊心を傷つけられるからです。
 だから、言語の論争は絶えず言語がささやく言葉「騒げ騒げ、もっと騒げ」に従い、人は騒ぎ暴れ、つられて言語は人の優越感や劣等感を満たしながら、ただただ緩慢に人のニーズを満たしていくのです。

 でも、それはとてもとてもほほえましいことで、欲求を満たすために登場した言語の役割を無事果たしているとも言えます。
 そのお手軽感と、結果として出力されるものは多勢のニーズを間違いなく満たしているからです。
















 というようなことを考えていた時期が自分にもありました。