IDEの機能強化
IDEでは全般的なパフォーマンス改善に加えてプロジェクト管理機能が強化された。コンパイルオプションの設定など、プロジェクトの設定は複数のプロジェクトで共有されたり、同じプロジェクトでもフェーズによって異なったりするものだが、これらの管理が簡単になった。
すべてのビルド設定は、名前をつけて保存することで他のプロジェクトでも再利用できるようになった。また、特定のオプション設定を「オプションセット」として保存することで、これを再利用したり、継承して新しい設定を派生させたりできる。これらの機能をうまく使えば、基本設定からデバッグ用の設定、プロダクション用の設定など、効率的に定義して切り替えることが可能となる。
また、C++については、Delphiに比べてコンパイル時間がかかるという難点があった。C++はDelphiに比べて言語の構成が複雑であり、かつ、インクルードファイルによって任意のファイルを読み込めるため、コンパイル行数は膨大なものになる。
C++のコンパイル時間を短縮する試みとして、従来からプリコンパイルヘッダ技術があった。これは、あらかじめ共通部分となるヘッダをコンパイルしておくものだが、数多くのフレームワークやライブラリを多用する現在の開発では、効率化にも限界があった。そこで、ウィザード形式でプロジェクトに最適なプリコンパイルヘッダを生成する「プリコンパイルヘッダウィザード」を搭載し、劇的なコンパイル時間の短縮を実現した。
言語の強化
Delphi言語では、UnicodeStringをデフォルト文字列として採用した点が大きな変更点であり強化点だ。また、ジェネリックスは特定の型に規定することなく、型を安全に参照できるコードの記述を可能にする。無名メソッドは、特定のコードブロックをメソッドのようにパラメータとして使用できる機能だ。
C++では、次世代C++標準「C++0x」の言語機能をサポートしたのが大きい。同機能は、まだ仕様が最終化されていないが、商用C++コンパイラとしては初めて早期にサポートしたことになる。サポートされた主な機能を以下に示す。
- Decltypeキーワード
- Explicit conversion operators
- Externテンプレート
- rvalue リファレンスを伴うMove Semantics
- Scoped Enumerations
- ネイティブType Traitsを伴うStatic Assertions
- Unicode文字型 char16_t および char32_t
- [[final]] および [[noreturn]] 属性
そのほか、ANSI/ISO 標準ライブラリ であるTR1(Technical Report 1)やBoost library 1.35が利用可能だ。
まとめ
Delphi 2009、C++Builder 2009は、エンバカデロ・テクノロジーズとして初のリリースとなるIDE製品である。CodeGearとDatabaseGearの統合の第一歩として、データベースモデリングツール「ER/Studio Developer Edition」を搭載していることも新しい。
全体として、基本的な操作性の向上と新しいユーザーインターフェースへの対応などの新機能が目立つ。Unicode対応については、旧プロジェクトからの移行という点では意識しなければならないが、新規開発では、当初からUnicode対応のアプリケーションということで、開発を進めることができる。
Delphi/C++Builderは、生産性が高く、強力なネイティブアプリケーションを開発できることから、ISV/MicroISV、中小規模の企業や社内の部門システム開発として多く採用されているという。Hodges氏は、具体的なアプリケーションの例として、SkypeやInstallAwareなどのパッケージソフトウェアを紹介した。Delphi/C++Builder 2009は、こうしたネイティブ開発の需要に応えつつ、最新の技術に対応した製品であるということだ。