1. ホーム
  2. java

[解決済み] Delphi vs C++ Builder - Win32を使用するJavaプログラマーにとってどちらが良い選択か?

2022-02-16 21:34:10

質問

私はかなり経験豊富なJavaプログラマーで、ここ2、3年はWin32のものをかなりやっています。 主にVB6を使用してきましたが、もっと良いものに移行する必要があります。

Delphi 2009で1ヶ月ほど遊んでみました。 VCL GUIが好きだし、DelphiはVB6よりもWindows APIコールに適しているようだし、VB6よりもOOがずっと得意だし、IDEに付属するユニットテストのフレームワークも気に入っている。

しかし、Delphiには広く使われているガベージコレクタがないという事実には本当に苦労しています。すべてのオブジェクトを手動で解放するか、すべてにインターフェースを使用しなければならないのは、オブジェクト指向で効果的に物事を行う方法にかなり大きな影響を与えているようです。 また、構文や、変数をすべてメソッドの先頭で宣言しなければならないという事実も、特に気乗りしません。

Delphiは何とかなるのですが、C++ Builder 2009の方がいいのかなと思っています。 C++ BuilderとC++についてはほとんど知らないのですが、それならDelphiもほとんど知りません。 C++言語には多くのものがあることは知っていますが、生産的に物事を成し遂げるためには、その一部しか知る必要がないのでは......と思っています。 10年前のC++より、今のC++の方がプログラミングの生産性が高いと聞いたことがあります。

私は新規開発のみを行う予定なので、C++言語のすべての側面をマスターする必要はありません。Javaの各言語機能に相当するものを見つけることができれば十分満足できますし、進歩すればより高度なものに少しずつ目を向けることができるようになるでしょう。 (痛いほど素朴に聞こえたらごめんなさい。もしそうなら、私を正してください!)

DelphiとC++ Builderの両方を初めて使うJavaプログラマーにとって、Win32のexesとdllを生産的に開発するには、どちらが良い選択だと思われますか? また、それぞれの長所と短所は何だと思われますか?

解決方法は?

DelphiかC++ Builderか、それは難しい選択です!

ご承知の通り、IDEやRADの観点からすると、基本的に非常によく似ています。

それぞれの長所と短所は、バックグラウンドに関係なく、ちょっとこんな感じです。どちらも、Windowsネイティブの開発に最適な2ウェイRADフォームデザイナーとフレームワーク(VCL)を共有しています。

デルファイ

  • FOR: 大規模で活発、熱狂的なコミュニティ
  • FOR: Delphi 2009はここ数年で最高のバージョンです。
  • FOR: Delphiのquot;units"は、Cのソースとヘッダーファイルのペアを古臭く感じさせる。
  • AGAINST: オブジェクトがスコープを出たときに自動的に破棄されないので、コードに 'finally' がたくさん出てくる。
  • AGAINST: 言語が「言葉足らず」になる可能性がある、これは好みの問題だが
  • AGAINST: サードパーティのDLLや他の言語(特にC)のライブラリを使用するには、Delphiのヘッダーファイルを記述する必要があります。

C++Builder

  • FOR: C++Builder 2009はおそらく史上最高のバージョンです
  • FOR: RAIIイディオムによるメモリ管理の大幅な簡素化
  • FOR: テンプレートは、C++Builderの実装にいくつかのバグがあったとしても、信じられないほど便利で強力なものです。
  • FOR BOOSTやその他の最新のテンプレートベースライブラリをサポート(Boostのサポートは100%ではありませんが)。
  • FOR: Delphiとの相互運用性に優れ、ほとんどのDelphiコンポーネントを容易に使用することができます。
  • FOR: C/C++ヘッダを持つサードパーティのDLL/ライブラリが簡単に使用できます。
  • FOR: 履歴書ではDelphiよりC++の方が見栄えが良いかもしれません。
  • AGAINST: CB2009 is "unicode only" - このコードのポータビリティへの影響はDelphiとは異なり、あまりよく考えられていない。
  • 反対:C++BuilderのユーザーベースはDelphiよりずっと小さい。おそらく20%以下でしょう。
  • AGAINST: Borland/Inpriseは数年前にBCBをほぼ消滅させ、コミュニティの大きな努力の末に復活させたのです。(ただし、Codegear/Embarcaderoのコミットメントは印象的なようです)
  • 反対:C++BuilderはCodegearの中でトップではない。
  • AGAINST: サードパーティコンポーネントベンダーが必ずしもC++Builderを理解/サポートしているとは限りません。

そんなところでしょうか。私はBCB2007/2009のユーザー(BCB5から)であり、Delphiもまれにしか使いません。数年前、C++からDelphiへの乗り換えを検討しましたが、RAIIイディオムがないことが、なかなか折り合いをつけられないポイントでした。