ベニオフ氏のインタビュー記事に思う開発ツールモデルの変化
「マイクロソフトのビジネスモデルは終わっている~ベニオフ氏」という@ITのインタビュー記事。最近元気なセールスフォース・ドットコムですが、JBuilder でもプラグイン開発機能を搭載していたりして、ずっと注目していました。今回この記事を読んで、開発ツールの立場からの変化を考えてみました。
同社は以前にも過激な発言でマイクロソフトに牽制球を投げていますが、その話題性そのものではなくて、彼らが想定するモデル、つまりOSの上に構築されているアプリケーションレイヤーを販売するのではなく、オンデマンド形のサービスを販売するという変化に対する開発側の影響が興味深いところです。
古典的な開発ツールの枠組みは、OSやベースとなるフレームワークを前提として作られており、その上で「ありとあらゆる用途」に対応してきました。Delphi、C++Builder、Visual Studioなどは、Windows APIや.NET Frameworkを前提として設計されており、これらの前提環境のリリースに応じて、変更を余技なくされます。OSの縛りからはやや自由であるJavaについても、JDKや各種フレームワークのバージョンに依存します。
ツール提供側のジレンマはまさにここにあるわけで、以前にも触れたように、既存の開発資産の維持という観点からすれば、前提環境の変化に対応する「変化」に対してはマイナスのベクトルが、一方、新しい開発、次の世代をにらんだ開発となれば、最新へ対応する「変化」を求めるベクトルが強く働きます。
オンデマンド型のサービスが、こうした前提をヌキにして提供されているのであれば、このような相反するベクトルのジレンマからは解放されるように見えます。はたしてそのようにうまくいくでしょうか?
仮に、すべてのアプリケーションがオンデマンド型になるとしても、インフラに相当する部分のソフトウェアも必要ですし、オンデマンド型を支えるしかけがあちこちになければなりません。こうしたインフラ側の開発需要を抜きにしても、カスタムメイドの要求に応える、追加の開発やカスタマイズといった開発があります。このような開発では、たとえOSに縛られていなくても、そのアプリケーションのインフラという別の新しい縛り、依存性が存在します。インフラもどんどん進化していくでしょうから、ここで、これまで開発ツール提供側が抱えていたのと同じジレンマを抱えるようになると予想されます。
ただし、ひとつ重要なのは、このようなアプリケーション開発スタイルでは、それぞれの粒度が従来型アプリケーションよりも小粒になり、しかもその依存性が、OSをベースとしたヒエラルキーの中にはなく、もっとシンプルになっているという点です。この流れに対して、現存する開発ツールの多くは、複雑で重厚長大すぎる感があります。
ひょっとすると、こうした小粒のアプリケーションは、再利用性やメンテナンス性といった議論を通り越して、ある意味使い捨てることを前提に軽く開発していくべきなのかもしれません。だとすれば、開発ツールも、もっと手軽にこれらの技術を活用できるように変化していくべきなのかもしれません。
最近スクリプト言語に対するツールの議論をすることがあるのですが、アプリケーションのライフサイクルや粒度そのものの変化をしっかり捉えて、従来の枠組みにとらわれない考え方をしなければならないと考えます。