そこにプライドはあるか

プログラマは大工と棟梁だという話をしていて、(それはとても広い意味だけれども)
僕は「ならプログラマは幾つかの言語を使えるべき」と言った。

何故かというと、
多くの場合「Javaが書けます」ということは何も技術を表さず、
StrutsのActionだけ書けます。LogicやServiceなんて考えたこともありません」
という人でも「Javaが書けます」っていうことになってしまう。

でも、
Perlが書けます、Javaが書けます、C++が書けます」
という人がそうしたレベルに止まっていることは少ない。
例え、書いたことがなくてもあっという間に書けるようになってしまう。


大工のような仕事でいえば「Actionが書けます」は「僕は釘を打つことしかできません」と同レベルだと思う。
もちろん、大工の中にはたいていの工程を理解しているものもいるだろう。
そして、棟梁はそんな大工と一緒に建物をつくる。


様々な工程があるなかで、
釘しか打てない大工を棟梁はどう扱えば良いか困るだろうし、
釘を打たせることすら危なっかしく、
棟梁がいない場所でうった釘が問題になり、
あとから棟梁や他の大工が釘を打ち直さなければならないかもしれない。


そんな大工は本当に必要なのか?
棟梁のため息を増やすことは「仕事ではない」。


要するに「釘だけ打てます」という人よりは
「ノコギリも使えます」
「カンナもかけられます」
「木材の知識があります」
「コンクリートの知識があります」
「建設の基礎も知っています」
という方が格段に良いだろうと推測される。

……が、
釘しか打てないとしても、常に一流の釘打ちであれば良いかもしれないという意見もある。
しかし、釘しか打てない人間がどうやって一流の釘打ちになれようか?
釘打ちでいたいと思った人、そこにプライドはあるか?


そうした多角的な見識がある方が確実に良い開発ができるとは「限らない」が、
良いものを作れる確率は飛躍的にあがるのではないだろうかと考える。


棟梁も決して完璧ではなく時に大工と話すことで正しいものを模索できる。
仕事であれ、趣味であれ、刺激になる。
そうするには棟梁だけの知識ではなく、それを支える大工の知識が不可欠だ。


各種言語で名をはせた人は「その言語だけしか使えません」という人は少ない。
いても稀有だろう。
なので、僕たちは幾つかの言語を学ばなければならない。
それがプログラマに必要な矜恃ではないだろうか。