Autor Beitrag
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Mo 16.11.09 09:07 
user profile iconAllesquarks hat folgendes geschrieben Zum zitierten Posting springen:
Solche Tests wären mir neu. Hast du da Quellen?

In der c't war ein Test über 2-3 Ausgaben zwischen C/C++, Delphi, Java und .NET.

Ergebnis in wenigen Sätzen:

Im Bereich "Number Crunsher" ist C/C++ die #1. Jedoch sobald objektorientierte Techniken (overload/override/polimorphy/... ) in's Spiel kommen verliert C/C++ und landet mit Abstand auf den letzten Platz. Delphi/Java/.NET zeigen hier untereinander nur irrelevante Performance-Unterschiede.

Und wenn einer wieder sagen will das managed Laufzeitumgebungen langsamer sind als native Code: Kann mir jemand eine schnellere Volltextengine wie Lucene zeigen oder eine schnellere Datenbank als H2 (beides Java)?
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Mo 16.11.09 13:23 
Hi,
user profile iconAllesquarks hat folgendes geschrieben Zum zitierten Posting springen:
Solche Tests wären mir neu. Hast du da Quellen? Meine Erfahrung zeigt, dass wenn jemand beim Delphi Compiler von Schnelligkeit redet, dann meint er die Compilierzeit und nicht die für viele viel wichtigere Ausführungszeit des fertigen Kompilates. Selbst wenn man ohne Schnickschnack wie SSE misst, was man in Delphi glaube ich gar nicht anstellen kann, verliert es trotzdem immer.

das kommt immer darauf an, welchen Teilbereich man sich anguckt. C++ ist z. B. recht langsam beim arbeiten mit Objekten. Das ist der Preis, der für Mehrfachvererbung uns solche spirenzchen gezahlt werden muss Delphi ist peinlich langsam, wenn man mit 64Bit Integer Werten arbeitet, da dieser wohl ziemlich Schlecht implementiert ist.

Aber mal ehrlich Jungs, 99,9% von uns schreiben Programme bei denen es völlig egal ist, ob eine Operation jetzt 100ms oder 150ms dauert. Wenn es Performance Probleme gibt, dann liegt dann kann man in den aller meisten Fällen durch eine Optimierung des Algorithmus viel mehr reißen, als wenn man selbigen in einer anderen Sprache implementiert.

C++ ist das Englisch des Programmierers, also eine Sprache die man zumindest in ihren Grundlagen beherrschen sollte, weil sie jeder Spricht und man ständig in der Fachliteratur drauf stößt. Ob man sie dann auch im täglich Leben verwendet ist dabei im Grunde genau so unwichtig, wie die Frage ob sie diesen Status erlangt hat, weil sie wirklich die beste Sprache ist oder bloß, weil sie zur rechten Zeit vom rechten Angestellten, der Rechten Firma entdeckt und gehyped wurde.

Fakt ist, es gibt die beste Sprache nicht. Es gibt höchstens die Beste Sprache für diese oder jene Aufgabe. Da hat Delphi genau so seine Existenzberechtigung wie C++, PHP, Prolog, Lisp und auch Fortran wird heute noch zu recht in seinen Nischen eingesetzt. Daher finde ich es für jemanden der Professionell Programmieren will auch nicht besonders weise, sich auf nur eine Sprache fest zu legen. Mal ganz abgesehen davon, dass man, wenn man C(++), Pascal und Basic kann, in den allermeisten anderen Sprachen nur einen Mix aus diesen erkennt der mit einigen wenigen Extras versehen wurde.

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
funcry
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: Mo 16.11.09 13:42 
Meine Selbstversuche ergaben ein anderes Resultat. Ich habe ein rechenintensives Projekt 1:1 (inklusive GUI) in Delphi und c#, wobei c# hier erheblich schneller als Delphi rechnet. Vermutlich wäre ein Test mit "Wissenschaftlich genauer Vorgehenswiese" hier aufschlussreich. Vielleicht kenne ich auch nicht alle möglichen Optimierungen. Delphi hat jedenfalls definitiv seine Stärken (eher in anderen Bereichen).

nVidia will zukünftig direkt c++ auf seinen GPUs unterstützen (derzeit c). Das wäre - zumindest für mich - schon ein gewisser Anreiz.
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 16.11.09 13:53 
user profile iconfuncry hat folgendes geschrieben Zum zitierten Posting springen:
in Delphi und c#, wobei c# hier erheblich schneller als Delphi rechnet.

Dir ist aber schon klar, dass man C# und C++ nicht vergleichen kann? Das sind komplett verschiedene Programmiersprachen.

Ich habe mir letztes Wochenende ein C++ Buch gekauft und angefangen, es durchzuarbeiten. Das hat mehrere Gründe. Zum einen ist an vielen Stellen die Doku von SDK's auf C++ zugeschnitten. Da kann es nicht schaden, wenn man es zumindest lesen kann und evtl in Delphi oder andere Sprachen übersetzen kann.
Außerdem möchte ich mich rein interessehalber mal etwas mit der Programmierung von Addons/Plugins für mein TomTom beschäftigen. Quasi als Winterprojekt. Und auf dem TomTom läuft Linux. Hier ist nunmal C++ die Sprache der Wahl. Und als 3. Grund kann es nie schaden, wenn man behaupten kann, man hätte Grundlegende C++ Kenntnisse.

Allerdings ist mir schon auf den ersten 100 Seiten des Buchs aufgefalle, wie viele Möglichkeiten C++ bietet, Dinge abzukürzen und sich damit gleichzeitig in den Fuß zu schießen. Ich glaube, mit C++ muss man noch sehr viel umsichtiger Programmieren, als wie man es z.B. mit Delphi muss.

Gruß,
Jens

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
funcry
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: Mo 16.11.09 19:34 
Sicherlich, immerhin nutzt c# das .net Framework.

Am Rande bemerkt, es ist wirklich ein ganze Menge vergleichbar, sonfern man ein Vergleichskriterium hat.
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Mo 16.11.09 20:49 
user profile iconalzaimar hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
angeblich ist es sehr schnell.
Das ist Delphi auch.
user profile iconNamenlosnameless hat folgendes geschrieben Zum zitierten Posting springen:
Das macht es schneller und damit geeigneter für Spiele.
Schneller als was? Delphi? Nö. Die einschlägig bekannten Performancevergleiche zwischen C, C++ und Delphi gehen seit Jahren unentschieden aus. Manchmal ist C marginal schneller, manchmal Delphi.

Der einzige Vorteil von C(++) ist der einzige Nachteil von Delphi: Man kann (ohne Weiteres) keine Treiber oder Betriebssysteme programmieren, einfach weil das Framework hierfür fehlt.


Und wenn man statt native Delphi Delphi Prism verwendet?

_________________
Die Lösung ist nicht siebzehn.
Chemiker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 194
Erhaltene Danke: 14

XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit, Win 10, Win 11
BDS 2006, RAD Studio 2009+C++, Delphi 13, VS 2010 Prof.
BeitragVerfasst: Mo 16.11.09 23:58 
Hallo,

ich lese oft in solchen Diskussionen, dass man mit Delphi keinen Treiber oder BS schreiben kann.

Woran wird das fest gemacht, warum soll das nicht möglich sein?
Ich sehe eigentlich keinen Grund warum das mit C/C++ möglich sein soll und mit Delphi nicht.

Jedenfalls habe ich im vorigen Jahrhundert einen Druckertreiber für einen ET-Drucker unter
DOS mit Turbo Pascal/Turbo Assembler geschrieben.

Das das heute keinen Sinn mehr macht, steht auf einem anderen Blatt.

Bis bald Chemiker
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Di 17.11.09 12:09 
Hi,
user profile iconChemiker hat folgendes geschrieben Zum zitierten Posting springen:
Woran wird das fest gemacht, warum soll das nicht möglich sein?
Ich sehe eigentlich keinen Grund warum das mit C/C++ möglich sein soll und mit Delphi nicht.


Treiber müssen unter Windows im Kernel Modus laufen. Die Kompilate müssen also bestimmten Kriterien entsprechen, welche der Delphi Compiler nicht erfüllen kann. Meines Wissens können es aber auch die meisten C++ Compiler nicht. Man muss hier explizit auf Visual C++ aus dem hause Microsoft zurück greifen.

//Edit: Hier werden ein paar Worte dazu gesagt.

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Di 17.11.09 12:28 
Hallo,

Dann ist eben C++ "die" häufigst benutzte Sprache.
Für C/C++ gibt es zudem die meisten Bibliotheken, die einem doppelte Arbeit abnehmen.
Schnelle Programme enstehen vielfach durch geschickte Algorithmen.
Man kann sich ja mit shootout's trösten. [url=shootout.alioth.debian.org/]The Computer Language
Benchmarks Game[/url] das es nicht immer sooo schlimm ist.
shootout.alioth.debi...;lang2=gpp&box=1
Aber die sind auch albern. Bei Pi-Digits verwenden alle eine Dll für das rechnen mit ewig-langen Zahlen,
Objekte werden nirgendwo eingesetzt.
Müßig und für den privaten Gebrauch unwichtig ob 100 ms oder 150 ms, mehr ein Sport.

Aber ein Standard hat eben auch große Vorteile, viele Leute die es können, und mehr die es sehr gut können, als bei einer Nischen-Sprache.

Gruß Horst
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Mi 18.11.09 18:17 
user profile iconKha hat folgendes geschrieben:
Wenn für dich keine Sprache, die etwa "paint.exe" aufrufen kann, unter "plattformunabhängig" fällt, was bleibt denn bitte dann :nixweiss: ?


Naja, wenn schon "mspaint.exe". :P

Ich muss aber sagen, dass für mich zum Beispiel die Delphi Community einen recht großen Eindruck macht, was ich von C++ erstmal nicht behaupten kann. Und für Delphi habe ich schon einige nützliche Dinge gefunden (z. B. SynEdit, was ich auch als Anwender angenehmer als Scintilla empfinde, TBX, Indy, THTMLViewer von pbear.com, GLScene, TChart), was ich für andere Sprachen eben nicht gefunden habe. :wink:

Und gerade das sind für mich unersetzliche Kriterien.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Mi 18.11.09 19:50 
user profile iconChemiker hat folgendes geschrieben Zum zitierten Posting springen:
Woran wird das fest gemacht, warum soll das nicht möglich sein?
Ich sehe eigentlich keinen Grund warum das mit C/C++ möglich sein soll und mit Delphi nicht.


Hallo,

ganz streng genommen stimmt das ja auch nicht, weil man ganz streng genommen jedes Problem mit jeder Programmiersprache lösen kann, das hat schon Turing bewiesen. Bloss ist das für die Praxis wahr aber irrelevant.

Man kann viele hardwarenahe Aufgaben in Delphi einfach deswegen nicht sinnvoll angehen, weil die Voraussetzungen fehlen: die Dokumentation zur Hardware bezieht sich auf C und die notwendigen "Bindings" sind auch nur in C mitgeliefert. Man kann natürlich jede DLL aus jeder Sprache aufrufen, aber dazu braucht man eben die Definitionen der Funktionen als .H-File oder für Delphi als .PAS. Du kannst jetzt sagen, sowas schüttelt man locker aus dem Ärmel, dann fang mal mit der Übersetzung von Windows.H in Windows.PAS an. Das sind über 30000 Zeilen (D7) und viele Funktionen sind garnicht trivial zu übersetzen.

Ich bin überzeugt, mit dem nötigen Knowhow und vielen Tricks mit Brückenfunktionen in Inline Assembler könnte man auch Delphi die Treiberentwicklung beibringen, aber das würde einige Mannjahre erfordern, und wozu soll es gut sein? Von MS kriegt man die Entwicklungssoftware kostenlos.

Gruss Reinhard
Chemiker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 194
Erhaltene Danke: 14

XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit, Win 10, Win 11
BDS 2006, RAD Studio 2009+C++, Delphi 13, VS 2010 Prof.
BeitragVerfasst: Do 19.11.09 23:46 
Hallo Reinhard Kern,

dass es keinen Sinn macht habe ich ja schon in meinem Beitrag geschrieben, aber trotzdem ist es nicht unmöglich.

Bis bald Chemiker
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.11.09 01:34 
user profile iconNamenlosnameless hat folgendes geschrieben Zum zitierten Posting springen:
C++ ist sehr nahe an der Rechnersprache!

Hä? Das musst du mir mal erklären. Warum ist
for (i = 0; i < 9; i++) näher an der Rechnersprache (Maschinencode) als for i := 0 to 9?

Beides sind Hochsprachen, die mit dem resultierenden Maschinencode nichts zu tun haben. Deswegen kann man ja auch den gleichen Quellcode mit den zugehörigen Kompiler für jede Plattform übersetzen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 20.11.09 01:48 
user profile iconReinhard Kern hat folgendes geschrieben Zum zitierten Posting springen:
Ich bin überzeugt, mit dem nötigen Knowhow und vielen Tricks mit Brückenfunktionen in Inline Assembler könnte man auch Delphi die Treiberentwicklung beibringen, aber das würde einige Mannjahre erfordern
Es gab das Delphi Driver Development Kit. Damit funktioniert das schon. Es macht keinen Sinn und um ernsthaft damit etwas zu machen ist noch einige Arbeit erforderlich, aber ich hatte damit selbst einmal ein wenig experimentiert. Funktionieren tut es.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.11.09 02:49 
Zur Treiberentwicklung mit Delphi: www.michael-puff.de/.../GrenzenDelphi.shtml

Kurz: Delphi war nie dazu gedacht Treiber zu entwickeln. Es macht also keinen Sinn dies Delphi als Nachteil auszulegen. Ich sag ja auch nicht, dass ein Schraubenzieher schlechter als ein Hammer ist, weil ich damit keine Nägel in die Wand schlagen kann. Man nimmt eben für jede Aufgabe das passende Werkzeug. Und für die Treiberentwicklung ist es ebn nicht Delphi. Dafür hat (hatte) es andere Stärken.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 20.11.09 03:43 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Dafür hat (hatte) es andere Stärken.


Könntest du ein paar Dinge aufzählen die man mit Delphi besonders gut kann? Ich mein, ich mag Delphi aber konkrete Vorteile gegenüber anderen Sprachen kann ich nicht nennen.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Fr 20.11.09 15:07 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:


Könntest du ein paar Dinge aufzählen die man mit Delphi besonders gut kann? Ich mein, ich mag Delphi aber konkrete Vorteile gegenüber anderen Sprachen kann ich nicht nennen.

lg elundril


Hallo,

ich kenne Pascal ja schon seit Niklaus Wirth es entworfen hat, und das war für Schulungszwecke. Und dafür ist die Sprache auch heute noch gut, im Gegensatz etwa zu C++. Ich schätze auch, dass der Anteil an Schulen grösser ist als in freier Wildbahn, aber darüber bekommt man wohl keine genaueren Zahlen.

Gruss Reinhard
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 20.11.09 16:26 
Der Anteil ist da soweit ich das sehe auch sehr sehr klein. Früher wurde bei uns an der Schule, an der ich mein Abitur gemacht habe, auch mit Pascal bzw. Delphi gearbeitet, jetzt mit Java. Und genauso ist es auch anderswo gewesen. Was auch kein Wunder ist.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.11.09 23:14 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Dafür hat (hatte) es andere Stärken.


Könntest du ein paar Dinge aufzählen die man mit Delphi besonders gut kann? Ich mein, ich mag Delphi aber konkrete Vorteile gegenüber anderen Sprachen kann ich nicht nennen.

Früher als Borland noch Borland hieß war Delphi die einzige IDE, mit der man grafisch schnell eine Oberfläche erstellen konnte. Denn dafür war Delphi entwickelt worden, schnell und unkompliziert eine Windows Anwendung für den Benutzermodus entwickeln zu können. Microsoft hat dann später die MFC entwickelt, aber das war im Vergleich zur Borland VCL ein ziemlicher Krampf. Diesen Vorteil hat Delphi natürlich mittlerweile verloren, deswegen habe ich das hatte in Klammern dazu gesetzt. .NET IDEs und mittlerweile auch Java IDS bieten heutzutage ähnlich bequeme Möglichkeiten eine Windowsanwendung für den Benutzermodus zu entwickeln.

Auch ist es recht einfach mit Delphi Datenbanken anzusprechen, weil das der ursprüngliche Zweck war, für den Borland damals -- als Borland noch, na ihr wisst schon -- Delphi entworfen hat. Deswegen ja auch die legende um die Entstehung des Namens Delphi.

Dann war Delphi recht einfach für Einsteiger zu erlernen, da es auf Pascal basiert, eine Sprache, die extra für Lehrzwecke von Niklas Wirth entworfen wurde. Während hingegen bei C habe ich manchmal den Eindruck, dass die Entwickler es so kryptisch wie möglich machen wollten.