AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

warum C++ statt Delphi?

Ein Thema von stahli · begonnen am 24. Dez 2012 · letzter Beitrag vom 10. Jan 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#1

AW: warum C++ statt Delphi?

  Alt 24. Dez 2012, 21:10
Zitat:
Anscheinend hängt C++ Delphi auch in einem technologisch hinterher (was offenbar gerade ausgeglichen wird).
Wenn du hier C++ schreibst, meinst du den C++ Builder.

Wenn man mit C++ anfängt, dann mit Visual Studio. Visual C++ Express gibt es kostenlos und man darf damit ohne Limits kommerziell programmieren. Schon darum lohnt sich für Anfänger der C++ Builder kaum. Außerdem ist der Compiler technisch Jahre hinter MS und Intel. Man kann C++ auch für .Net Programme nutzen, auch das ist ein Vorteil von VC++. Außerdem arbeitet der C++ Builder mit der in Pascal geschriebenen VCL. Dann doch bitte gleich Delphi.

Zitat:
Java würde ich eher als Skriptsprache für den Internetbrowser sehen. Völlig ungeeignet für performante Desktop-Programme.
Das halte ich für ein Gerücht.
Gruß
Cookie
  Mit Zitat antworten Zitat
knight

Registriert seit: 31. Mär 2012
13 Beiträge
 
#2

AW: warum C++ statt Delphi?

  Alt 24. Dez 2012, 21:25

Zitat:
Java würde ich eher als Skriptsprache für den Internetbrowser sehen. Völlig ungeeignet für performante Desktop-Programme.
Das halte ich für ein Gerücht.
Schaue dir mal die Berichte (der Entwickler) zu LibreOffice 3.4 an. Dort hat man einige Im- und Exportfilter von Java auf C++ umgestellt (bei LibreOffice will man generell weg von der Java-Abhängigkeit). Die C++ Variante ist 40x schneller als die Java Variante gewesen (und ich glaube nicht, daß man da schon alle Optimierungsmöglichkeiten genutzt hat).

knight
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#3

AW: warum C++ statt Delphi?

  Alt 24. Dez 2012, 21:37
Natürlich sind native Programme schneller, aber das es für performante Desktop-Programme nicht taugt galt vielleicht vor 10 jahren, aber mittlerweile sind die Rechner so schnell, dass da kaum noch Unterschiede auffallen. Außerdem ist auch nicht alles grundsätzlich 40 mal langsamer.
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: warum C++ statt Delphi?

  Alt 24. Dez 2012, 23:20
Schaue dir mal die Berichte (der Entwickler) zu LibreOffice 3.4 an. Dort hat man einige Im- und Exportfilter von Java auf C++ umgestellt (bei LibreOffice will man generell weg von der Java-Abhängigkeit). Die C++ Variante ist 40x schneller als die Java Variante gewesen (und ich glaube nicht, daß man da schon alle Optimierungsmöglichkeiten genutzt hat).
Da waren wohl die Java entwickler von einer zu starken Objektorientierung und Abstrahierung zu fasziniert das sie dabei die Performance vergessen haben. Kann mal passieren. Hätten wahrscheinlich durch ein paar Stunden Profiling diese vervierzigfachung der Performance auch hin bekommen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#5

AW: warum C++ statt Delphi?

  Alt 25. Dez 2012, 06:53
Frohe Weihnachten allen!
Oder zumindest Frohe Fest/Feier*/Frei-tage!

mhh, ich dachte immer, daß c++ aufgrund der differenzierteren Aufteilung der Spachelemente in Libraries noch effizienteren und einen Tacken schneller laufenden Code produzieren kann.
Noch schneller sei/ist wohl nur C - und darüber geht wohl nur Prozessor optimierter Assemblercode -
wobei bei C ja da noch ermöglicht schneller komplexere Programme (wie modernere Betriebssysteme außer UNIX) schneller zu erstellen.

Obwohl es sogar GUIbasierte Dateimanager für DOS in Assembler gab, setzt man ASM denk ich heute nur noch für kürzere Spezialcodestücke, die wenig Zeilen INLINE CODE aber maximale Effizienz brauchen ein (10-100 Zeilen)

Dafür ist das Schreiben in C fehleranfälliger als C++.

Und JAVA - der Compiler bringt doch auch in Maschinensprache übersetzten Code hervor, der auf ausgelagerte, vorgefertigte compilierte Funktionen zurückgreift - ähnlich DLLs - nur permanent eben.
Das ist doch keine Scriptsprache. Javascript - das is für den Browser.
Aber das Klassen/Funktionensystem hat mir 1992 schon nicht gefallen. fand ich persönlich ekelhaft anzuwenden. Aber das kann man nicht generalisieren.

C/c++ war mir leider zu zeitaufwendig zu lernen und damals gab es noch kein bezahlbares Internet.

Bin von Quickbasic (1993) über VB5 (1997) direkt zu Delphi 3(2002).
eine Signatur? - in 2022? - WOZU ?!!!
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: warum C++ statt Delphi?

  Alt 25. Dez 2012, 07:18
Ich kenn mich mit Java noch nicht so gut aus (muss es jedoch wegen Uni lernen >/), aber man kann angeblich Codebereiche definieren, die zur Laufzeit nicht interpretiert sondern richtig kompiliert und ausgeführt werden.
Das hat sicher nen Namen, mag es mir jemand verraten? ^_^
Habs, JIT
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#7

AW: warum C++ statt Delphi?

  Alt 26. Dez 2012, 13:51
Ich kenn mich mit Java noch nicht so gut aus (muss es jedoch wegen Uni lernen >/), aber man kann angeblich Codebereiche definieren, die zur Laufzeit nicht interpretiert sondern richtig kompiliert und ausgeführt werden.
Das hat sicher nen Namen, mag es mir jemand verraten? ^_^
Habs, JIT
Falsch(Huch..sind da meine Lehrer an der Berufsschule mal mehr up2date o.O?!)
In Java(Zumindest auf den gängigen Platformen Win/Linux/Mac) wird der KOMPLETTE JavaBytecode per Jitcompiler zur laufzeit auf den Prozessor compiliert. Interpretiert wird da gar nichts mehr .

Java ist schon wirklich sehr schnell geworden. Das einzige was hier noch performance killen KÖNNTE wäre dieser Java-Wahn der zigfachen verschachtelten Abstraktion bevor auch nur ein hauch von Implementierung zu erkennen ist. Das ist so ziemlich das einzige was mich an Java tierisch nervt!
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#8

AW: warum C++ statt Delphi?

  Alt 26. Dez 2012, 14:00
Ich kenn mich mit Java noch nicht so gut aus (muss es jedoch wegen Uni lernen >/), aber man kann angeblich Codebereiche definieren, die zur Laufzeit nicht interpretiert sondern richtig kompiliert und ausgeführt werden.
Das hat sicher nen Namen, mag es mir jemand verraten? ^_^
Habs, JIT
Falsch(Huch..sind da meine Lehrer an der Berufsschule mal mehr up2date o.O?!)
In Java(Zumindest auf den gängigen Platformen Win/Linux/Mac) wird der KOMPLETTE JavaBytecode per Jitcompiler zur laufzeit auf den Prozessor compiliert. Interpretiert wird da gar nichts mehr
Uhm, joa, ich habs mir ja nur ergoogelt bzw. bei Wikipedia nachgelesen.
Ich wusste nicht, dass das der Fall war, also dass alles kompiliert anstatt interpretiert wird. Hmmm.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
pixfreak

Registriert seit: 6. Jul 2007
112 Beiträge
 
Delphi XE3 Professional
 
#9

AW: warum C++ statt Delphi?

  Alt 25. Dez 2012, 07:37
Hallo zusammen,

C++ ist um ein vieles mächtiger als Delphi. Allein die Template Möglichkeiten gehen bei weitem über die der Generics von Delphi hinaus.

Oder die Möglichkeit der Mehrfachvererbung: Ok, man muss schon aufpassen, was man da wie vererbt, das kann sehr schnell unübersichtlich und fehleranfällig werden, lässt einem aber doch weite Freiheiten. Die Interface sind da nur ein fadenscheiniger Ersatz.

Mit Boost bzw. jetzt dem neuen Standard kann man viele schöne Sachen machen, Multithreading z.B. ist reltiv schnell und sicher umgesetzt.

Ja und da ist noch die Sache, dass ich fast jede Klasse auch lokal instanziieren kann und nicht immer mit new einen neuen Speicherplatz dynamisch anfordern muss. In Delphi gibt es da ganz schnell diese häßlichen try..finaly Verschachtelungen, wenn ich mal etwas mehr in einer Methode brauche, ok, etwas am Design verändert, kann ich das vielleicht auch vermeiden.

Ich persönlich mag C++ sehr gerne und kann damit auch recht gut um, es bedarf allerdings eine lange Lernphase, aber wenn man es drauf hat, dann kann man recht dolle Sachen damit machen.

Persönlich fehlt mir in C++ aber die with-Anweisung, da hat Delphi was voraus

Ich finde, das vergleichen der Sprachen ist aber nur eine seite der Medallie. Zum proggen brauche ich auch noch einen Compiler und am besten eine ordentliche IDE. Und da geht es schon los.

Wenn ich das richtig verfolgt habe, sind die neuen C++ Features nur im 64 Bit Compiler verfügar, man belehre mich, wenn ich mich irren sollte. Für 32 Bit werkelt immer noch der alte. Die Produktivität ist mit dem C++ Builder nicht mit Delphi zu vergleichen, ein Hauptgrund warum ich als One-man-Tastaturhämmerer auf Delphi setze, wegen z.B.
  • keine Refaktorings, außer Umbenennen, und das nur sehr oberflächlich
  • keine Klassenvervollständigung ala Strg-shift-C, man muss immer in zwei Dateien, Header und Code, die Funktionen einfügen und bearbeiten (ok, mit UML gehts auch so, der Klassenbrowser regt mich in den akuellen Versionen nur auf)
  • VCL wird halt irgendwie mit rein operiert, VCL Klassen müssen dynamisch angelegt werden, statisch geht nicht
  • der Experte für vorcompilierte Header ist tricky, man muss schon selbst Hand anlegen, damit ordentliche precomiled Headers heraus kommen, die auch was bringen in Bezug auf Compiliergeschwindigkeit. Und da kommen z.B. die DevExpress Compos, die haben in einem Header Daten stehen und die zerschießen den precomiled Header so, dass er nicht verwendet werden kann. Ich hab das schon mehrmals denen geschrieben, ist aber in jeder Version wieder drinne... (Ich habs dann mal rausoperiert...)
  • der Delphi Compiler ist um Welten schneller, ok für den Builder gibt es TwineCompile, da sieht man mal, was ginge, aber Delphi bleibt schneller (single-pass)
  • Code-completion funktioniert nur mit einem ordentlichen precomiled Header und auf einem schnellen Rechner ordentlich, sonst passiert es schon mal, dass man über eine Sekunde wartet, bis die Code completion angezeigt wird, und ist sie einmal angestossen muss man auch warten und kann nicht weitertippen

Also, der Emba Compiler (ich rede jetzt mal nur vom 32er) ist wie schon gesagt, meilenweit hinter den aktuellen Compilern zurück. Aber es gibt noch ein Problem: Welches Tool nimmt man für die Oberflächenprogrammierung? Ok, QT fällt mir gerade ein, VCL braucht die Builder IDE und die ist grottig, MFC ist doch eh fast WinAPI, ja und dann?

Also meine Meinung: Für "Backboxen" würde ich C++ mit einem vernünftigen Compiler nehmen, kommt eine GUI dazu, dann entweder in Schichten mit verschiedenen Systemem arbeiten oder eben auf das Brot- und Wassertool Delphi ausweichen. (Um .net habe ich bis jetzt einen Bogen gemacht und Java mag ich persönlich nicht so...)

So, nun denn, frohe Weihnachten!


Gruß Pixfreak
... und noch nen C++ Builder XE2
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: warum C++ statt Delphi?

  Alt 25. Dez 2012, 08:52
C++ ist um ein vieles mächtiger als Delphi. Allein die Template Möglichkeiten gehen bei weitem über die der Generics von Delphi hinaus.
Vielfaches halte ich übertrieben. Es ist in einzelnen Bereichen Mächtiger.

Oder die Möglichkeit der Mehrfachvererbung: Ok, man muss schon aufpassen, was man da wie vererbt, das kann sehr schnell unübersichtlich und fehleranfällig werden, lässt einem aber doch weite Freiheiten. Die Interface sind da nur ein fadenscheiniger Ersatz.
Voll Kontra. Ich kenn nur C++ die Mehrfachvererbung kann und das auch nur weil man nicht fähig war mit Interfaces einen vernünftige Implementierung hin zu bekommen.
Mehrfachvererbung verursacht bei weiten mehr Probleme als es löst. Interfaces ist ein Sprachkonstrukt ohne das viele Realisierungen nicht so elegant zu realisieren wären.

Mit Boost bzw. jetzt dem neuen Standard kann man viele schöne Sachen machen, Multithreading z.B. ist reltiv schnell und sicher umgesetzt.
Das fehlt bei Delphi natürlich (wie so viele Spezialbibliotheken die man nur für C/C++ zur verfügung stellt).

Ja und da ist noch die Sache, dass ich fast jede Klasse auch lokal instanziieren kann und nicht immer mit new einen neuen Speicherplatz dynamisch anfordern muss.
Ich vermiss das nicht

In Delphi gibt es da ganz schnell diese häßlichen try..finaly Verschachtelungen, wenn ich mal etwas mehr in einer Methode brauche, ok, etwas am Design verändert, kann ich das vielleicht auch vermeiden.
Ohne GC (wie bei Java) muss man halt die ganzen Variablen etwas früher en Block anlegen. Dann kommt man mit 1-2 try-finaly-Ebenen aus.

Ich persönlich mag C++ sehr gerne und kann damit auch recht gut um, ...
Ich bin froh das ich es im Berufsleben nur relativ kurz benötigt hatte und dort dann nach Delphi umstellen konnte. Der Produktiviätsgewinn gegenüber MFC/VisualC++ war gewaltig.

Persönlich fehlt mir in C++ aber die with-Anweisung, da hat Delphi was voraus
Die With-Anweisung fliegt bei uns immer raus wenn man sie trifft. Die ungewollten Fehler damit sind zu zeitaufwendig zu finden. Wenn man doch wie in VB den Punkt nicht eingespart hätte ....

Also meine Meinung: Für "Backboxen" würde ich C++ mit einem vernünftigen Compiler nehmen, kommt eine GUI dazu, dann entweder in Schichten mit verschiedenen Systemem arbeiten oder eben auf das Brot- und Wassertool Delphi ausweichen. (Um .net habe ich bis jetzt einen Bogen gemacht und Java mag ich persönlich nicht so...)
Unnötigerweise mehre IDE's und Sprachen einzusetzen kann schnell zum Scheitern eines Projektes führen. Wir hatten vor ca. 12 Jahren ein neues Projekt aufgesetzt. Zuerst hatten wir alle uns schön in .NET mit VS eingearbeitet und hatten schon soweit uns alle damit anzufreunden und es als die sinnvolle Lösung angesehen haben (Waren gemischt Delphi, MFC/VS-Entwickler und eine paar "Hardcore" C-Entwickler die primär auf Embedded-Systemen gearbeitet hatten). Jedoch gab's eine paar "superschlaue" Externe (die auch noch was zu sagen hatten) die meinten wir müssten das anders machen und auf existierende Lösungen aufsetzen wie ein auf FTP basierendes Messaging-System (Welchen Vorteil FTP hier hatte ist mir heute noch nicht klar). Es wurde dann festgelegt den einen Teil mit C umzusetzen ist(ist ja schön portierbar falls man irgendwann mal eine Port nach Linux benötigt), die Mittleware mit C++ (letztendlich ATL und MFC schön gemischt mit maximaler komplexität) und Client war dann noch offen ob .NET oder Delphi. Da wir schon einen Großteil des Vorteils einer einheitlichen Umgebung aufgegeben hatten sind wir bei Delphi geblieben.
Bei der ersten Integrationsphase hat sich dann gezeigt wo die Probleme lagen und ich hätte jede Wette gewonnen da es mal wieder typisch vagabuntierende (String-)Zeiger auf C++-Seite waren. Hab mir dann relativ schnell einen anderen Job gesucht da es klar war das diese Lösung mit Volldampf an die Wand fährt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz