ソフトウエア開発を支える開発環境の現在

2011年5月19日(木)
藤井 等

開発環境小史

前回、Delphiを使ったアプリケーション開発が、どれほど簡単に効率よく行えるかを紹介しました。コンピュータを取り巻く環境は、ますます複雑化、多様化してきており、そのような中で作るソフトウエアは、複雑な構造物にならざるを得ません。

開発ツールの歴史は、こうした複雑性をいかに軽減していくかといった挑戦の繰り返しといっていいでしょう。開発ツールのスタートは、一連の開発手順を効率化していくところから始まりました。つまり、コードを編集するエディタ、作成したプログラムをコンパイルするコンパイラ、そしてそれをテストするデバッガ、この3つを統合するという発明が出発点でした。「統合開発環境(IDE:Integrated Development Environment)と名づけられたこのツールによって、開発者はエラーリストを調べて、対応するコードを探すという面倒な作業から解放され、効率よくプログラミング作業ができるようになったのです。

現在の開発ツールは、ほとんどこの統合開発環境をベースにしています。例えば、Eclipseなどは、こうした統合開発環境の機能をオープンに利用できるようにしたものです。

図1:統合開発環境(Eclipse)(クリックで拡大)

このタイプの開発環境は、コード入力を効率化するための支援機能を強化したり、ウィザードと呼ばれる手順に従って項目を入力していくと必要なコードが生成されるような支援機能を強化して、より効率的に開発できるようにと改良を進めていますが、基本的にコーディング作業を効率化するという目的に変わりはありません。

一方、WindowsなどのGUIの登場は、開発スタイルに変化をもたらしました。これまでのフローチャートに記述できるような手続き型の処理ではなく、マウスをクリックしたとか、メニューを選択したというような、イベントに応じて処理を記述するイベントドリブン型のプログラミングが必要になってきました。

開発ツールは、単にコーディングを効率化するだけでなく、GUI開発に対応するために、ビジュアル開発機能を強化していきます。前回Delphiで見たようなマウス操作でユーザーインターフェースを設計し、イベントを定義していくやり方がそうです。このタイプの開発環境は開発手順からして違います。プログラムコードを1から10まで記述するのではなく、必要な部分だけ記述するようになっているのです。しかも、多くの操作をビジュアルツールが担っているので、プログラマが制御する必要があるのは、ごく一部です。

これを可能にしているのは、開発ツールのビジュアル開発機能ですが、これを支えるフレームワークも重要です。フレームワークは、C++などでもGUIアプリケーションを開発するために提供されてきました。しかしDelphiのすぐれていたところは、そのフレームワークをビジュアルツールで簡単に利用できるようにしたところでしょう。開発者は、あまりフレームワークを知らなくても、直感的に利用できる。しかも、C++などと同様に、機能強化や拡張もできる。Visual Basicの簡単さでC++と同じフル機能の開発ができるといわれたゆえんです。

IDEを使うケース、使わないケース

最近の開発では、ひとつの言語やツールで開発が完結するのではなく、いろいろな環境をつなぎ合わせて利用するようなプログラミングスタイルが広がってきています。例えば、RubyやPHPに代表されるようなスクリプト言語は、それだけでアプリケーションを作成することもありますが、大きなシステムの中では、いくつかのサブシステムをつなぐ役割、あるいは、そのシステムに対するインターフェースを担うことがしばしばです。

こういった新しいプログラミングでは、どうやら開発環境を使わない傾向にあり、もっぱらエディタのみというのが主流のようです。しかし、開発が大規模化、複雑化してくると、やはり同じ歴史をたどり、開発ツールによる効率化や、ビジュアルツールによる単純化が求められます。

PHPに関する開発スタイルの革新

PHPプログラミングは、エディタを用いるか、コーディングを支援する第一世代の統合開発環境によって行われています。動的なWebページを作るための補助としてPHPを用いるだけであれば、これで十分かも知れませんが、複雑なWebアプリケーションを作成しようとすると、それだけでは満足なプログラミングができません。

しかも最近では、より快適な操作性、レスポンスを求めるため、AJAXなども使う傾向にあります。そうすると、PHPアプリケーションであっても、JavaScriptを駆使した複雑なコードになってきてしまいます。

そんな中、Delphiと同じアプローチでPHP開発をビジュアル化したのが、RadPHPです。このツールは、Pure PHPの開発でありながら、マウスによるドラッグ&ドロップ、プロパティとイベントの設定というDelphiと同じ開発スタイルを採り入れています。RadPHPが面白いのは、JavaScriptやAJAXにも対応した点で、よりインタラクティブな操作を簡単に定義できるようになっています。

図2:RadPHP(クリックで拡大)

RadPHPの開発スタイルは、こちらのビデオを見ていただけると分かります。前回紹介したDelphiによる開発ステップと同じように、PHPによるWebアプリケーションを作成できることが理解できるでしょう。

このビデオで注目すべきは後半。Google Mapを使った例です。Google Mapは、ご存じのとおり、Googleが提供する機能ですが、これをコンポーネントというかたちでカプセル化して簡単に使えるようにしているのです。

図3:Google Map(クリックで拡大)

Google Mapコンポーネントは、PHPアプリケーションフォームの任意の場所に、任意の大きさで配置することができます。どこを表示するかは、Addressプロパティで指定するだけです。ビデオのように編集ボックスに入力した住所を表示してもいいですし、データベースから取得した住所情報を使って、周辺の地図を表示することもできます。

プロパティが、Google Mapとのやりとりをカプセル化し、単純な文字列の代入操作だけで、地図の表示を制御できます。また、大きさの変更などの処理についても、コンポーネント側で制御しているため、ユーザーは気にする必要がありません。

このカプセル化という概念は、Delphiを紐解く重要なキーワードになります。

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

連載バックナンバー

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

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

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

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