カレーの材料

敬愛するやねうらお氏の発言から。
ちょうどこの頃、cppllの方で「言語なんて道具だ」とか言っちゃってたので、ひょっとしてワタシヘンナコト言ッテマスカ?(^^;;状態でこわごわと読み進める。。。

やねさんの仰ることを自分なりに表現するなら、
「カレーを作ろうと思った時に、とりあえずニンジンとジャガイモと豚肉とカレールウを買ってくる」
という発想でいいんかお前?っちゅうことだろか。

とりあえずcppllでの自分の発言とは次元の違う話のようなので、そこはとりあえず胸をなで下ろしつつ…

しかし

人は、ひとたび「コンパイラは道具だから」というように、道具だと考えてしまうと、「いかにして使うか」ばかりを考え、「いかにして作るか」を忘れてしまう。コンパイラは、本来、必要に応じて自分で作るものだ。

職場のアレやソレを考えると妙に納得。

うちの職場では、ある仕事を成し遂げる過程で使われる「道具」を作る作業は、まったくといってよいほどに評価されない。
だからみんな、その場その場で場当たり的に作ったものを、最小工数で別の作業に援用すべく、さらに場当たりなコードを追加していく。
その「道具」は当座の作業をこなすことが重要だから、ドキュメントなんて残らない。リファクタリングなんてしない。だから人に伝授するときも、「道具」として「使い方」だけを教える。
すると、伝授された側は、その「使い方」に反しないようにして、その上で自分の作業用の場当たりな修正をする。すると…とても不思議なことが起こる。あるデータが変換されたのに、元に戻り、さらにまた同じ変換を施され、さらに元に戻り…。

でも一番問題だと思うのは、「使い方」さえ伝授すれば、プロセスはどうでもよいと思っている人が意外に多いことだ。
本当に教わりたいのは、あなたの書いた下手なプログラムの使い方じゃない。それが何をやっていて、どうやっていて、なぜそうやっているか、なの。先輩、分かってくれます?(^^;