開発ツールの変遷と、現在の課題

2010年4月5日(月)
藤井 等

統合が本当に便利だったのか

開発ツールの機能は、必要度に応じて、ざっくり次のように分類できます。

  • (a)これがないと開発作業が成り立たないもの(エディタ、デバッガ、UIデザイナなど)
  • (b)便利で手放せないけれど、なかったとしても開発ができないというわけではないもの(コード入力支援、プロジェクト管理機能、メモリー・リーク検出ツールなど)
  • (c)あると便利だなと思うもの(各種ウィザード、リファクタリング、構成管理など)
  • (d)あったら使うかもしれないもの(コミュニケーション・ツール、虎の巻など)

市場にある多くのツールは、もはや成熟段階にありますから、多くの新機能は(c)や(d)に属していて、それをいかに(b)レベルまで高められるかといった点で啓蒙活動を行っています。しかし、これにも限界がありますから、視点を変えて(a)の機能を探します。

実は、こうした試みが、そもそもIDEの発明につながったのだと思います。コーディング、コンパイル、デバッグ。この別々の作業を1つのまとまりとして、「これがないと」とくくったのですね。

でも、あまりにもカバーする領域を広げすぎると、問題も出てきます。例えば、ツールが多機能になると、ツールの実行によってコンピュータのメモリーを占有してしまいます。あまりにも多くの機能を1つのツールに乗せ過ぎると、サイズが肥大化して起動にも時間がかかり、パフォーマンスにも影響します。毎日使う機能が、たまにしか使わない機能によって影響を受けてしまうのです。

また、開発作業を行う画面サイズにも限界があります。たくさんの情報が画面に表示されて便利そうに見えますが、どうも1個1個の情報が小さすぎて使いづらいというわけです。皆さんも、本当に見たいものがなかなか見つからずに苦労したこと、ありませんか。

終わらないプラットフォームとの調整

記事の冒頭でも触れましたが、最近のソフトウエアは本当に複雑になっています。以前も「ライブラリ」と呼ぶ、自分が作成したものではない機能モジュールを利用していましたが、今はそれが「フレームワーク」になっています。同じものを別の言い方をしているようにも見えますが、本質的な部分が違います。

ライブラリの場合、主体は作成するプログラム側にあります。プログラムは、いくつかの機能を「ライブラリを利用」して作成します。特殊な機能をライブラリに依存して作ったとしても、その依存個所は限定的です。

一方、昨今のフレームワークの場合、プログラムはフレームワーク上に作ることになります。どのフレームワークを選択するかで、プログラムの書き方が決まるのです。

例えば、Java開発でStruts(Apache Jakarta Projectがリリースしている、JavaでWeb画面を開発するためのMVCフレームワーク)を使ったとしましょう。Strutsを使う場合、アプリケーションの書き方はStrutsによって決まります。Javaを採用したとはいえ、ほかのフレームワークを採用したのとは違うノウハウや、書き方の流儀が必要になります。

フレームワークを利用した開発のメリットを語るとき、「生産性」と「再利用性」をごっちゃにしてしまうことがありますが、これはまったく別物だと思います。

フレームワークを利用する側(プログラマ)にとってみれば、とりあえず今のアプリケーションが効率よく組み上がればいいので、それを再利用しようとすると、まったく別の努力が必要になってきます。プログラマにとってみれば、再利用性なんて考慮せずに、今の要件にだけ合致するコードを書くほうが楽ですよね。

ところが、アプリケーション開発者にとってみれば、むしろ、屋台骨や裏方をフレームワークが担当してくれるので、面倒を見なければならない部分が限定されて「メンテナンス性」が上がることのほうが重要です。「受注のプロセスがちょっと変わりました」というときに、部品を差し替えるように特定部分だけをメンテナンスすればよいのであれば、すばやく対応できますね。

一方、フレームワークはフレームワークで、進化を続けます。ある瞬間で最適化されたフレームワーク上の成果物は、数カ月後、数年後には役に立たなくなっているかも知れません。開発ツールは、この現実に向き合わなければなりません。

開発者が使うツールは、そのときのフレームワークのトレンドに最適化されていることでしょう。でも、実際現場で抱えているのは、数年前のフレームワークで構築されたアプリケーションの改修案件だったりするわけです。最新技術を追いながらも、過去の資産と向き合う。開発ツールの難しい部分ですね。

さて、いろいろ難しい部分を挙げてきましたが、ツールの状況は、それほど悲観すべきものではありません。

エンバカデロ・テクノロジーズ 日本法人代表
千葉大学文学部行動科学科卒業。石油関連会社でGISなどの開発を経験したのち、1995年、ボーランドに入社。マーケティングとしてJava開発ツールJBuilderやVisiBrokerなどミドルウエア製品の立ち上げを行う。2008年7月、ボーランドの開発ツール部門を合併したエンバカデロ・テクノロジーズに移籍。2009年1月より日本法人代表を務める。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています