web-dev-qa-db-ja.com

DelphiとC#によるGUIプログラミング

私はPHPおよびPythonバックグラウンドから来ており、Cの知識はほとんどありません。多くのWebベースのアプリケーションを実行してきました。Windows用のデスクトップアプリケーションを考えています。プラットホーム。

友人からDelphiに行くように言われ、他の人はC#が最高だと言っています。

  1. シンプルさ
  2. 生産性
  3. 適切なAPIドキュメント
  4. 速度
  5. ドラッグアンドドロップ
  6. マルチスレッドと適切なネットワークAPI

ありがとう

20
elf1984

Delphi、間違いなく:

  1. シンプルさ-Delphiの構文は、Pascalに基づいています。これは、簡単に学習できるように設計されています そして、その約束を果たすことができます。 C#は、Cファミリに基づいています。 ではなかった
  2. 生産性-DelphiはTurbo Pascalの子孫であり、それでも人間に知られている最速のコンパイラーを備えています これにより生産性が大幅に向上します。 さらに、デバッガーがVisual Studioのデバッガーのようになることを望んでいます育つ。特にDelphiの最新バージョンでは、デバッグがはるかに簡単です。
  3. 優れたAPIドキュメント-「API」は、最近ではかなり曖昧な言葉であり、あらゆる種類のものを網羅しています。私はあなたが図書館を意味すると思います、そしてここでそれは一種のトサップです。 .NETフレームワークとDelphi標準ライブラリの両方に、優れたオンラインドキュメントと、平凡で使いにくいオフラインドキュメントがあります。 (DelphiチームがVisual Studioと同じ恐ろしいヘルプシステムを使用することを選択した結果、次のバージョンでは廃止される予定です。)
  4. スピード-Delphiは簡単に勝ちます。ネイティブコードにコンパイルされ(JITフェーズがないため、実行が高速でずっと起動が高速です)、マネージポインターを使用しないため、オブジェクトアクセスが高速ですキャッシュに不向きではありません。
  5. ドラッグアンドドロップ-VCLの組み込み機能。
  6. マルチスレッド-Delphiには組み込みのスレッドクラスがありますが、並行処理で複雑な処理を実行する場合は、より良いオプションがあります。 DelphiのコミュニティメンバーであるPrimoz Gabrijelcicは、私が貢献してきた 優れた同時実行ライブラリ に取り組んでいます。これは、タスクプーリング、並列FORループ、マルチステージパイプラインプロセスなどの一般的なスレッディング目標を高レベルでサポートします。
  7. Good Network API-Delphiには、インターネット接続のセットアップと管理を容易にする成熟したオープンソースライブラリであるIndyが付属しています。私たちは仕事でそれを使用して、放送メディアで作業しない限りおそらく聞いたこともない業界をリードするアプリの通信レイヤーを提供します。
  8. 配備-これはあなたのリストにはありませんでしたが、言及する価値があります。 .NETフレームワークがプリインストールされていないシステムはまだあります。デフォルトでは、Delphiは標準ライブラリをEXEにコンパイルしてから、スマートリンカーを使用して使用していない部分を削除します。その結果、ユーザーが持つ数百MBの巨大なランタイムライブラリに依存しない小さなEXEが生成されます。個別にダウンロードしてインストールします。
20
Mason Wheeler

C#は一般に、ユーザーベースが大きくなり、将来的には開発が増える予定です。VisualStudioによるRAD開発用のツールは信じられないほどです。

  1. 構文は、PHPおよびCで使用したものと同様です。
  2. ツールとIntelliSenseを備えたVisual Studioは非常に生産的です。
  3. MSDN
  4. 繰り返しますが、VSツール+ Intellisenseですが、速度は実際には言語とその機能に精通していることに由来しています。
  5. WinForms、WPFのVSデザイナー。
  6. System.ThreadingおよびSystem.Net

Delphiの経験はあまりありません。C#の一般的な経験について話しています。私が働いている場所では、プログラマー以外の人が想定する非常に厳しい期限があり、基幹業務のデスクトップアプリケーションを非常に迅速に引き出すことができます。過去3週間で、私は2つのwinforms LOBアプリケーションでの仕様から配置に​​移行しました。 VSを使用したC#でのGUI開発の生産性は驚異的です。

15
bunglestink

両方ともあなたが望むすべての6つのポイントを持っていますが、私はC#がすべてではないにしてもほとんどのエッジを持っていると感じています。

ポイントを通過するには:

  1. Delphiにはメモリ管理が必要なので、C#だけでC#が簡単になると主張できます。受け入れられた回答はここで構文について言及していますが、C#構文はPHPとJavaの両方に似ているため、これらの背景のいずれかからより早く起動して実行したい場合は、C#にEdgeがあります。
  2. 生産性は、C#の方が早く作業ができると思います。 .netライブラリーは非常に多くのことを提供してくれるので、昔は、サードパーティのデルファイコンポーネントを提供する必要がありました。
  3. ドキュメント、Delphiは常に優れていて、MSDNの方が優れています。さらに、サポートのためのより大きなコミュニティが見つかります。以下のStack Overflow分析を参照してください。
  4. 速度、Delphiはこれにエッジを持っているかもしれませんが、アセンブリがすべてに勝るので、通常は言語を選択する理由にはなりません。私が指摘する1つのことは、C#が解釈されると人々が引用するのを聞いたことがあるということです。それはそうではありません。
  5. ドラッグアンドドロップ。両方で使用できます。
  6. Delphiはマルチスレッド化に優れていますが、C [#]はlock(){}並列拡張などの組み込み構成と新しいawaitで優れています。

余分なポイント、質問のタイトルはGUIプログラミングです。このため、私は.nets WPFの大ファンです。これは、Delphiが半分近くしかなかった唯一のことは Bold でした。そして今死んでいる。

コミュニティのサイズ。これに関する質問の数とDelphiタグとC#タグの両方のスタックオーバーフローを比較すると、C#コミュニティのサイズがはるかに大きいことがわかります。

スタックオーバーフロー:

  • Delphi 17K
  • C#367K
  • Java 312K
  • c 73,000

cを追加しました。これは、言語の年齢に問題がないことを示すためであり、比較のためにJavaを使用しています。

私はC#でもJavaファンの少年でもありません。私はDelphiの大ファンであり、プロの純粋なDelphi開発者でした。7年間ですが、彼らは2005年以降、失敗に終わったため、失敗に終わりました。 IDEのネイティブ32ビットコンパイルでも安定性を台無しにした.net。Delphi7は私の見解では言語のピークでした。

14
weston

私が大学にいたとき、私はDelphiでプログラミングを教えられました。私は少し錆びていますが、現在、C#アプリケーションに移植するために多くのDelphiコードを読んでいます。

DelphiのOOを使用した手続きよりも、C#の機能を使用したOOを優先します。それらを選択するときは、コーディング方法を検討する必要があります。シンプルになると、そこに多くはないと思います-あなたがより簡単に見つけたものだけです。生産性についても同様です。

RAD(迅速なアプリケーション開発)に関しては、winformsとDelphi GUI設計の間にそれほど違いはありません。彼らはお互いを思い出させます。

一方、WPFは、その宣言型のスタイルのために、どちらよりも好きなものです。

C#とDelphiのどちらについても、ベンダーが提供するドキュメントの品質とカバレッジに大きな違いはないと思います。 C#に関するベンダー以外の情報はさらに増えると思いますが、それは、Delphiの方法であまり検索しなかったためと考えられます。

Delphiでスレッドプログラミングを行う必要はありませんでした。また、私が行ったネットワーキングは何年も前であり、思い出せません。

並列処理、イベント、その他のスレッド処理用の.NETライブラリは優れています。だからあなたはそこを逃しません。ネットワーキングに関しては多くのサポートがあるので、もう一度強くお勧めします。

全体として、C#/。NETを使用します。これはWPFが原因の1つでもありますが、C#で記述したコードも好みます。 DelphiにはLinqのようなものはありません。

8
Matt Ellen