マイクロソフトの代表的なWindows開発ツールであるVisual C++は今後,どのように進化していくのか。米MicrosoftのVisual C++ジェネラル・マネージャ,Aaron Contorer氏にインタビューした。

―米国で今夏に出荷予定の次期Visual C++(VC++6.0)の特徴は。
 VC++6.0には数多くの新機能が追加される。例えばOLE DBを使った高速なデータベース・アクセス機能を簡単に実装できるようになる。また,Dynamic HTMLやInternet Explorer 4で新たに加わったコントロールもサポートする。COM(Component Object Model)コンポーネントのプログラミングも簡単になる。これらの機能のうちいくつかは,97年に公開したVC++ Technology Preview for Internet Explorer 4.0よりも強化している。当然,VC++6.0のリリースと同時にMFC(Microsoft Foundation Classes)やATL(Active Template Library)もバージョンアップする。

―COM+など,Windows NT5.0の新機能への対応についてはどうか。
 リリースは,まずVC++6.0,続いてNT5.0という順番になる。したがってVC++6.0では,NT5.0の新機能には対応しない。

―それではいつ対応するのか。
 COM+がリリースされれば,すぐにVC++でサポートする。NT5.0の他の機能についても同様だ。多くのユーザーがVC++を支持する理由の一つは,VC++が最新のプラットフォームを常にサポートしてきたことにある。

―どのような形で対応するのか。アップグレードか,サービス・パックやSDKのWebでの配布か。
 現時点では,はっきりしたことは言えない。ただ,VC++6.0のユーザーにはできる限り負担をかけないような形で対応する。98年から99年にかけての2年間は,Microsoftにとって非常に忙しい年になる。この2年間で,プラットフォームに対して数々の大規模な機能拡張を行う予定だからだ。VC++6.0のユーザーには,これらの機能をできる限り早く容易に利用できるようにしたい。

―最近はBorland C++ BuilderのようなC++ベースのRADツールもリリースされている。VC++にRADツールとしての機能を追加する予定はないのか。
 我々のモットーは,C++プログラマが最も時間を費やしている部分の生産性を上げるツールを提供することだ。例えば,COMの実装やデータベースへの接続,デバッグ,パフォーマンスの解析などがそうだ。GUIの設計は,ここには該当しない。このため,マウスでGUIを設計するRADツールは,肝心な部分の生産性の向上にはつながらないと思う。

―現在のVC++のAppWizardは,一度機能を選択してスケルトンを生成し,コードを変更してしまうと,あとから別の機能を追加することはできない。この点に多くのユーザーが不満を感じている。プログラマが記述したコードを解析し,機能を追加できるようにはならないのか。
 それは可能だ。現在,まさにそのコード解析機能の開発を進めているところだ。近い将来には変更を加えたコードを解析した上でWizardで新たに機能を追加したり,ビルドする前にバグを検出したりできるようになる。このような機能はRADツールのマウスによるGUI設計機能よりも,はるかに生産性を向上させるはずだ。

―99年には米Intelの64ビットCPU Mercedが登場する。Merced用コンパイラはいつごろ入手可能になるのか。
 現在Intelと共同で開発している。はっきり言えることは,Windows NTは必ずMercedをサポートする,そしてVC++はWindows NT自体の開発に使用されるツールでもあるということだ。Merced版NT(NT64)が出荷されればVC++はMercedをサポートする。

―MercedはEPIC(Explicitly Parallel Instruction Computing)アーキテクチャを採用していることもあり,コンパイラの最適化能力が非常に重要になると思うが。
 VC++はこれまで常に最適化能力の高いコンパイラを提供してきた。CPUに新たな機能が加われば,VC++は必ずサポートする。現在,マイクロソフトの優秀なエンジニアを集めた大規模な開発チームと,多くの博士号取得研究者を集めた当社の基礎研究部門であるMicrosoft Reserchが,他のソフトウエア企業と共同で開発を進めている。多くのエンジニアがCPUの能力を最大限に利用できるよう努力している。