フレームワーク

フレームワーク論がソニックブームなので、遅ればせながら私も書いてみます。


私がフレームワークに求めることを一言で書くと、「レバレッジ効果」に尽きると思います。
レバレッジ効果は、FXとかワラントとかでよく出てくる言葉ですが、いうなれば1の入力でいくつの出力が得られるか、ということです。

レバレッジ(英語 leverage)とは、経済活動において、他人資本を使うことで、自己資本に対する利益率を高めること、または、その高まる倍率。


ここでいう他人資本とは「フレームワーク」となります。
自己資本の方は、自分の書くコードはもちろんですが、その他にも

動作環境を整える
規約、クラス名、アノテーション、設定を覚える
ライブラリの乗せ方や依存ライブラリのバージョンを調べる
機能や動作の調査をする
サンプルを見る、動かす、作る
・・・・


などになると思います。自己資本というか、投資額みたいな感じでしょうか。
この自己資本に対してどれだけの利益が出るかというのがポイントになります。


また利益は最終的に得られるものだけが重要ではなくて、利益が得られるまでの期間やタイミングなんかも重要で、

フレームワークとの出会い->使い始め->習熟->実用

みたいなステップの各所で、投資に対する利益が得られる事も必要なんかなと思います。
利益というとなんか現実的な話ですが、たとえば使えてる感とか、やれてる感というか、身についてる感というか、作業に対してレバレッジが効いてる感とか、そういった類のものも含みます。


例えばJSFなんかを引き合いに出すと、私は初期段階でどうもいいレバレッジ効果が得られないみたいで、今のところイマイチ採用にまで達してないのが現状です。
(ほんとはすごくいいレバレッジが得られるのかもしれないですが・・・・)


あとレバレッジという話で言うと、ある程度レバレッジが効いてくると、逆にフレームワークを使ってする仕事に快感を覚えるようになる、というのがあると思います。
体感の話なので具体的な数値は言えないですが、ある閾値越すと逆流現象が起こるというか、フレームワークの魅力に取り込まれるというか。
フレームワークに限らず、そういう「しんどいと思っていたものがレバレッジを生む何かのお陰で突然面白くなる逆流」みたいなのはこの産業にいるとよく感じるのですが、そういうのが発生するフレームワークは、いいフレームワークだなと思います。


なんかとりとめない感じになってきましたが、要は使う各段階でレバレッジ感を感じられて、かつ長く楽しめるスルメみたいなのがいいフレームワークがいいんじゃないかな、という事を言いたかったのです。