■ フレームワークとは
フレームワークとは「枠組み」のことだが、複数の人間が関与するシステム上で、ある概念を共有するために作成される。ガイドラインという言い方もあるが、ガイドラインのほうはおおよその目安であるのに対し、
フレームワークは、枠組みをつくりそこにはめ込むという、よりいっそう制約の強いものを指すことが多い。
ITの世界でフレームワークといえば、広い意味では、たとえばデザインパターンのような、過去の実績から導き出される「成功する事例集」的なものも含むが、一般的には統合開発環境をいう。
さて、この統合開発環境とは、具体的にはなにを言うのであろうか。
すぐに思い浮かぶのはMicrosoftが開発者向けに提供しているVisualStudioであろう。これは、共通のGUIを持ち、複数のプログラミング言語をサポートし、デバッガやライブラリを含んだ、まさに「統合された開発ツール群」である。
簡単にいうと、これさえあれば何でも作れる、というソフトウェアなのだ。
ただしVisualStudioはJavaをサポートしていないから(理由はTOPICS:巌流島の決闘を参照)、Javaで開発したいときには、Eclipse、JBuilder、VisualCafe、などといった他社の製品を使うことになる。
当然VisualStudioのライバル、C++Builderなどの開発環境を好む開発者も多く存在する。
どんなものか知りたい向きには、評価版として期間限定で無料で使用できる製品もあるので、ダウンロードして使ってみると良いだろう。
■ フレームワークの利点
使ってみてわかるのは、コンパイラだけの環境に比べて、格段に生産性がよいことである。その理由の主なものは3つある。
- デバッガの効用
- 関数などの自動リファレンス機能
- 豊富なライブラリや使用例
製品によって優劣はあるものの、使用しない場合に比べて、開発に要する時間も、ソフトウェアの品質も間違いなく向上する。統合開発環境と、
バージョン管理ツールを併用すれば、ソフトウェアのメンテナンスはきわめて容易になる。
■ フレームワークの弊害
だが、忘れてはならないのは、フレームワークは枠組みを規定する、という点だ。
文法的には正しくても、枠組みを外れたコーディングをしようとすると、恐ろしく厄介である。ときにはまったく不可能なこともある。
品質を一定以上に保証する一方、ある限界をかけてしまうのがフレームワークなのである。
これはある種トレードオフの関係なので、どちらを取るのかは開発者の選択にまかされる。
もうひとつのフレームワークの欠陥は、
学習に向かない
ことである。
関数やクラスの一覧が表示され、そこから選択すればコードにコピーされる機能は、たいへん便利である反面、いざその環境を離れると、なにもできなくなってしまう恐れがある。関数名やクラス名、パラメタの並びなどを覚える代わりに、上から何番目、などという風に体が覚えてしまうからだ。
これでは、別の開発環境を使うときに記憶が役立たないばかりでなく、コンパイラだけの環境では途方に暮れてしまうだろう。
また、自分で調べる力、考える力を養う代わりに、ツールの使い方に堪能になっていくのである。
納期厳守であるような実務で使用するのであれば、統合開発環境を選択するべきだ。だが、初心者が学習用に使用するのであれば、まずはコンパイラのみ、あるいはコンパイラ+デバッガのレベルがおすすめである。
理解のレベルがまったく異なるからである。統合開発環境を用いるのは、言語をマスターした後でもおそくはない。
統合開発環境(フレームワーク)
|