技術の指向と初心者

なんでも日本人は、道具はシンプルにして、使う人の工夫でシンプルな道具をいろいろな用途で使いこなす、という特性があるらしい。
ほんとかどうかは知らないけど。
たとえばノコギリとか、西洋のんはいろんな形のものがあって、用途ごとに使い分けるけど、日本の大工のじいさんはシンプルなノコギリ1つで、持ち方や使い方を工夫していろんなものを切るそうだ。
実は西洋のじいさんもそうかもしれないが、そのへんはよく知らない。


俺の基本的な考え方はまさにそんな感じで、道具として使うコード片は極限までシンプルに、柔軟に、コンパクトにして、それをいろんな用途に使おうとする。
もちろん西洋の国にもそういう思想の人はいるし、たとえばSchemeなんかはまさにそれで、そっち方面の人にはとても人気がある。
別に日本人特有ってわけでもないかもしれない。
徹底的にシンプルにした仕様の道具を使うと、たしかになんでもできるが、逆に、何をしようとしても少なからず努力を必要とする。
シンプルなライブラリを使うときは、自分で書くコードが多くなるわけだ。
使うだけなら覚えることは少ないが、それで何かをしようとすると、周辺技術は自分で調べたり考えたりする必要がある。
そういうものを作って、初心者向けとして提供するのは、望ましいことなんだろうか。


逆に、用途別に特化した道具というのもある。
ゴルフのクラブみたいなものだ。
プロゴルファー猿みたいになんでも手作りのドライバー1本ってのはマンガの世界だけの話で、タイガー・ウッズでもちゃんと使い分けている。
ゲーム用ライブラリでも、さまざまなジャンルにより必要な機能は違うわけで、そういったいろいろな機能をクラスライブラリとして細かく分類して提供するのは、ある意味で非常にわかりやすく、初心者向けとも言える。
ただ、そういったものを作る人は基本的にレベルが高く、レベルの高い利用者を想定しているっぽいものが多い。
その点では初心者向けとは言いにくいが、それをもってして多機能ライブラリは上級者向けである、とは単純には言えないだろう。


とりあえずここまで。