Delphi im Vergleich zu C ++ Builder - Welche bessere Wahl für einen Java-Programmierer tun Win32 ist

StackOverflow https://stackoverflow.com/questions/180358

Frage

Ich bin ein ziemlich erfahrene Java-Programmierer, die in den letzten paar Jahren ziemlich viel Win32 Sachen ist getan. Hauptsächlich VB6 Ich habe mit, aber ich wirklich besser, um etwas bewegen muß.

ich einen Monat verbracht habe oder so spiele mit Delphi 2009 ich die VCL-GUI Sachen mag, scheint Delphi mehr auf Windows-API-Aufrufe als VB6, ich mag die Tatsache, dass es bei OO als VB6 viel besser ist, und ich wie der Einheit-Test-Framework, das mit dem IDE kommt.

Aber ich wirklich mit der Tatsache kämpfen, dass es kein weit verbreitete Garbage Collector für Delphi - unter zu jedem manuell oder Schnittstellen frei Objekt verwendet für alles, was einen ziemlich großen Einfluss auf die Art und Weise zu haben scheint, dass Sie Dinge effektiv in einem tun können objektorientierte Art und Weise. Auch ich bin nicht besonders scharf auf die Syntax oder die Tatsache, dass Sie Variablen deklarieren alle an der Spitze eines Verfahrens haben.

Ich kann Delphi behandeln, aber ich frage mich, ob C ++ Builder 2009 könnte eine bessere Wahl für mich sein. Ich weiß sehr wenig über C ++ Builder und C ++, aber dann weiß ich sehr wenig über Delphi entweder. Ich weiß, es gibt eine Menge zu der Sprache C ++, aber ich vermute, es ist nur notwendig, um eine Teilmenge davon zu wissen, um die Dinge produktiv getan ... Ich habe gehört, dass die C ++ von heute viel produktiver ist in zu programmieren als die C ++ von vor 10 Jahren.

Ich werde nur neue Entwicklung tun, damit ich nicht jeden Aspekt der C ++ Sprache beherrschen müssen - wenn ich eine äquivalent für jede der Java Sprachfunktionen finden kann ich glücklich genug sein werde, und wie ich mich Fortschritte beginnen könnte ein bisschen mehr auf fortgeschrittenere Sachen suchen. (Sorry, wenn das schmerzlich naiv klingt - wenn so stellen Sie mir gerade)

Also, für einen Java-Programmierer, die Delphi und C ++ Builder ist neu, was man bedenkt, wäre eine bessere Wahl für produktive Entwicklung von Win32 EXE-Dateien und DLLs, und warum sein? Was sehen Sie die Vor- und Nachteile der einzelnen sein?

War es hilfreich?

Lösung

Delphi oder C ++ Builder - es ist eine schwierige Wahl

Wie Sie wissen sind, dann sind sie im Grunde sehr ähnlich, von der IDE und RAD Sicht.

Die Vor- und Nachteile der einzelnen - unabhängig von Hintergrund - sind ein bisschen wie diese. Beide teilt einen großen 2-Wege-RAD Form Designer und Rahmen (VCL), die für die native Windows-Entwicklung geeignet ist.

Delphi:

  • FÜR: Grosse, aktive, begeisterte Gemeinschaft
  • FOR: Delphi 2009 ist die beste Version für viele Jahre
  • FÜR: Delphi "Einheiten" C-Quelle / Header-Datei Paare scheinen archaische
  • machen
  • AGAINST: Keine automatische Zerstörung als Objekte verlassen Umfang, also eine Menge ‚schließlich ist im Code
  • AGAINST: Sprache kann 'wordy' sein, das ist eine Frage des Geschmacks
  • AGAINST: Verwenden von Drittanbieter-DLL oder Bibliotheken in anderen Sprachen (bes. C) erfordert Delphi-Header-Dateien geschrieben werden

C ++ Builder

  • FÜR: C ++ Builder 2009 ist wahrscheinlich die beste Version aller Zeiten
  • FOR: RAII Idiom vereinfacht die Speicherverwaltung enorm
  • FOR: Templates ist unglaublich nützlich und leistungsfähig, auch wenn die C ++ Builder-Implementierung mit ihnen einige Bugs hat
  • .
  • FÜR: Unterstützung für BOOST und andere moderne Template-basierten Bibliotheken (auch wenn die Boost-Unterstützung ist nicht zu 100%)
  • FÜR:. Große Interop mit Delphi bedeutet die meisten Delphi-Komponenten leicht verwendet werden können,
  • FÜR:. Einfach mit Dritt Teil DLLs / Bibliotheken mit C / C ++ Header zu verwenden,
  • für C ++ auf einem Lebenslauf besser aussehen kann als Delphi.
  • AGAINST: CB2009 ist „Unicode-only“ - die Auswirkungen dieser für die Code-Portabilität sind unterschiedlich und weniger gut durchdacht als für Delphi
  • AGAINST: C ++ Builder Benutzer-Basis ist viel kleiner als Delphi. Vielleicht 20% oder weniger.
  • AGAINST: Borland / Inprise fast vor ein paar Jahren BCB getötet, und es wurde nur nach großen Anstrengungen der Gemeinschaft wiederbelebt. (Allerdings CodeGear / Embarcadero Engagement scheint beeindruckend)
  • AGAINST: C ++ Builder ist nicht oben auf dem Stapel innerhalb CodeGear.
  • AGAINST: Third-Party-Komponente Anbieter nicht immer verstehen / Unterstützung von C ++ Builder

Das ist es. Nur meine Position zu sagen, bin ich ein glücklicher BCB2007 / 2009 Benutzer (seit BCB5), und ich selten auch Delphi verwenden. Vor ein paar Jahren hielt ich einen Wechsel von C ++ zu Delphi, aber der Mangel an RAII Idiom war die eine Sache, die ich dich mit schwer zu kommen gefunden.

Andere Tipps

mit Delphi gehen und Sie können die Boehm Garbage Collector API geschrieben von Barry Kelly so können Sie Garbage collection in Delphi haben. Barry schrieb dies, bevor er ging für CodeGear als Compiler Architekten zu arbeiten. Es hat Probleme mit wirklich großen Anwendungen und höchstwahrscheinlich nicht mit 64-Bit Delphi arbeiten. Er spricht darüber ziemlich viel in diesem Podcast-Interview .

Auch wenn Sie nicht, dass die Müllsammelspeichermanager verwenden, würde ich immer noch Delphi über C ++ empfehlen. Der einzige Vorteil, C ++ Sie für die allgemeine Entwicklung gibt, ist die geschweifte Klammer Syntax. Wenn Sie nicht die Delphi-Syntax nichts, dann für die meisten Dinge werden Sie es besser finden. Zugegeben C ++ Builder verfügt über die ganze Delphi VCL und RTL, so ist es nicht so schlimm, wie Visual C ++, aber ich denke immer noch, würde Delphi eine bessere Wahl sein.

Für Excel-Add-In (wie Sie in Ihrem Kommentar erwähnen) Ich würde Delphi über C ++ Builder empfehlen, weil es besser COM-Unterstützung hat (was ich glaube, Sie brauchen für Excel-Add-In).

Delphi wird viel einfacher für Sie, um sich mit zu kommen, sicher, dass Sie Ihr Gedächtnis verwalten, aber es ist sehr einfach

MyObj = TMyObj.Create;

try
  MyObj.DoSomething;
finally
  MyObj.Free;
end

In Delphi alle Ihre Objekte werden auf dem Heap zugewiesen, so dass die Regel ist sehr einfach, wenn Sie es schaffen Sie es befreien.

C ++ mit seinem Stack und Heap basiert objs bedeutet, dass Sie ein wenig mehr zu erfahren und mehr Spielraum für in Schwierigkeiten zu geraten.

mit Borland C und C ++ compliers seit BCC 4.1 / DOS und Delphi 3,0 bis 2007 Nach der Arbeit kann ich Ihnen ehrlich sagen, dass Sie in für ein großes Abenteuer sind so oder so. Der Umzug von C / C ++ auf Borland Builder und RAD IDE ist ein wesentlicher Paradigmenwechsel (und Lernkurve) von Microsofts VC ++, C ++ und .NET (hat VC von dem ersten MS-DOS verwendet Mitteilung - beige drei Ring Mini-Bindemittel).

Die Wahl zwischen C ++ und Delphi ist ein Ich schlage vor, Sie machen, nachdem Sie Ihre Füße nass auf ein paar kleine bis mittelgroße Projekte in beiden Sprachen zu bekommen. Ich begann einen C-Programmierer und etwa fünf Jahre nach dem Einschalten zu Delphi (V3.0), wenn die VCL von Windows einfach gemacht viel einfacher und produktiver zu programmieren.

Seien Sie gewarnt, Delphi eine verführerische Sprache für Programmierer ist aus anderen Sprachen kommen wie COBOL, Fortran, Visualbasic, weil seine Syntax und Coderegeln erzwingen eine Art von Disziplin, die man aus der Not hält. Die Prägnanz und Rohmetall Leistung von C macht es eine gute Systeme Programmiersprache (Gerätetreiber, O / S-Code, Echtzeit-Embedded-Programmierung), aber in unerfahrenen Händen kann es dich beißen.

Borland C ++ Builder (Delphi VCL zu C hinzugefügt ++ Compiler) nimmt viele von C ++ scharfen Kanten ab und ist meine zweite Lieblingssprache. Da Borland hinzugefügt .NET-Unterstützung für beide Sprachen gibt es ein starkes Argument Builder anstelle von VC ++ für MS Framework-Programmierung zu verwenden. Obwohl C # eine gute Menge an ‚Freundlichkeit‘ in Vergleich zu C ++ gebaut hat, würde, wenn schob ich nach Delphi oder Builder bleiben immer noch, wenn ich gerade anfangen.

Für das Erlernen der Seile, für das Prototyping und schnelle Konzept Programme gibt es einfach keine Sprache gibt, die Delphi vor allem mit der VCL und die Komponenten von Drittanbietern schlagen. Kein Hype, nur Fakten.

Ich persönlich denke, es gibt auch andere wichtige Überlegungen abgesehen von den Unterschieden zwischen den Sprachen. Zum Beispiel ist die Delphi IDE total freakin' awesome für GUIs in einer WYSIWYG-Mode zu bauen. Ich habe nicht die C ++ Builder IDE verwendet, aber ich wäre sehr überrascht, wenn es einen GUI-Builder hat, die so schön wie Delphi ist.

Obwohl vordergründig die Syntax von C ++ mehr sieht aus wie die von Java, Delphi-Objektmodell ist eigentlich näher an der Java. Obwohl Zeiger in Delphi vorhanden sind, werden in der Praxis Objektreferenzen (wie die in Java) 99% der Zeit verwendet. Auch in der modernen C ++, glaube ich nicht, es ist möglich, Zeiger zu vermeiden. Nicht, dass es etwas falsch mit Zeigern an sich, sondern in der Praxis ....

Auf eine persönliche Note, ich bin meistens ein Java-Typ in diesen Tagen, aber ich habe 2 Jahre mit Delphi arbeiten und würde sofort gehen, um es zurück. Im Gegensatz dazu habe ich nur sehr begrenzte Erfahrungen mit C ++ und würde es vorziehen, Toiletten zu reinigen als Rückkehr in dieser Sprache:)

Natürlich java sintax ist eher wie C ++ als wie delphi, aber ich denke, dass das Objektmodell zu delphi mehr ähnelt:

  • Einfachvererbung. Schnittstellen existieren, aber sind eher wie COM als wie Java-Schnittstellen.
  • Objekte werden auf dem Heap zugewiesen und durch Bezugnahme
  • zugegriffen

Sie ein Papier Vergleich der drei Sprachen finden hier

Ich denke, wenn Sie mit Delphi gehen Sie finden es einfacher, nachdem einige Male zu verwenden, auch hat es Dritte Unterstützung und einige der Features in Delphi vor C ++ Builder eingeführt

auch dieses Blog von Ex-Java lesen und jetzt dem Mann hinter dem meisten Datenbank und DataSnap Arbeit in Delphi Steve Shaughnessy, über seine Erfahrungen über die Programmierung Delphi nach 10 Jahren Java :-) http://blogs.codegear.com/steveshaughnessy/2006/12/03/ 30193

Es gibt nichts, ich habe in C ++ VCL zu tun, nicht in der Lage gewesen, die ich nicht mit Delphi VCL und fast all Delphi-Komponenten funktionieren in C ++ Builder tun könnte. Da ich für Windows und UNIX-Programm, C ++ ist mehr tragbar.

Wenn Sie C ++ STL oder eine andere gut gestaltete Bibliothek für Ihre Container verwenden, Müllabfuhr Art ein strittiger Punkt wird, und ansonsten manuelle GC ist nicht schwer (man lernt schnell gute Gewohnheiten - was sollte man sowieso üben unabhängig von einem GC). Solange Sie RAII wo möglich nutzen, Ihre Speicherverwaltung in Container gekapselt halten, auf Objektbesitz und nur verwenden Zeiger als nilable Referenzen klar sein (von denen alle sollten Sie auch unabhängig von der Sprache tun), sollte GC wirklich nicht ein Ausgabe.

"Zum Beispiel der Delphi IDE total freakin ist awesome für GUIs in einer WYSIWYG-Mode zu bauen. Ich habe nicht den C ++ Builder IDE verwendet, aber ich würde wirklich überrascht, wenn es einen GUI-Builder hat, die so schön ist, als Delphi. "

Eigentlich ist die C ++ Builder GUI-Editor genau das gleiche Editor, und arbeitet in der gleichen Weise. Es ist fantastisch.

NET hat eine große Anzahl von Klassen, ähnlich wie Java. C # hat ähnliche Syntax wie Java und wegen der großen Werke Klassenbibliothek ziemlich ähnlich. Und es ist ein vollkommen ausreichend Umfeld zu programmieren. Aber ehrlich gesagt ist Delphi eine viel angenehmere Sprache, IDE und Rahmenbedingungen mit zu arbeiten. C # wurde von der gleichen Person entwickelt, die Delphi entworfen und „fühlt“ sehr ähnlich in vielerlei Hinsicht so nicht davon ausgehen, dass, weil Delphi zu nativen Code kompiliert (obwohl Sie Delphi .NET als auch verwenden können) ist es grundsätzlich schwieriger zu bedienen. Es ist nicht, überhaupt nicht.

Meine persönliche Empfehlung wäre für Delphi, weil es eine coole Sprache ist. Allerdings, wenn Sie lernen, C ++ interessiert sind, C ++ Builder ist wahrscheinlich die schönste Art und Weise Sie es tun könnte.

I-Programm professionaly in Delphi für die letzten 10 Jahre und haben eine gute Kenntnisse in C ++. Ich würde auf den Delphi Weg gehen. Syntax ist viel einfacher und auch Speicherverwaltung. Das GC für native Delphi Ich habe nicht gehört, noch ... Obwohl ich nicht viel, um die Fallen auf Delphi.Net Code wegen der .NET gc eingeführt gefallen hat, ich bin nicht viel gern GCS; -)

Eine Sache, die ich vergaß zu erwähnen, vor:

Aus Kostensicht, die Sie nicht wirklich Notwendigkeit zu wählen. Kaufen Sie die RAD Studio Paket, und für eine bescheidene zusätzliche Kosten über eine einzelne Sprache, erhalten Sie sowohl Delphi und C ++ Builder Persönlichkeiten in der gleichen IDE.

Und, ist es erwähnenswert, dass das C ++ Builder-Paket des Delphi-Compiler enthält, und Sie können schreiben / hinzufügen Delphi .pas Dateien und schließen sie als Teil Ihres C ++ Projekte.

Wenn Sie vorhaben, eine Menge von Windows-Programmierung zu tun, lernen C ++. Würden Sie Deutsch in Vorbereitung für eine Reise nach Frankreich lernen? C / C ++ ist die Muttersprache des Windows-API. Der Umgang mit WinAPI Datenstrukturen und Anrufen ist so viel einfacher, in C / C ++. In Bezug auf RAD, habe ich MSVC für etwa 13 Jahren und ich kann zusammen eine GUI-Anwendung Peitsche so schnell wie jemand Visual Studio GUI-Editor.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top