2. C++Builderが開発者にもたらすメリット
──そのような複雑さに対して、C++Builderを使うことでどんなメリットがあるのでしょうか。
高橋:C++でアプリケーション開発をする場合、特に問題になるのが、画面設計とビジネスロジックが分離しにくいという点です。設計段階でちゃんと作っておかないと後でゴチャゴチャになりやすい。C++Builderのいいところは、画面設計とイベントハンドラのロジックが最初から分離されているので、特に意識しなくても綺麗な構造を作れるという点です。データベースへのアクセス機能なども最初から整っているので、"アプリケーションを作る"という本質以外の部分でアレコレと悩む必要がありません。1つのIDEの中で完結した形で開発ができるようにするというのは、15年前に最初のバージョンがリリースされて以来、C++Builderが一貫して持っているポリシーです。
藤井:C++のハードルを高くしているのは、メリットを享受しようとするとデメリットの部分まで引き受けなければいけないことだと思います。GUIアプリケーションが主流になってその傾向は特に顕著になりました。その点、C++Builderであればメリットの部分だけを選択して利用することができます。部品を配置するだけでGUIが作れて、それをベースにC++の言語でロジックを追加すればアプリケーションができる。C++に関しては、そんなツールは15年前も、そして今でもC++Builderが唯一の存在です。昨年リリースしたC++Builder XE2からはMac OS向けのアプリケーションも開発できるようになって、その可能性はさらに大きく広がりました。
高橋:OSの違いはC++Builder側で吸収するので、開発者はどのOS上で実行されるのかを気にしないで開発することができます。ライブラリの使い方なども新しく勉強し直す必要はありません。開発者はC++Builderだけを知っていればいいわけです。
──OS側に新しいAPIが加わった場合、それをC++Builderで利用できるようになるまでにタイムラグなどは生まれないのでしょうか。
藤井:C++Builder自身の新しい技術のキャッチアップは極めて迅速だと自負しています。Windows APIに関して言えば、Windows VistaやWindows 7のときには、Visual Studioのリリースとほぼ同時にC++Builderもアップデートしています。それ以外にも、年1回コンスタントにアップデートを続けており、開発者の新しいニーズにも素早く対応できます。それに、もし新しい技術やAPIが登場したとしても、C++Builderのコンポーネントが既存のAPIとの違いを吸収してくれるので、プログラマ自身が変更を気にする必要はほとんどありません。既存のコードを新しい環境に適合させるコストは非常に低く抑えられるはずで、その点が大きなメリットだと言えます。
──XE2から加わったFireMonkeyについて教えていただけますか。
藤井:一言で言えば、高度なグラフィック機能を従来のVCLコンポーネントと同じように使うことができる新しいアプリケーションプラットフォームです。CPU/GPUネイティブの機能を活用してレンダリングを行うので、非常に高いパフォーマンスを実現しています。マルチプラットフォーム対応になっていますが、プラットフォームごとの違いはFireMonkeyがすべて吸収するので、開発者はターゲットとなるプラットフォームを意識する必要がありません。
最近では、ビジネスアプリケーションといえどもある程度のリッチなUI表現は必須になってきています。グラフィック効果がユーザーの使い勝手を左右することも珍しくないからです。例えば、表やグラフをビジュアルに表示したり、科学技術計算を3Dグラフィックで可視化したりといった利用シーンが考えられます。FireMonkeyを利用すれば、従来のVCLコンポーネントを使った開発とまったく同じように、そのような視覚的にインパクトのあるアプリケーションを構築することができるわけです。