GUIプログラミング用のDelphiとC#[終了]


20

私はCの知識がほとんどないPHPとPythonのバックグラウンドから来ています。Windowsプラットフォーム用のデスクトップアプリケーションを考えているので、多くのWebベースのアプリケーションを作成しました。

友達がデルファイに行くように言ってくれて、他の人はC#が最高だと言っている、まあ、私が探しているのは

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

ありがとう

回答:


20

デルファイ、間違いなく:

  1. シンプルさ-Delphiの構文はPascalに基づいています。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. 優れたネットワークAPI-Delphiには、インターネット接続のセットアップと管理を容易にする成熟したオープンソースライブラリであるIndyが付属しています。職場で使用することで、放送メディアで仕事をしない限り聞いたことがないと思われる業界最先端のアプリの通信層を提供します。
  8. 展開-これはリストにはありませんでしたが、言及する価値があります。.NETフレームワークがプリインストールされていないシステムがまだあります。デフォルトでは、Delphiは標準ライブラリをEXEにコンパイルし、その後スマートリンカーを使用して使用しない部分を削除します。その結果、ユーザーが持つ数百MBの大規模なランタイムライブラリに依存しない小さなEXEになります。個別にダウンロードしてインストールします。

2
@Elf:より多くのC#ジョブが利用可能かもしれませんが、より多くの人々が彼らのために競争しています。熟練したDelphi開発者は、仕事を見つけるのに何の問題もありません。
メイソンウィーラー

5
C#はC ++だけでなく、DelphiとJavaにも基づいています。私もPascalでプログラミングを学びましたが、その哲学の多くはC#で見られます。後方に持っているマネージポインターに関して、マネージポインターを介してデータにアクセスするオーバーヘッドはなく、参照カウントを使用するシステムよりも速く変更できます。
グッファ

12
Delphiの構文は簡単に習得でき、完全に主観的な声明です。私はDelphiの構文に腹を立て、その理由でそれを学ぶことに反対しました。
Tjaart

8
-1:この答えは狂ったように偏っています。Visual Studioデバッガーは、Delphiより優れていなければ少なくとも同等です。Delphiのドキュメントは、MSDNが史上最高のドキュメントであるのに比べて、存在しません。
マルコ・fiset

4
展開-全体の失敗。DeplhiはWindowsを必要とするため、C#から一歩後退しています。C#は、Monoのおかげでポータブルでマルチプラットフォームです。Delphiはそうではありません。Win32ライブラリを明示的に使用しないC#で記述されたプログラムを実行するためにWindowsを購入する必要はありません。シンプルさ-また失敗。C#の構文は、非常に読みやすく、非常に簡潔で、簡単に記述できます。Delphiはそうではありません。APIドキュメント-地獄いや!「WebサービスC#」と書くと、関連する結果が大量に得られます。Delphiにはそのようなことはありません。速度、スレッド、特にデバッガー-偽。
TheLonelyCoder

15

通常、C#のユーザーベースは大きくなり、将来的にはより多くの開発が行われます。また、Visual Studioを介したRAD開発用のツールは信じられないほどです。

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

私はDelphiについてあまり経験がなく、一般的なC#の経験について話しているだけです。私が働いている場所では、プログラマーではない人が想定している非常に厳しい締め切りがあり、基幹業務デスクトップアプリケーションのラインを非常に高速に送り出すことができます。過去3週間で、仕様から2つのwinforms LOBアプリケーションへの展開に進みました。VSを使用したC#でのGUI開発の生産性は非常に高いです。


4
おかげで、daniweb.com / forums / thread54305.htmlの投稿によると、DelphiでのWin32 APIの統合と完全性は、Cをも上回っています
elf1984

2
C#がデスクトップアプリケーションを高速に作成するための究極の開発環境だと思う場合は、Delphiを実際に検討する必要があります。Visual Studioを使用してデスクトップ関連のものを作成する必要がある場合、個人的には嫌いですが、最近は(残念ながら)常に選択肢がありません。
ウーターヴァンニフテリック

1
Visual StudioのRAD(フォームデザイン)ツールは、率直に言って残念です。
ウォーレンP

1
@WarrenP詳しく教えてください。
Tjaart

1
C#でサーバーアプリケーションを作成し、Delphiでデスクトップアプリケーションを作成します。これは、デルファイがクラックしにくいネイティブコードを生成するためです。
justyy 14

14

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

ポイントを確認するには:

  1. Delphiにはメモリ管理が必要であるため、C#が単純になると主張できます。ここで受け入れられた答えは構文に言及していますが、C#の構文はPHPとJavaの両方によく似ているため、これらの背景のいずれかからより早く立ち上げて実行したい場合は、C#が優位です。
  2. 生産性は、C#の方がより早く完了すると思います。.netライブラリは非常に多くのものを提供するので、悪い昔は、提供するサードパーティのデルファイコンポーネントを調べる必要がありました。
  3. ドキュメント、Delphiは常に優れていて、MSDNは優れています。さらに、サポートのためのより大きなコミュニティがあります。以下のStack Overflowの分析を参照してください。
  4. スピード、デルファイはこれに優位性を持っているかもしれませんが、アセンブリーがすべてに勝っているので、それは通常、言語を選ぶ良い理由ではありません。私が指摘することの1つは、C#が解釈されると人々が引用するのを聞いたことがあるということです。それはそうではありません、それは決してありませんでした、それは常にJITを持っていました。
  5. 両方で使用可能なドラッグアンドドロップ。
  6. マルチスレッド、Delphiは優れていますが、C#はlock(){}、並列拡張機能や新しいのようなビルドインコンストラクトに優れていawaitます。

余分な点、質問のタイトルはGUIプログラミングです。これは.nets WPFの大ファンです。Delphiが持っていたのは半分しかなかったBoldだけでした。

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

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

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

を追加しましたがc、これは言語の年齢の問題ではなく、Java比較のためだけです。

私はC#やJavaのファンではありません。私はDelphiの大ファンであり、7年間プロの純粋なDelphi開発者でしたが、2005年以降、.netに悪意のある進出を続け、ネットの安定性を台無しにしましたネイティブ32ビットコンパイル用のIDE。私の見解では、Delphi 7は言語の頂点でした。


その下票での返信はどうですか?
ウェストン

1
私は支持者ではありませんが、あなたは質問に答えていないと言えます。あなたはスタックオーバーフローでのDelphiの人気を評価しています。あなたは確かにポイントを作りますが、それは私見は非常にマイナーです。テクノロジーを使用する唯一の人であることは、必ずしも悪いことではありません。
サイモンベルゴ

@Simon公平なポイント、私はすべてのポイントに答え、質問の数の分析をコミュニティの規模に関するより広いポイントに統合しました。
ウェストン

より多くの質問をもたらす言語は、使用がより複雑であると主張することができます。;-)太字はWPFとどのように似ていましたか?WPFを使用しましたが、類似点はありませんでした。
ジムマッキース


8

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

Delphiのオブジェクト指向の手続き型よりも、C#の関数型の指向を持つオブジェクト指向の方がずっと好きです。どちらを選択するかは、どのようにコーディングしたいかを検討する必要があります。単純さに関しては、それほど多くはないと思います-あなたが見つけやすいものだけです。生産性についても同じことが言えます。

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

一方、WPFは、その宣言型のスタイルの両方で私が好むものです。

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

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

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

全体として、C#/。NETを使用します。これは部分的にはWPFによるものですが、C#で記述したコードも好みます。私が知っている限りでは、デルファイにはLinqのようなものはありません。


すばらしい返事をありがとう。初心者としてどの本を読みましたか?今、私はVS 2010でC#4と.NET 4を開始します
elf1984

4
DelphiアプリをC#に移植しようとすることに注意してください。私がそれをしようとしている会社のことを聞くたびに、彼らはジョエルが「あなたがすべきでないこと、パート1」で行ったすべてのポイントを検証することになり、製品とそれを所有する会社の惨事に終わりました。
メイソンウィーラー

申し訳ありませんが、c#4の初心者向けの本については本当にアドバイスできません。c#を始めたとき、私は1つを持っていたとは確信していません(1.1日前に戻りました。いくつかあったとは思いますが、読みませんでした)。私が始めたとき、私が最初に使用した本は、Jesse Libertyによる21日間のTeach Yourself C ++だったと思います。それを乗り越えるのに何年もかかりましたが、私は多くを学びました。私が持っていたもう一つの良い本は、コースの本であったDiscover Delphiでした。私がお勧めする本は、David WestによるObject Thinkingです。OOPとOODについて考えるだけでなく、Bill WagnerによるEffective C#も考えられます。
Matt Ellen

...これらは実際には初心者向けの本ではありませんが、基礎を学べば、優れたプログラマーになるための素晴らしいヒントとアドバイスが得られます。
マットエレン

ところで、DelphiでLINQを探している場合は、Alexandru CiobanuのDeHLライブラリを調べてください。LINQスタイルのコレクションと演算子を提供します。LINQ構文(擬似SQLのようなもの)はまだDelphiにはありませんが、どうやらコンパイラチームは将来のリリースに向けてそれに取り組んでいるようです。
メイソンウィーラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.