2013年2月18日月曜日

フレームワークを理解しようとしてはいけない

久しぶりに自分で iPhone アプリを作ってみた。簡単な機能を持ったものを3日かけて作った。いや、作ってたら3日でできた。意外と早かった。

そこで感じたのは、フレームワークそのものを理解する必要はないってこと。少なくとも、普通のプログラマは。

というかむしろ、フレームワークそのものを理解するのに労力をかけるのは、プログラマとしての生産性を下げるからよくないとさえ言いたい。

フレームワークを熟知するのは、フレームワークの開発者と、それを解説する人だけでいい。プログラマは、そういう人達が書いたサンプルコードから機能を理解し、それを手直しして自分のコードにすればいいのだ。

これはずっと学校で教えてきた自分のスタンスを崩すものだけど、現状では真実だと思うので仕方がない。

学校では、少なくとも私は、言語の文法とフレームワークはできれば熟知するもので、その上で作りたいものをつくるべき、と考えていた。カリキュラムもだいたいそのように組んできた。仕組みは分からなくていいから動くものを作れ、という方針の授業もやっていたけど、あくまで入門向けのやり方としてだった。

だから、学生が授業の課題や卒業研究のためのプログラムを、どこかから見つけてきたようなコードを手直しして作ろうとし、どうも動かないと言っている様を少々苦々しく見ていた。

でも現状ではそれしか手がないんだな。フレームワークは巨大になりすぎた。全体を把握するなんて一介のプログラマには困難。インタフェース通りに動くとも限らないし。それに、日々どんどん変わったりする。覚えたって無駄になりかねない。

ここは前向きに諦めよう。フレームワークを理解しようとしてはいけない。サンプルコードがあれば十分だ。より創造的な作業のために時間を使おう。