既報の通り、C++Builder(および Delphi)にはバッファーオーバーフロー脆弱性がある。C++Builder XE6 で報告されているが、実際には、すべてのバージョンで影響がある。

対応策が公開されているように見えるが、実は、俺が使っている C++Builder XE3 Starter Edition はその方法では修正されない。エンバカデロのサポートからは XE7 を買ってくれと言われたので、つまりは修正するつもりがないということだ。1 年半前まで販売していた製品の欠陥を放置するなんて、ずいぶん酷い話である。

今後どうするか。いくつかの選択肢を検討しているが、どれも一長一短で困った。

選択肢 1:XE7 を買う

CBuilder32 万円の費用がかかるが、今までと同様の開発環境を使えるのがメリット。プロジェクトの修正が最小限で済むため、労力的には一番楽。

しかし、1 年半後に XE7 の欠陥が出た場合は、今回同様放置されることが予想されるため、一時しのぎにしかならないとも言える。一時しのぎに数万円は割に合わないだけでなく、欠陥が出る度に費用がかさむ構図となる。短期的には良い選択肢だが、長期的には下策。

そもそも、欠陥が嫌なら新しいの買えというのは、悪徳商法の香りがするが、消費者庁的にはアリなのだろうか。C++Builder は 15 年以上愛用してきたシリーズなので(初めて使ったのはたぶん初代か XE じゃないほうの 3)、思い入れはあるのだが……。

選択肢 2:Visual Studio Professional を買う

Visual Studio Express は C++ での RAD 開発ができないが、Professional なら RAD 開発ができるようである。

C++Builder と同じく、言語が C++ なので、比較的乗り換えやすいと推測される。

しかし、価格が 6 万円と高いだけではなく、ライブラリが MFC というのがまた使いづらそうである。というかきっと使いづらい。そもそも Visual Studio(当時は別の名前だったと思うが)が使いやすかったら、C++Builder 使ってなかったし……。

選択肢 3:Qt を使う

Linux 由来の GUI ライブラリである Qt を使うというのも一つの手。

Linux の GUI というと重くてダサいという悪いイメージしかなかったが、最近の Qt は、Windows API を直接制御しているので軽くなってきているようだ。

フリーなのでお金がかからず、また、言語も C++ が使えて良い。

難点は、統合開発環境にイマイチ RAD 感がないこと。また、ライセンスが LGPL なので、(ダメだと確定している訳でもないようだが)ライブラリと静的リンクしない方が無難となり、配布ファイルがやたら増えて分かりづらくなる。日本語のドキュメントも少ない。

選択肢 4:C# を使う

Visual Studio Express に含まれるため、フリーの RAD という意味では最有力候補の 1 つ(もちろん VB の方がメジャーだが、さすがに Basic はちょっと)。

豊富なライブラリを擁する .NET 環境において主役に位置づけられているので、やれることは多いだろう。

問題は、俺が C# を全く知らないことで、1 から学習しなくてはならないので、習得までの労力が多大であること。

また、ユーザー環境に .NET が必要となるので、ユーザーさんに .NET をインストールしてもらう手間が生じる。

というわけで

手放しでこれだ、といえる選択肢がない。

そんな中、気持ちとしては C# に傾きつつある。これを機に新しい言語に挑戦してみようか的な感じで。

いろいろ検証しなくてはいけないので時間かかるけど……。