dotkuwaの日記: 職人と研究者 1
料理人の漫画を(電書で)読んでいたら、
・職人とは無心に手が動く者のことを言う
みたいなセリフが有りました。
確かにプログラマーは、
・対象間のつながりにひたすら意を尽くす
存在で有り、最終的にクラス図とかにまとめると
しても、形になるまではひたすら手を動かし、
テストをし続ける者で、
職人と言われても妥当と思います。
それに対して研究者はコーディとナチュラルの
様に、洞察力をもってリードしていく存在なら
万事うまく行きます。
しかしソフトウェア開発の現実では、
・うまく行っている職人をまどわし、正しいことを
言っていたはずなのに、*改心させ*嘘を言わせ、
その後、自分がうまく行くを言う、マッチポンプの
様なことしかしない
存在です。
関数型と言いながら、結局はいまだ最先端で有る
オブジェクト指向の背乗りをしたくて仕方ない
だけとしか見えません。
ーーーーーーーーーーーーーーーーーーーーーーーー
そもそも、ソフトウェア開発で職人と研究者の
比喩を持ち出すのが問題なのかも知れません。
一般に言う(正調の)職人とは、
・物性の様に、第一原理の有る
対象を扱うものでした。
ですと、遠回りをしてでも第一原理を修めた、
研究者に職人が敵わないのは明白です。
しかし、ソフトウェア開発では、
その社会の置かれている現状が違えば、
(優先されるべき)原理も変わってしまう
性質をもった科学に支配されている対象
(ソフトウェア)を扱います。
コーディとナチュラルの対比では、(第一原理の
無い)紛争をどうにもできなかったのと同様に、
職人と研究者のモデルでは、ソフトウェア開発に
寄与出来ない可能性が有ります。
極論するなら、
CSを分離しソフトウェアの科学を文系に持っていく
のも有りかも知れません。
対象の社会の味噌っカスあえて自らを置き、その対価
として真実を得る、みたいなノリです。
「角度を付ける」 (スコア:1)
第一原理の無い科学が支配する分野では、
「角度を付ける」が可能で、それをする可能性を
常に考慮に置く必要があります。
角度を付けると、
・フォーカスが一番当たり、真ん中に見える部分
と、
・辺縁で、ほぼ見切れている部分
が出来ます。
第一原理が有れば、対称性も有るに違いなく、
いくら角度を付けても均一になるはずですが、
無ければ、角度に応じて見え方が変わります。
関数型の人は、それがオブジェクト指向プログラミング
と比べて、劣っているとは絶対に認めませんでした。
同等で有ると言っていました。
(ですので、転向される理由も無いはずです。)
ただ、
「角度を付ける」事を考えると、別の観点が見えて
来ます。
とにかく関数型は、
・コントローラーを辺縁で、ほぼ見切れている部分
に置く
角度を付ける手法です。対象とする問題で、
・その部分が大した事なく、しかも固定
の場合、辺縁に置くのは正当です。
しかし、そうでは無い場合は不当です。
圧縮解凍ツールや、音楽のデコードアプリなど、
均一で、使う側が特に困る箇所が無い(キャッシュ
カードが吸い込まれたら特に困るとか)場合、
コントローラーを辺縁に置くのは、正当ですし、
現実にそうしていると思いますが、
使う側が特に困る箇所が有る場合は、別の
角度の付け方(オブジェクト指向とか)が、
有利になる事も(第一原理の無い科学に支配されて
いる分野では)あり得るのでは無いでしょうか?