arrow 若葉プログラミング塾 > 知識の玉手箱 > ねこでもわかるIT用語辞典 >
用語  

フレームワークとは

 フレームワークとは「枠組み」のことだが、複数の人間が関与するシステム上で、ある概念を共有するために作成される。ガイドラインという言い方もあるが、ガイドラインのほうはおおよその目安であるのに対し、 フレームワークは、枠組みをつくりそこにはめ込むという、よりいっそう制約の強いものを指すことが多い。

 ITの世界でフレームワークといえば、広い意味では、たとえばデザインパターンのような、過去の実績から導き出される「成功する事例集」的なものも含むが、一般的には統合開発環境をいう。

 さて、この統合開発環境とは、具体的にはなにを言うのであろうか。

 すぐに思い浮かぶのはMicrosoftが開発者向けに提供しているVisualStudioであろう。これは、共通のGUIを持ち、複数のプログラミング言語をサポートし、デバッガやライブラリを含んだ、まさに「統合された開発ツール群」である。
 簡単にいうと、これさえあれば何でも作れる、というソフトウェアなのだ。
ただしVisualStudioはJavaをサポートしていないから(理由はTOPICS:巌流島の決闘を参照)、Javaで開発したいときには、Eclipse、JBuilder、VisualCafe、などといった他社の製品を使うことになる。 当然VisualStudioのライバル、C++Builderなどの開発環境を好む開発者も多く存在する。

 どんなものか知りたい向きには、評価版として期間限定で無料で使用できる製品もあるので、ダウンロードして使ってみると良いだろう。

フレームワークの利点

 使ってみてわかるのは、コンパイラだけの環境に比べて、格段に生産性がよいことである。その理由の主なものは3つある。

  1. デバッガの効用
  2. 関数などの自動リファレンス機能
  3. 豊富なライブラリや使用例

  製品によって優劣はあるものの、使用しない場合に比べて、開発に要する時間も、ソフトウェアの品質も間違いなく向上する。統合開発環境と、 バージョン管理ツールを併用すれば、ソフトウェアのメンテナンスはきわめて容易になる。

フレームワークの弊害

 だが、忘れてはならないのは、フレームワークは枠組みを規定する、という点だ。 文法的には正しくても、枠組みを外れたコーディングをしようとすると、恐ろしく厄介である。ときにはまったく不可能なこともある。
 品質を一定以上に保証する一方、ある限界をかけてしまうのがフレームワークなのである。 これはある種トレードオフの関係なので、どちらを取るのかは開発者の選択にまかされる。

 もうひとつのフレームワークの欠陥は、

   学習に向かない

ことである。
 関数やクラスの一覧が表示され、そこから選択すればコードにコピーされる機能は、たいへん便利である反面、いざその環境を離れると、なにもできなくなってしまう恐れがある。関数名やクラス名、パラメタの並びなどを覚える代わりに、上から何番目、などという風に体が覚えてしまうからだ。 これでは、別の開発環境を使うときに記憶が役立たないばかりでなく、コンパイラだけの環境では途方に暮れてしまうだろう。

 また、自分で調べる力、考える力を養う代わりに、ツールの使い方に堪能になっていくのである。

 納期厳守であるような実務で使用するのであれば、統合開発環境を選択するべきだ。だが、初心者が学習用に使用するのであれば、まずはコンパイラのみ、あるいはコンパイラ+デバッガのレベルがおすすめである。 理解のレベルがまったく異なるからである。統合開発環境を用いるのは、言語をマスターした後でもおそくはない。

統合開発環境(フレームワーク)
arrow 若葉プログラミング塾 > 知識の玉手箱 > ねこでもわかるIT用語辞典 >
KC