私が「俺様フレームワーク」を作るわけ

twitterでネタ振りしてて忘れてたんだけど、「はぶにっき」読んで思い出した。

世の中どうも「俺フレームワーク」に対する風当たりがキツい。どうやら元はベンダーが外注に出す時に、そのベンダー固有のフレームワークを使うことを要求することが少なくなく、またそれを使う理由があまりにショボいとか、フレームワーク自体がダメとかということが問題らしい。まぁ仕事させられたベンダーにしてみれば、そんなフレームワークの技術なんて陳腐化しやすくbad know-how化もしやすく、おまけにフレームワークがしょぼかったら、そりゃーやる気も落ちるだろうと理解もする。

とは言え、俺フレームワークを作っている身にしてみると、「とは言えなぁ」と思うこともある。

MONTSUQIは典型的な俺フレームワークだ。動けばちゃんと機能を果すけど、バグも少なくないし、そもそも機能がショボい。元にしたデザインも40年くらい前のメンフレームのものだ。もちろん現代に再実装したものだから、いろいろ改善もしてあるけど、根底にあるものは古い。いわゆる「今風」のものもあまりない。そういった意味では、いろいろショボいものを他人に押しつけているという点で、指弾されてもしょうがないだろう。

とは言え、わざわざ作っているからには、

作るだけの理由がある

のだ。その理由は以下のようなことだ。

  • たいていのフレームワークは言語依存している
  • たいていのフレームワークはweb専用
  • 開発始めた頃にはいいフレームワークがあまりなかった

というようなこと。

世の中のたいていのフレームワークは、特定の言語に依存している。EJBのフリーに使える実装はたいていJavaに依存しきっているし、RoRはRubyに依存しきっているし、ZopeはPythonに依存しきっているし… その理由は言われればもっともだし、そもそも言語的なインターオペラビリティなんて実はあまり使われない。なんだかんだ言っても、結局みんな「COBOL」を使いたがるものでもある。

でも、複数の言語が書ける人なら、「問題に合った言語」や「好きな言語」を使いたいものだろう。また、「いろんな人」に使ってもらいたかったら、「いろんな人の好きな言語」が使えた方が都合がいいはずだ。だから、フレームワークが言語依存しているというのは、私にとっては我慢出来ないことだし、人を頼む時でも「○○言語に限る」というのは厄介なことだ。だから、言語依存しないフレームワークが欲しかった。

また、世の中のフリーのフレームワークは、たいていwebで使うことを仮定している。最近はリッチクライアントなんぞが流行りつつあるから、ベタベタにweb依存することも減りつつあるのだが、プレゼンテーションとビジネスロジックを綺麗に切り離したフレームワークは意外に少ない。今でこそプレゼンテーション層はwebが主流になっているようだけど、将来はわからない。また、今であってもwebじゃ困るということも少なくない。

で、そういった条件をつけてもつけなくても、開発を始めた当時(10年くらい前だ)は同じようなフレームワークは存在してなかった。今なら条件に合うものもあったりするんだけど、それは「今なら」という条件つきだ。結局、

なかったから作る

というだけのこと。

そういったわけで、私は俺フレームワークを作り始めたし、今も作っている。いろいろ足りないところもあるけれど、導入ユーザ数は万に届くところだし、エンドユーザはもっと桁違いに多い。つまり実用になっている。もちろん足りない部分はこれからも追加して行くし、アプリケーションも増やして行く予定。