it-swarm.dev

Delphi vs C # für die GUI-Programmierung

Ich komme aus PHP und Python Hintergrund mit wenig Wissen über C, ich habe viele webbasierte Anwendungen gemacht, jetzt denke ich an Desktop-Anwendungen für Windows Plattform.

Ein Freund sagte mir, ich solle mich für Delphi entscheiden, und andere sagen, C # sei das Beste. Nun, was ich suche, ist

  1. Einfachheit
  2. Produktivität
  3. Gute API-Dokumentation
  4. Geschwindigkeit
  5. Drag & Drop
  6. Multithreading und gute Netzwerk-API

Vielen Dank

20
elf1984

Delphi auf jeden Fall:

  1. Einfachheit - Delphis Syntax basiert auf Pascal, das explizit so konzipiert wurde, dass es leicht zu erlernen ist. nd es kann dieses Versprechen einhalten. C # basiert auf der C-Familie, die ... nun ... war nicht .
  2. Produktivität - Delphi ist ein Nachkomme von Turbo Pascal und verfügt immer noch über den schnellsten bekannten Compiler was Ihre Produktivität enorm steigern wird. Außerdem verfügt es über den Debugger, den Visual Studio wünscht, dass sein Debugger so sein wird, wie er ist wächst auf. Insbesondere in der neuesten Version von Delphi ist das Debuggen viel einfacher.
  3. Gute API-Dokumentation - "API" ist heutzutage ein ziemlich vages Wort, das alle möglichen Dinge umfasst. Ich nehme an, Sie meinen Bibliotheken, und hier ist es eine Art Fehler. Sowohl das .NET Framework als auch die Delphi-Standardbibliotheken verfügen über eine gute Online-Dokumentation und eine mittelmäßige, schwer zu verwendende Offline-Dokumentation. (Eine Folge der Entscheidung des Delphi-Teams, dasselbe schreckliche Hilfesystem wie Visual Studio zu verwenden, von dem sie hoffentlich in der nächsten Version Abstand nehmen werden.)
  4. Geschwindigkeit - Delphi gewinnt leicht. Es kompiliert zu nativem Code (schnellere Ausführung und viel schnellerer Start, da es keine JIT-Phase gibt) und verwendet keine verwalteten Zeiger, sodass der Objektzugriff schneller ist und weniger cache-unfreundlich.
  5. Drag & Drop - Eine integrierte Funktion der VCL.
  6. Multithreading - Delphi verfügt über eine integrierte Thread-Klasse. Wenn Sie jedoch komplexe Aufgaben gleichzeitig ausführen möchten, gibt es bessere Optionen. Primoz Gabrijelcic, ein Mitglied der Delphi-Community, hat an einer hervorragenden Parallelitätsbibliothek gearbeitet, zu der ich beigetragen habe. Es bietet allgemeine Unterstützung für allgemeine Threading-Ziele wie Task-Pooling, parallele FOR-Schleifen und mehrstufige Pipeline-Prozesse.
  7. Gute Netzwerk-API - Delphi wird mit Indy ausgeliefert, einer ausgereiften Open-Source-Bibliothek, mit der Internetverbindungen einfach eingerichtet und verwaltet werden können. Wir verwenden es bei der Arbeit, um die Kommunikationsschicht für eine branchenführende App bereitzustellen, von der Sie wahrscheinlich noch nie gehört haben, es sei denn, Sie arbeiten in Rundfunkmedien.
  8. Bereitstellung - Dies war nicht auf Ihrer Liste, aber es ist erwähnenswert. Es gibt immer noch Systeme, auf denen das .NET Framework nicht vorinstalliert ist. Standardmäßig kompiliert Delphi seine Standardbibliothek in die EXE-Datei und entfernt dann mithilfe eines Smartlinkers nicht verwendete Teile. Dies führt zu kleinen EXE-Dateien, die nicht von massiven Laufzeitbibliotheken mit einem Gewicht von Hunderten von MB abhängig sind, über die Ihre Benutzer verfügen separat herunterladen und installieren.
20
Mason Wheeler

C # wird im Allgemeinen eine größere Benutzerbasis haben, in Zukunft mehr Entwicklung, und die Tools für die Entwicklung von RAD durch Visual Studio sind unglaublich).

  1. Die Syntax ähnelt der in PHP und C) verwendeten.
  2. Visual Studio mit seinen Tools und IntelliSense ist äußerst produktiv.
  3. MSDN
  4. Auch hier VS-Tools + Intellisense, aber Geschwindigkeit hängt wirklich von der Vertrautheit Ihrer Sprache und ihrer Funktionen ab.
  5. VS Designer für WinForms, WPF.
  6. System.Threading und System.Net

Ich habe nicht viel Erfahrung mit Delphi und ich spreche nur über meine Erfahrungen mit C # im Allgemeinen. Wo ich arbeite, habe ich extrem enge Fristen, die von Nicht-Programmierern vorgesehen sind, und ich bin in der Lage, eine Reihe von Business-Desktop-Anwendungen extrem schnell herauszupumpen. In den letzten drei Wochen bin ich von der Spezifikation zur Bereitstellung auf zwei Winforms-LOB-Anwendungen übergegangen. Die Produktivität für die GUI-Entwicklung in C # mit VS ist einfach verrückt.

15
bunglestink

Beide haben alle 6 Punkte, die Sie wollen, aber ich denke, C # hat den Vorteil bei den meisten, wenn nicht allen.

Um die Punkte durchzugehen:

  1. Delphi erfordert eine Speicherverwaltung, sodass Sie argumentieren können, dass C # allein dadurch einfacher wird. In der akzeptierten Antwort wird die Syntax hier erwähnt. Die C # -Syntax ähnelt sowohl PHP als auch Java). Wenn Sie also von einem dieser Hintergründe aus schneller einsatzbereit sein möchten, hat C # den Vorteil.
  2. Produktivität, ich denke, Sie können in C # schneller mehr erledigen. Die .net-Bibliothek bietet Ihnen so viel, dass ich in den schlechten alten Zeiten auf Delphi-Komponenten von Drittanbietern zurückgreifen musste, um sie bereitzustellen.
  3. Dokumentation, Delphi's war immer gut, MSDN ist besser, und Sie finden eine größere Community für Support, siehe meine Stack Overflow-Analyse unten.
  4. Geschwindigkeit, Delphi hat vielleicht den Vorteil, aber Assembly übertrumpft alle, so dass dies normalerweise kein guter Grund ist, eine Sprache zu wählen. Eine Sache, auf die ich hinweisen möchte, ist, dass ich gehört habe, dass Leute zitieren, dass C # interpretiert wird. Es ist nicht, es war nie, es hatte immer eine JIT.
  5. Drag & Drop, verfügbar für beide.
  6. Beim Multithreading ist Delphi gut, aber C # eignet sich hervorragend für eingebaute Konstrukte wie lock(){} parallele Erweiterungen und das neue await.

Extra Punkt, der Fragentitel ist GUI-Programmierung, dafür bin ich ein großer Fan von .nets WPF, was das einzige, was Delphi auf halbem Weg hatte, Bold war, was ein Schmerz war, den man zähmen musste und jetzt tot.

Wenn Sie die Anzahl der Fragen zu diesem Thema und den Stapelüberlauf sowohl für die Delphi- als auch für die C # -Tags vergleichen, werden Sie feststellen, dass die Größe der C # -Community viel größer ist.

Paketüberfluss:

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

Ich habe c hinzugefügt, um zu zeigen, dass dies kein Problem mit dem Alter der Sprachen und Java ist, nur zum Vergleich.

Ich bin kein C # oder Java Fan Boy, ich war 7 Jahre lang ein großer Delphi-Fan, ein professioneller reiner Delphi-Entwickler, aber sie haben es ab 2005 wirklich vermasselt, mit ihrem schlechten Vorstoß .net, das die Stabilität des IDE für sogar native 32-Bit-Kompilierung vermasselt hat. Delphi 7 war meiner Ansicht nach der Höhepunkt der Sprache.

14
weston

Als ich an der Uni war, wurde mir das Programmieren mit Delphi beigebracht. Ich bin ein bisschen verrostet, aber ich lese gerade viel Delphi-Code durch, um ihn auf eine C # -Anwendung zu portieren.

Ich bevorzuge die OO mit funktionalen Neigungen von C # gegenüber den prozeduralen Neigungen von OO Neigungen von Delphi). Sie sollten überlegen, wie Sie lieber codieren, wenn Sie zwischen ihnen wählen. Ich denke nicht, dass es viel gibt, wenn es um Einfachheit geht - genau das, was Sie einfacher finden. Gleiches gilt für die Produktivität.

In Bezug auf RAD (schnelle Anwendungsentwicklung) gibt es nicht viel zwischen Winforms und Delphi-GUI-Design. Sie erinnern mich aneinander.

WPF hingegen ist etwas, das ich wegen seines deklarativen Stils beiden vorziehe.

Ich glaube nicht, dass es einen großen Unterschied zwischen der Qualität und der Abdeckung der vom Anbieter bereitgestellten Dokumentation für C # oder Delphi gibt. Ich denke, dass Sie mehr Informationen über C # finden werden, die keine Anbieter sind, aber das könnte nur daran liegen, dass ich nicht wirklich nach Delphi gesucht habe.

Ich musste mit Delphi keine Thread-Programmierung durchführen, und jedes Networking, das ich durchgeführt habe, war vor Jahren und ich kann mich nicht erinnern.

Die .NET-Bibliotheken für Parallelverarbeitung, Ereignisse und andere Threading-Arbeiten sind gut. Sie werden es also nicht verpassen. Es gibt viel Unterstützung beim Networking, daher auch hier sehr zu empfehlen.

Insgesamt würde ich mit C # /. NET gehen. Dies liegt teilweise an WPF, aber ich bevorzuge auch den Code, den ich in C # schreibe. Soweit ich weiß, hat Delphi nichts wie Linq, was ich von unschätzbarem Wert finde.

8
Matt Ellen