CodeZine(コードジン)

特集ページ一覧

開発ツールベンダーの老舗が語る
C++によるソフトウェア開発の今と将来性

15年以上もC++での開発をリードし続ける「C++Builder」

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/06/15 14:00

 今回、エンバカデロ・テクノロジーズ(以下、エンバカデロ)の日本法人代表を務める藤井等氏と、エヴェンジェリストの高橋智宏氏に、C/C++を巡る業界動向や、C++Builderの魅力、今後のロードマップなどについてお話を伺った。

 エンバカデロが提供している「C++Builder」は、C言語およびC++向けの統合開発環境である。同社の代表製品である「Delphi」と同様に、構成部品を配置していくことでビジュアルにユーザインターフェースを構築できるRADツールであり、1997年に最初のバージョンがリリースされて以来、15年にわたってアップデートを繰り返してきた。現行バージョンであるC++Builder XE2ではマルチプラットフォーム対応にも注力されており、Mac OS向けのアプリケーション開発が可能になったほか、「FireMonkey」と呼ばれる新しいグラフィックフレームワークによって高品質な3Dグラフィックを作成できるようになっている。

1. C/C++の需要は依然として高い

エンバカデロ・テクノロジーズ
日本法人代表 藤井等氏
エンバカデロ・テクノロジーズ 日本法人代表 藤井等氏

──まず、C++の言語そのものについて、現在どのような状況にあるのかを教えていただけますか。

藤井:最近はさまざまな軽量プログラミング言語が登場して開発者の選択肢は広がっていると思いますが、C++に限らず、ネイティブ言語の需要はまだまだ高いと感じています。すべてのソフトウェアが新しい言語で動くわけではありませんし、デバイスやプラットフォームの持つ特徴を最大限に活かすためにはネイティブ言語が重要な役割を担っていますから。

 その中でも特にC++はコンスタントに需要がある言語ですね。「C++11」(注1)のような新しい仕様が誕生するなど、ホットなニュースも依然としてありますし、現役で使っている開発者は決して少なくないはずです。

──依然として需要が高い理由はどこにあるのでしょうか。

藤井:C++の前にまずC言語があって、これは学校などで第一言語として教わる人も多いと思います。特に組み込み分野ではまだC言語が主流で需要が高いですし、コンピュータのアーキテクチャを知る上で非常に重要な言語ですから。そこがエントリーポイントになって、C++に来るという人が多いのではないでしょうか。

高橋:プログラミング言語の人気度の指標になっているTIOBEでは、C言語は常にトップを争っていますし、C++も上位5位以内をキープしています。取り立てて人気があるというわけではないですけど、いろんなライブラリやツールで使われている実績がありますから、基礎としてもっとも適した言語だと言えるのではないでしょうか。

藤井:ただ、C++は言語仕様が大きくて少々複雑なので、それがネックになっているという面はあると思います。悪い部分を排除して便利な機能だけを利用するにはどうしたらいいか、という点が課題になるわけです。


図1.1 TIOBEによる人気プログラミング言語の推移(tiobe.comより)
図1.1 TIOBEによる人気プログラミング言語の推移

注1:C++11

 策定段階では「C++0x」と呼ばれていたもので、2011年にISO標準となった新しいC++仕様。正式名称は「ISO/IEC 14882:2011」。

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だけを知っていればいいわけです。


1997年に販売されていた製品のCD-ROM(Borland時代)
1997年に販売されていた製品のCD-ROM(Borland時代)

──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コンポーネントを使った開発とまったく同じように、そのような視覚的にインパクトのあるアプリケーションを構築することができるわけです。

FireMonkeyを利用すれば3Dグラフィックスによる可視化が簡単に行える
FireMonkeyを利用すれば3Dグラフィックスによる可視化が簡単に行える

3. モバイルOSのサポートで可能性はさらに広がる

──最後に、C++Builderの今後のロードマップを教えてください。

藤井:まず、現行のXE2ではFireMonkeyの追加やMac OSへの対応が行われました。"対応した"というのはどういうことかというと、プロジェクトマネージャ上で使いたいターゲットプラットフォームとしてMac OSを選択すれば、あとは従来どおりに開発するだけでMac用のアプリケーションが作れてしまうということです。開発者にとって特に変わることというのはありません。開発環境自体はWindows上で実行されますが、リモートデバッグ機能を利用すれば、ターゲットOSを使ったデバッグも可能です。その場合も、デバッグの結果はWindows上の開発環境に戻ってくるので、開発者が操作する環境はWindowsのみで完結させることができます。

 次期バージョンでは、このターゲットOSとして64bit版Windows、そしてiOSやAndroidなどのモバイルOSが追加される予定です。これらのOSについても、Mac OSの場合と同様に、すべてターゲットプラットフォームの選択だけで利用することができます。ARMプロセッサ向けコンパイラの開発にも着手しており、モバイルOSでも最適なパフォーマンスを実現できるはずです。その他、スキンやスタイルなどを利用することで、各デバイスで最適に表示されるような仕組みも提供する予定となっています。

高橋:その他に、標準仕様への準拠も大きなトピックの一つです。まず、最新のC++11がサポートされます。それに加えて、これまではC99などといった従来の仕様に対する準拠が遅れている部分もあったのですが、次のバージョンからはより高いレベルで標準に沿うように改善される予定です。

藤井:次期バージョンの具体的なリリース時期はまだ決定していませんが、直近のアップデートは2012年後半に、その次のアップデートは2013年前半に予定しています。今のところ、どのアップデートでどの機能が追加されるのかということは確定していません。ターゲットプラットフォームに関しては、現在の優先度は64bit版が一番高く、次にiOS、そしてAndroidという順番になっています。ロードマップとしては"何を追加するか"という点と"どのタイミングでリリースするか"という点を両面から考え、その中で最適な選択をして皆さんにご提供いたします。

高橋:私自身、一ユーザーとして最初にC++Builderを手にしたときの感動が今でも忘れられません。「C++でこんなことができてしまうのか」という、衝撃的な体験でした。そして、その感動は今でも継続して存在すると信じています。ぜひ大勢の方にC++Builderを使っていただきたいと思います。

【PR】いち早く64bit/モバイル対応の新機能を使ってみるには

 現在、スタンダードサポートの購入者を対象に「C++Builder Future Ticketキャンペーン」が実施されています。将来バージョンのプレビュー版や、1年以内にリリースされる新バージョンを入手できるため、いち早く今回発表された新機能を試せます。

 

 翔泳社のECサイト「SEshop.com」では2012年6月29日まで、お得な期間限定キャンペーンを実施していますので、ぜひこちらからお買い求め下さい。

 

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 杉山 貴章(スギヤマ タカアキ)

    有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT系の解説記事やニュース記事の執筆などを手がけている。そのかたわら、専門学校の非常勤講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書に『Javaアルゴリズム+データ構造完全制覇』『Ja...

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5