C++ Builder

C++Builderは、エンバカデロ・テクノロジーズのC/C++統合開発環境  である。

同社の代表製品である「Delphi」のC/C++版とも言えるRADツールで、Delphiと同様、フォーム上に各種ソフトウェアコンポーネントやGUIウィジェットを貼り付けていくスタイルの直感的なユーザインタフェース  設計を可能としている。

元々はボーランドで開発され、コードギアへ移管、同社の買収に伴って現在へ至る。ボーランド社の時代は、enとも呼ばれていた。

1. 概要
-----

FireMonkey  や Visual Component Library  を利用するIDEを持つDelphiのC++版である。C++コンパイラには、そのための拡張が施されている。また統合開発環境はDelphiとほぼ同一である。

1.1. 長所
-------

プログラムをC/C++で書ける。膨大なC/C++のコード資産をそのまま活用しやすい。
単一のコードベース、単一のプロジェクトチームでマルチプラットフォーム  のサポートが実現できる。
RAD対応環境であり、かつVisual Basicのようなランタイムライブラリの別途配布も不要である。
Qtなどと比べランタイムライブラリを結合しても実行ファイルは小さい。
dynamic_castの展開がVisual C++と比較して高速である。
ANSI C、ISO C、C99、C11、ISO C++、C++98、C++0x TR1、そしてC++11といったC/C++標準に準拠している。
プロパティのようなDelphi由来のオブジェクト指向言語向け拡張機能を使用でき、標準のC++よりもGUIアプリケーション開発環境  との親和性が高い。
無料版がある。
日本語版があり日本語ヘルプなどの日本語情報が充実している。

1.2. 短所
-------

64ビット対応しているのはWindowsとiOSのみ。
コンパイラ自体の[[コンパイラ最適化。
ランタイムライブラリを結合すると実行ファイルが大きくなる。
Windowsの開発環境としては、Visual Studio  よりもマイナーである。
[[Microsoft Visual C++。

2. 歴史
-----

2.1. C++Builder 1から5まで
----------------------

最初の C++Builder は1997年2月26日にリリースされた 。Delphiとバージョン番号を合わせた結果、C++ Builder 2は欠番となっている。

25 周年を迎えた 2022年2月26日に C++Builder 1.0 Professional  がアンティークソフトウェアとして無償公開された。

2.2. C++Builder 6
-----------------

2001年。GUIライブラリにVCLに加えクロスプラットフォームのComponent Library for Cross Platform  を追加した。CLXはWindowsとGNU/Linuxの二つのプラットフォームをサポートするが、CLXを用いたGNU/Linuxの開発ができたのは別製品のKylixのみ。C++BuilderにCLXが搭載されたのはこのバージョンのみで、以降のバージョンに採用されることはなかった。

2.3. C++BuilderX路線
------------------

C++Builderが使用するVCLは、Delphiにおいて7、8、2005と進化した。またDelphiは、リファクタリング機能などを備えた新統合開発環境「Galileo」に移行した。しかし、これらに対応するC++Builderは発表されなかった。BorlandのC++統合開発環境は、従来のWindowsに加えてLinuxクライアントサイド市場を狙った「Kylix3」の失敗により、Javaで実装されたJBuilderベースの「C++BuilderX」が担うことになったからである。これはRADではなく、統合環境版のBorland C++ Compilerとも言うべきもので、携帯電話などの組み込み機器、およびサーバサイド市場を狙ったものである。結局、この路線は失敗に終わった。無償版の配布も終了した。

2.4. 復興運動からTurbo C++まで
----------------------

2004年にC++ Builder ユーザは Paul Gustavson を中心として、ボーランドに公開質問状を送り、新製品の開発を促した。これに対して同社は「C++ Builderコミュニティへの公開書簡」で、これを了承した。

2005年12月21日に「Borland Developer Studio 2006」が発売された。これには約束どおり「C++ Builder 6」の後継製品である、「C++ Builder 2006」が統合された。

2006年に「Turbo C++」が発表された。これは「Borland Developer Studio 2006」上で他の言語と統合されていた「C++ Builder 2006」を単体化した物である。無料版も提供された。この無償公開版は、Turbo C++ Explorerという名称にて同社のサイトより配布が行なわれていたが2009年8月26日に日本語版の頒布を終了した。Turbo C++は、C++ Builderとは異なり、プログラミング言語を1つだけしか選べない。

2.5. C++ Builder 2007
---------------------

2007年5月15日に、「C++ Builder 2007」が発表された。

Windows Vistaに対応した。2007年9月6日には、C++ Builder 2007 を含む統合版「CodeGear RAD Studio 2007」が発表された。

2.6. C++ Builder 2009
---------------------

2008年8月26日に「C++ Builder 2009」が発表された。

C++ Builder 2009から文字列が全面的にUnicode文字列に置き換わった。

2.7. C++ Builder 2010
---------------------

2009年8月25日に「C++ Builder 2010」が発表された。

新しいIDE機能/デバッグツールにより開発をさらに効率化。コーディング作業やデバッグ作業をさらにスピードアップ可能である。タッチ対応アプリケーションの開発をサポート。タブレットやタッチパッド、POSやATM向けのアプリケーションをビジュアルに開発可能である。Firebirdサポート、DataSnapなど、広範なデータベース、アーキテクチャ、プロトコルに対応する。

2.8. C++ Builder XE
-------------------

2010年9月2日に「C++ Builder XE」が発表された。

XEは「Cross Platform Edition」の略である。名称通りクロスプラットフォーム開発環境を目指して開発が進められたものの、不完全であったため見送られている。

2011年2月1日にはStarterエディションが追加発表された。「Turbo C++」以来のエントリー向けエディションであり、無償ではないがコンポーネントのインストールが可能、1,000 USドルを超えない範囲であれば商用利用可能など、制限は大幅に緩和されている。ただし、Starterには旧C++ Builderのライセンスは付属しない。また、同時利用は同一サブネット内において5ライセンスまでとされている。このため教室での利用は向かないとされており、アカデミック版の提供はない。税別価格は18,000円だが、同社または他社の開発ツールユーザーは税別14,000円でアップグレードできる。Delphi Starterとの併用はできず、RAD StudioにもStarterは提供されない。

アカデミック版を除き、C++Builder 6、2007、2009、2010のライセンスが付属する。

2.9. C++ Builder XE 2
---------------------

2011年9月1日に「C++ Builder XE 2」が発表された。

新たに FireMonkey フレームワークを導入したことにより、HD や 3D に対応した高品質なユーザインタフェース  の設計や、Mac OS X  向けのマルチプラットフォームアプリケーションの開発が可能になった。また、製品エディションとしてEnterpriseとArchitectの間にUltimateが追加された。

搭載されるコンパイラはBCC32、BCCOSX  の2つとなった。

Starterとアカデミック版を除き、C++Builder 6、2007、2009、2010、XE のライセンスが付属する。

2.10. C++ Builder XE 3
----------------------

2012年9月4日に「C++ Builder XE 3」が発表された。

新たに「Metropolis UI」を導入したことにより、タッチ対応、ライブタイルサポートなどを搭載したWindows 8デスクトップアプリケーションの開発が可能になった。ただしWinRTには対応しない

2012年12月10日にリリースされたアップデートにより、Clang、LLVMに対応した64ビットコンパイラが追加提供された。ただし、32ビットコンパイラは従来通りBCC32なため、Win32 / Win64でソースコードに互換性がない事もあった。この問題の解消には後述する「C++ Builder 10 Seattle」の登場を待たなくてはならなかった。

搭載されるコンパイラはBCC32、BCC64、BCCOSX  の3つとなった。

Starterとアカデミック版を除き、C++Builder 6、2007、2009、2010、XE、XE2 のライセンスが付属する。

2.11. C++ Builder XE 4
----------------------

2013年4月22日に「C++ Builder XE 4」が発表された。

前バージョンのXE3 から7ヶ月でのバージョンアップとなったため XE3 からのバージョンアップ料金はキャンペーン価格ながら格安の 6,000円となった。

Starterとアカデミック版を除き、C++Builder 6、2007、2009、2010、XE - XE3 のライセンスが付属する。

2.12. C++ Builder XE 5
----------------------

2013年9月12日に「C++ Builder XE 5」が発表された。

2013年12月11日にリリースされたアップデート2により、iOS開発機能が導入された。Professional版でモバイル開発  を行うには「Mobile Add-On Pack」を別途購入する必要がある。

搭載されるコンパイラはBCC32、BCC64、BCCOSX 、BCCIOSARM  の4つとなった。

Starter版を除き、C++Builder 6、2007、2009、2010、XE - XE4 のライセンスが付属する。

2.13. C++ Builder XE 6
----------------------

2014年4月16日に「C++ Builder XE 6」が発表された。

このバージョンから対応プラットフォームにAndroidが追加された。これにより、Windows 7/8/8.1、iOS 、Android向けのアプリケーション開発が可能となった。モバイル開発  を行う場合、Professional版ではMobile Add-On Packを別途購入する必要がある。

搭載されるコンパイラはBCC32、BCC64、BCCOSX 、BCCIOSARM, BCCAARM  の5つとなった。

Starter版を除き、C++Builder 6、2007、2009、2010、XE - XE5 のライセンスが付属する。

2.14. C++ Builder XE 7
----------------------

2014年9月2日に「C++ Builder XE 7」が発表された。

Starter版を除き、C++Builder 6、2007、2009、2010、XE - XE6 のライセンスが付属する。

2.15. C++ Builder XE 8
----------------------

2015年4月7日に「C++ Builder XE 8」が発表された。

iOSデバイス用64ビットコンパイラが追加されている。モバイル開発  を行う場合、Professional版ではMobile Add-On Packを別途購入する必要がある。

搭載されるコンパイラはBCC32、BCC64、BCCOSX 、BCCIOSARM、BCCIOSARM64、BCCAARM  の6つとなった。

Starter版を除き、C++Builder 6、2007、2009、2010、XE - XE7 のライセンスが付属する。

2.16. C++ Builder 10 Seattle
----------------------------

2015年9月1日に「C++ Builder 10 Seattle」が発表された。

Clangベースの新しいWin32用コンパイラが追加された。これにより、Win32 / Win64でほぼ同一のコードを書く事ができるようになった。従来のWin32用コンパイラであるBCC32も利用する事ができる。

搭載されるコンパイラはBCC32、BCC32C、BCC64、BCCOSX 、BCCIOSARM、BCCIOSARM64、BCCAARM  の7つとなった。

Starter版を除き、C++Builder 6、2007、2009、2010、XE - XE8 のライセンスが付属する。

2.17. C++ Builder 10.1 Berlin
-----------------------------

2016年4月20日に「C++ Builder 10.1 Berlin」  が発表された。

Android 6.0、iOS 10、macOS 10.12  アプリケーション開発に対応。FireMonkey のフォームデザイナも独立表示可能になった 。インストーラの改良により、インストールオプションによってはインストール時間が大幅に短縮されるようになった。このバージョンからUltimateエディションが廃止されている。

2016年8月22日以降、Starter Edition が無償で入手できるようになっている。2006年の Turbo C++ Explorer 以来、10 年ぶりの無償版である。また、Starter Edition は Turbo Explorer とは異なり、複数のパーソナリティ  が共存できるため、C++Builder と Delphi を同じ環境で利用する事が可能となっている。コンポーネントのインストールにも制限がない。

Starter 版を除き、C++Builder 6、2007、2009、2010、XE - XE8、10 Seattle のライセンスが付属する。

Update 2 で Windows 10 の Anniversary Update に正式対応したため、Update 2 には「Anniversary Edition」という名称がついている。

2.18. C++ Builder 10.2 Tokyo
----------------------------

2017年3月22日に「C++ Builder 10.2 Tokyo」が発表された。

Clang ベースのコンパイラにおいてパフォーマンスが向上している。また、インストーラの改良により、インストール時間が大幅に短縮されるようになった。

2017年12月13日にリリースされた Release 2  において、Enterprise 以上の SKU で RAD Server の単一サイト/単一サーバー配置ライセンスが含まれるようになった。

2018年3月14日にリリースされた Release 3 において、Professional Edition にモバイルサポートが追加された。従来、Mobile Add-On Packとして別売されていたものが統合された形になる。また BCC32X という Win32用コマンドラインコンパイラが新たに追加された。これは下位互換性のためにコマンドラインインターフェイスが非互換だった BCC32C を他のコンパイラ  と共通にしたものである。

搭載されるコンパイラはBCC32、BCC32C、BCC32X、BCC64、BCCOSX 、BCCIOSARM、BCCIOSARM64、BCCAARM  の8つとなった。

2018年7月19日に、従来の Professional Edition 相当を無償化した「C++Builder Community Edition」がリリースされた。Windows 64bit, macOS, iOS, Android 向けの開発が可能となっている。無償版 Starter Edition とは異なり、「Delphi Community Edition」と同時にインストールする事はできない。

Starter / Community 版を除き、C++Builder 6、2007、2009、2010、XE - XE8、10 Seattle、10.1 Berlinのライセンスが付属する。

2.19. C++ Builder 10.3 Rio
--------------------------

2018年11月22日に「C++ Builder 10.3 Rio」が発表された。同日、Community Edition も更新されている。

Starter Edition は廃止された。Professional Edition にあった別売の FireDAC Client/Server Add-on Pack も廃止され、フル機能の FireDAC を利用するためには Enterprise Edition 以上の SKU が必要となった。

Windows 用 32ビット コンパイラ  にて C++17 をサポートするようになった。

2019年7月19日にリリースされた Release 2  において、Windows 用 64ビット コンパイラ  にて C++17 をサポートするようになった。Language Server Protocol  に対応し、コード補完  の性能が向上した。

Starter / Community 版を除き、C++ Builder 6、2007、2009、2010、XE - XE8、10 - 10.2 のライセンスが付属する。

2.20. C++ Builder 10.4 Sydney
-----------------------------

2020年5月27日に「C++ Builder 10.4 Sydney」が発表された。同日の Community Edition リリースはなかった。

Windows 用 64ビット コンパイラ  にて C++17 をサポートするようになった。LLDBベースの新しいWin64 C++デバッガが追加された。数多くの C++ ライブラリが移植されており、追加で GetIt パッケージマネージャからもインストールできる。

macOS Catalina において32ビットアプリが動作しなくなったため、ターゲットプラットフォームから "macOS 32ビット" が選べなくなり、BCCOSX が付属しなくなった。同様に "iOS デバイス 32ビット" も選択できなくなっているが、BCCIOSARM は含まれている。これにより、C++ Builder による macOS 開発は macOS 64ビットコンパイラの登場を待たねばならなくなった。

搭載されるコンパイラはBCC32、BCC32C、BCC32X、BCC64、BCCIOSARM、BCCIOSARM64、BCCAARM  の7つとなった。

2021年7月19日に 10.4.2 Community Edition がリリースされた。

Community 版を除き、C++ Builder 6、2007、2009、2010、XE - XE8、10 - 10.3 のライセンスが付属する。

2.21. C++ Builder 11 Alexandria
-------------------------------

2021年9月10日に「C++ Builder Alexandria」が発表された。

IDE が高 DPI に対応。フォームデザイナが VCL スタイルを使用してレンダリングできるようになった。コードフォーマッタが刷新された。前バージョンでサポート外になっていた iOSデバイス 32bit 用コンパイラが付属しなくなった。

C++ Builder 2009 以降、Windows 用コンパイラが生成する実行形式ファイルの PE ヘッダーには OS Version / Subsystem Version ともに 5.0 が設定されていたが、11.0 Alexandria では 6.0 が設定されている。このため、11.0 Alexandria で生成された実行形式ファイルは Windows XP 以前の OS では動作しない。

搭載されるコンパイラはBCC32、BCC32C、BCC32X、BCC64、BCCIOSARM64、BCCAARM  の6つとなった。

2023年2月28日に製品の品質向上を目的とした Release 3  がリリースされた。

2023年4月27日に 11.3 Community Edition がリリースされた。

Community 版を除き、C++ Builder 6、2007、2009、2010、XE - XE8、10 - 10.4 のライセンスが付属する。

2.22. 今後のC++Builder
-------------------

macOSの64ビット対応は、2020年の計画には含まれていない。今後の64ビット対応の際には、Intelベース  ではなく、ARM64のサポートに直接移行する可能性があるとされている。

3. C++Builder Community Edition
-------------------------------

10.2 Tokyo より完全無料版の Community Edition が提供されている。

有料の C++Builder Professional と同等の機能を持ち、従来の Win32 アプリケーションのみならず Windows 64bit, macOS, iOS, Android の開発が可能となっている。

3.1. 過去の無料版
-----------

C++BuilderX Personal が無料で提供されていた。
C++Builder 2006 Update2 相当の Turbo C++ for Win32 Explorer が無料で提供されていた。
C++Builder 10.1 Berlin から Starter Edition が無料で提供されていた。
C++Builder 10.2 Tokyo から Community Edition が無料で提供されている。

4. GUIライブラリ
-----------

4.1. Visual Component Library 
-----------------------------------

C++Builderの全バージョン、全てのエディションで採用されているWindows専用のGUIライブラリである。

高機能であり、C++BuilderのメインのGUIライブラリとして位置づけられる。
Windows専用だけあってWindows固有のプログラミングテクニックがそのまま通用することが多い。
XEからIEコンポーネント  の高度な処理に必要なATLライブラリが付属されなくなっている。
XE8までは2009または2010のバージョンからATLライブラリをコピーして使うことはできる。
VCLはDelphi  で記述されている。

4.2. FireMonkey 
---------------------

C++BuilderではXE2から採用されているクロスプラットフォームのGUIライブラリである。

Windows、Mac OS、Android、iOS  と幅広く対応するが、GNU/Linuxには対応しない。
VCLとの互換性が低く、VCL間の移植は困難。
VCLと比べると機能は十分とはいえずVCLの完全な代替にはならない。
VCLと比べるとWindows固有の機能を呼び出すことが難しい場合がある。
Delphi と異なり、C++BuilderでiOSの開発をする場合はiOSシミュレータが使えない 。
FireMonkeyはDelphi  で記述されている。

4.3. Component Library for Cross Platform 
-----------------------------------------------

Microsoft WindowsとGNU/Linuxに対応したクロスプラットフォームの古いGUIライブラリである。

C++Builder 6とDelphi 6とKylixの全バージョンで採用された。
長らく前に開発は中止され現在のバージョンでは採用されていない。
現在でもProfessional以上のSKUの最新バージョンを購入することによりC++Builder 6とCLXを入手することが可能。
QtベースのVCLライクなGUIライブラリであり、FireMonkeyと比べると格段にVCLとの互換性が高い。
VCLにない機能もあるため現在でもWindowsで使う利点がある。
VCLと比べるとWindows固有の機能を呼び出すことが難しい場合がある。
C++Builder 6とDelphi 6のVCLはUnicodeに全く対応していなかったがCLXは一部分ながら対応している。
C++Builder 6とCLXの組み合わせで現在の最新Windows向けの開発も可能。
GNU/LinuxはKylix発売当時と現在では大きく仕様が変わっているためKylixで現在のGNU/Linux向けの開発はできない。
従って現在はWindows専用のようになっておりクロスプラットフォーム性は失われている。
WindowsとGNU/Linuxではコンパイラが違いCLXの仕様も少し違っていたためKylixのC++とのソース互換性はそれほど高くなかった。
CLXのベース部分はQtである。

5. その他
------

2000年に Borland C++ Compiler  5.5 が公開された。これはコンパイラ、リンケージエディタ、標準ライブラリおよび開発ツールの無料版である。開発はRADではなく、コマンドラインから行う。当時、Windows用の無償のC/C++コンパイラは、ほかにGCCほどしかなく、Borland C++が広く知られることになった。BCC 5.5は 2018 年現在もエンバカデロのサイトから無償ダウンロードして使用できるが、保証やサポートはなされていない。
C++Builderの新しい版ではMFCやDirectXなどもサポートしている。
バージョンやパッケージの種類によってはDelphiなどのCD-ROMも付属する。
DelphiやC++Builderの開発者の一部はマイクロソフトに移籍して、C#言語やVisual C#などを開発している。
2016年に無償版である Free C++ Compiler が公開された。Clang ベースで、最新のものは C++17 に対応している。
2018年に無償版である C++Builder Community Edition が公開された。Professional Edition 相当。

6. 脚注
-----

6.1. 注釈
-------

6.2. 出典
-------

7. 関連項目
-------

Appmethod
C#
C++
Delphi
Kylix
Rapid Application Development
RAD Studio
Turbo C
Turbo Pascal
エンバカデロ・テクノロジーズ
コードギア
ボーランド

8. 外部リンク
--------

[1]
[2]
[3]
[4]
[5]
[6]