Was is so schlimm an Delphi

programme sind größer
Code wird langsamer verarbeitet
compiler scheisse^^

Bitte mit Vorbehalt. Lies dir nocheinmal alles in Ruhe durch und entscheide nocheinmal.

1. Programme größer: Das liegt an der mitgelieferten VCL von Delphi, die sehr nützlich ist. Wollte man ohne diese Programmieren, kann man das auch tun und erhält als Ergebnis sehr viel kleinere Executables/DLLs/Module.

2. Code langsamer: Wie schnell der Code ist liegt viel mehr am Programmierer, der davor sitzt und sich eine Implementation seiner Idee ausdenkt. Dass man verdammt sehr schnellen optimierten Code für jede CPU erstellen kann mit Delphi zeigt zum Beispiel:
FastCode-Project [1].

3. Compiler-Scheisse: Compiler und Sprache sind 2 verschiedene Dinge. Für C/C++ hat man eine riesige Auswahl an Compilern, für Delphi dagegen schon weniger, aber dass der Compiler von Borland schlecht sein soll, dagegen spricht ja schonmal Punkt 2.
Jedenfalls hat mir der Delphi-Compiler nie sonderlich Schmerzen bereitet, aber genaue Compiler-Kenntnis habe ich nicht.

[1] http://fastcode.sourceforge.net/
 
Original von bitmuncher
Scheinbar nicht, denn sonst würdest du hier nicht von einfacher Portierbarkeit reden. Delphi ist nicht Pascal und die Umbenennung der Sprache von ObjectPascal zu Delphi hatte schon seine Gründe..
Vielleicht etwas voreilig meinerseits: ich meinte die mit/in Lazarus erstellten Anwendungen. Damit fährt man als Hobbyprogrammierer erstmal ganz gut.

Meistens sind ja eben die Portierbarkeit und Systemeingriffe die Argumente, die aufgeführt werden. Jedoch sollte man das Ganze s differenzierter betrachten - wie tief möchte man im System rumwühlen und in wieweit soll etwas portierbar sein?
Auch in C/C++ läuft diesbezüglich nicht alles glatt.
Aber es soll hier kein neuer C++/Delphi WarThread werden ;)


FastCode-Project [1].
für 0x86 könnte man ja die MASM Libs ausschlachten ;).
 
...wo man merkt, dass der code langsamer verarbeitet wird. bei der heutigen prozessorleistung und speicherkapazität is das bei kleineren bis mittelgroßen anwendungen denke ich kaum ein unterschied

oh, da wär ich ganz vorsichtig. da können compiler schon einiges an einfluss haben. ich kenne mich mit dem delphi-compiler jetzt nicht aus, aber ein beispiel aus nem c-kurs kann ich dir geben. wir haben nur eine kleine routine geschrieben, mit der wir getestet haben, wieviel speicher wir reservieren können. also bei einer festen größe angefangen und dann um einen bestimmten wert erhöht. nach jeden durchgang haben wir den speicher wieder freigegeben. waren also etliche anforderungen und wieder freigeben aktionen ;-). als ide hatten wir visual studio. so, die tests hatte ich ohne das flag "release" compiliert und habe da echt etliche minuten gewartet bis das programm fertig war. als ich dann das flag einfach mal benutzt habe, war das ne sache von wenigen sekunden.
der compiler kann also auch bei kleinen sachen einen unterschied machen.

aber wie gesagt, wie gut der delphi-compiler nun auch mit allen optimierungen im vergleich zu anderen ist weiß ich nicht und stelle daher hier auch keine behauptungen auf!
 
Wir arbeiten in der Schule mit Delphi 6, weil es auf dem Programm steht. In meinem Optionskurs hab ich letztes Jahr mit VB 6 gearbeitet. Anfangs hab ich ziemlich über Delphi geflucht, da mir VB um einiges einfacher schien, zum Beispiel gibt es in VB eine Vielzahl von vordefinierten Funktionen (in Delphi ist das glaub ich auch über Bibliotheken möglich, soweit bin ich aber noch nicht). Doch irgendwann hab ich realisiert, dass man bei Delphi zu einigermassen sauberer Programmierung gezwungen wird (Variablen deklarieren, Typen auswählen ...) und es nicht nur optional ist wie in VB (option explicit). Doch der Tag an dem ich Delphi zu schätzen lernte ist noch gar nicht so lang her. Ich hab mir neulich ein Buch über C++ gekauft, und der Umstieg ist mir dank Delphi recht leicht gefallen. Mag sein, dass das subjektiv ist, aber ich finde in zwischenzeit, dass Delphi sehr gut dazu geeignet ist um Anfänger das Programmieren beizubringen und sie auf C/C++ vorzubereiten, da sich diese Sprachen ziemlich ähneln, man Delphi aber quasi "lesen" kann (while ... do ... if ... then). Dennoch denke ich, dass man genausogut gleich mit C oder C++ (prozedural) anfangen kann. Was mich an Delphi stört, oder besser gesagt an der IDE, ist dass sie mit abstürzt wenn das Programm wegen einem Fehler hängen bleibt (falsche Adressierung im Array, oder falscher Wert für eine Integer). Ausserdem gefällt mir die C/C++ Syntax einfach besser, da sie irgendwie kompakter und komfortabler ist (Zählschleifen, { } statt begin end, variablen deklarieren und gleich initialisieren). Dazu kommt noch, wie schon erwähnt die Portierbarkeit. Ausserdem ist C/C++ verbreiteter und die Fan- und Supportgemeinschaft ist einfach grösser. Ich find Delphi gar nicht schlecht, aber C++ sagt mir eher zu. Aber das ist Geschmackssache.
 
@lightsaver: Das liegt daran, dass die ganzen Debugging-Informationen mit einkompiliert werden, wenn du nicht auf Release stellst. Dass dadurch ein Programm wesentlich grösser und langsamer wird, ist völlig normal. Man sollte aber davon ausgehen, dass Debugging-Informationen nur vom Programmierer und nicht vom User genutzt werden und daher sollten Tests, mit denen man entscheiden will, ob eine bestimmte Sprache schnellere Binaries produziert, grundsätzlich ohne diese einkompilierten Informationen gemacht werden. Das hat also weniger mit dem Compiler an sich, als eher mit den verwendeten Optionen zu tun.

Ich kann aus meiner Erfahrung sagen, dass Kylix-Programme (die Linux-Version von Delphi) wesentlich schneller laufen als vergleichbare GTK- oder gar QT-Applikationen. Und mit "vergleichbar" meine ich hier gleiche Algorithmen mit lediglich syntaktisch anderer Umsetzung und funktionsidentische GUIs dazu.
 
Um mal schnell ein Programm für Windows zu schreiben finde ich VB einfach wesentlich besser als Delphi. Die ganzen Semikolons und dieses "begin ... end" gehen mir ziemlich auf den Keks.

Original von Cyberm@ster
Doch irgendwann hab ich realisiert, dass man bei Delphi zu einigermassen sauberer Programmierung gezwungen wird
Richtig, VB-Sources können wirklich schlimm aussehen. Wie sauber der Quelltext ist hängt aber trotzdem vom Programmierer ab.

VB ist ziemlich langsam, aber wenn man mal schnellere Routinen brauch, kann man sich auch eine DLL in C++ oder ASM basteln.

Das Linux-Thema lass ich hier mal aus ...
 
Original von bitmuncher
@lightsaver: Das liegt daran, dass die ganzen Debugging-Informationen mit einkompiliert werden, wenn du nicht auf Release stellst.

ich wollte eigentlich nur ein beispiel nennen und keinen grund dafür, zumal mein prof das anders begründet hat was auch logischer erscheint als deine begründung ;)
beim freigeben wurden in meinem test alle allokierten speicherbereiche mit nullen überschrieben, im release aber nicht mehr. und das passt zu den zeiten auch wesentlich besser als nur debuginfos. kann natürlich sein, dass die auch mit dabei sind.
 
Also wir lernen bei uns in der Schule im Informatikunterricht auch Delphi.

Am Anfang mocht ichs gar nicht.... ich wusste das die Syntax der von C ähnelt, aber auch das C/C++ als die "Superprogrammiersprachen" ihre Stellung schon lange inne haben^^. Jedenfalls hielt ich es für ne abgespeckte/abgeklatschte Variante davon, nur damit mans den kleinen Informatik-newbies besser erklären kann.

Aber ich hab nach kurzer Zeit schon eingesehen, dass das ein Trugschluss war. Ein paar andere Programmierer die ich kenne, programmieren auch schon lange in Delphi und machen dabei auch allerlei nützliches Zeug. Als ich dann hier im Forum mal den Code von +++ATH0 gesehen hab, der die Hide.dll geschrieben hat dachte ich erstmal nur "wow". Ich hab natürlich kein bisschen verstanden, ich verstehs auch jetzt nicht^^, aber da hab ich dann schon gesehen was mit Delphi auch überhaupt möglich ist.

Fazit:
Ich komm gut klar damit, es ist nicht allzu schwer, die größeren Binaries stören mich nicht (im übrigen kann man auch mit anderen Komponenten welche mit ~30kb größe hinkriegen, die nur die wichtigsten Befehle der VCL enthält), Portierbarkeitsprobleme nach Linux sind schade - auch für mich, dennoch ne mächtige Sprache^^

siehe +++ATH0 : )

mfg,
crack
 
Ich habe in letzter Zeit auch einige Programmiersprachen getestet. Eigentlich wollte ich Delphi verwenden. Das Problem ist nur, dass Linux eigentich keine sehr Benutzerfähige DelphiIDE hat. Lazarus hat noch einiges an Bugs und Kylix wurde leider eingestellt. Deswegen bin ich momentan bei C++, auch wenn das ein wenig schwiriger als Delphi ist.
 
also ich hab hier zu hause auch nur noch linux und Delphi läuft mit wine gar nicht mal soooo schlecht...
nur die hilfe scheint nicht wirklich zu gehen, aber wer braucht die schon xD
 
Also meine Delphi-Zeiten sind schon so lange her, das ich dazu eigentlich gar nichts mehr sagen kann...

Mich würde jetzt mal interessieren, ob es Problemstellungen gibt, für die Delphi ideal ist.

Weil in der Industrie spielt Delphi keine Rolle, ich habe als Freiberufler in vielen Firmen - von sehr klein bis sehr groß - Software entwickelt und ich habe noch NIE gesehen, das irgendjemand Delphi verwendet hat.

Also, wenn es Problemstellungen gibt, die sich mit Delphi besser als mit anderen Sprachen lösen lassen, nur raus damit, würde mich interessieren... :D

Um noch kurz klarzustellen, was ich mit Problemstellung meine:

-> Treiber-Programmierung: C/C+ sehr gut geeignet
-> Parsing und Data Mining: Perl
-> Webapplikationen: Java mit den entsprechenden Frameworks
-> ???? : Delphi
 
Original von buggybunny
Mich würde jetzt mal interessieren, ob es Problemstellungen gibt, für die Delphi ideal ist.
Delpi eignet sich sehr gut für Datenbank-Anwendungen und viele andere Bereiche, in denen RAD wichtig ist. Man kann quasi direkt mit dem Kunden grundlegende Programm-Strukturen verwirklichen und muss dann nur noch die Routinen ausfeilen. Das User-Interface ist dann aber schon genau nach Vorstellung des Kunden und grundlegende Funktionalitäten sind dann auch schon eingebaut.
Original von buggybunny
Weil in der Industrie spielt Delphi keine Rolle, ich habe als Freiberufler in vielen Firmen - von sehr klein bis sehr groß - Software entwickelt und ich habe noch NIE gesehen, das irgendjemand Delphi verwendet hat.
Es gibt diverse Firmen, die Delphi verwenden (Brunel GmbH, A.Eberle GmbH, IntelliData GmbH usw.). Stellenangebote für Delphi-Entwickler findet man eigentlich immer in diversen Jobbörsen.
 
Ok da melde ich mich mal zu wort :)

ich bin mit delphi bis jetzt nur auf tuchfühlung gegangen im Inforunttericht da haben wir paar pixel hin und her geschubst und so paar kleinere sachen gemacht.

an delphi fand ich eigtl immer gut das es eine einigermaßen gute fehlermeldung gibt wenn was im syntax nicht stört (wünsche ich mir für php) und wie schon erwähnt den user "zwingt" sauber zu coden was mich wider rum stört/störte ist eigtl das der debugger unter delphi 7 jedes mal ansprang wenn was mit den variabeln net passte oder ein access violation bekam, und man meist das programm danach wegschmeisen konnte da der debugger sich jedes mal die zähne ausgebissen hatte beim beeenden.

(kann aber auch anwender fehler sein)


die angesprochene größe der datein finde ich eigtl quatsch heut zu tage wo 200gb hdd und 512 mb ram zum standard gehören können auch mal ~10 - ~30kb mehr abfallen für eine datei oder meint ihr nich, das man das vernachlässigen kann?
 
Moin,

"Mit Delphi kann man nicht so Systemnah programmieren wie unter C++"

- Ist wenn überhaupt nur bedingt richtig. Dieser Satz ist wohl eine Weiterentwicklung des Satzes: "Mit Delphi kann man keine Treiber schreiben".

Fakt ist: Man kann mit Delphi wirklich keine Treiber schreiben. Der Grund dafür ist aber ein weitaus trivialerer Grund: Es existiert ein Treiber-SDK für C++, entwickelt von Microsoft. Das SDK existiert nur für C++ da Microsoft natürlich nicht eine Sprache eines anderen Unternehmens supportet. Die Portierung des Codes in Pascal-Code ist theoretisch zwar möglich, wäre praktisch aber mit einem wohl zu grossem Aufwand verbunden, welcher es nicht wert wäre, da die Treiberentwicklung wohl eine ziemlich unwichtige Sparte ist.

Ansonsten kann man sagen das man in Sachen Systemzugriff in Delphi alles machen kann das man in C++ machen kann und umgekehrt.

"Der Delphicompiler ist scheisse, weil er langsamen Code erzeugt"

- Ein Post ging schon in die richtige Richtung: Sowas sollte man nicht von sich geben wenn man nicht sehr sehr viel Ahnung auf dem Gebiet hat.

Fakt ist auch hier widerrum, dass der Delphi-Compiler erstens sehr schnell compiliert und zweitens recht schnellen Code produzieren kann. Ob C++ oder Delphi schneller ist kann man nicht entscheiden, da man es grundsätzlich einfach nicht sagen kann. Es gibt Bereiche in denen Delphi schnelleren Code erzeugt und es gibt Bereiche in den C++ schnelleren Code erzeugt.

"Delphi ist nur für Hobbyprogrammierer"

- Lässt sich sehr einfach widerlegen: Schaut mal in ein grosses Delphi-Forum in die Job-Börse. Dort werden beinahe täglich Jobangebote von teilweise auch grossen Unternehmen geschaltet, die nach Delphientwicklern suchen.

Weiterhin kann ich aus dem Stehgreif gleich mal ein paar recht bekannte PRogramme aufzählen die mit Delphi programmiert wurden, so z.B. Nero Burning Rom, Irfan View oder TuneUp. Natürlich gibt es wesentlich mehr Programme die mit C++ geschrieben wurden, aber gerade das Beispiel Nero zeigt, dass auch erfolgreiche und grosse Firmen ab und zu mit Delphi entwickeln: So ungeeignet kann die Sprache also kaum sein.


"-> Treiber-Programmierung: C/C+ sehr gut geeignet
-> Parsing und Data Mining: Perl
-> Webapplikationen: Java mit den entsprechenden Frameworks
-> ???? : Delphi"

--> Win32-Programmierung: Delphi oder C++

Ein wirkliches Argument für C++ gibt es im Win32 Bereich ganz einfach nicht.

Wesentlich berechtigter wäre die Frage was man als Delphi-Programmierer in 10 Jahren macht, denn über kurz oder lang wird die Win32-Programmierung aussterben. Grund dafür ist der MS eingeführte neue Standart .NET. Bis dato hat Borland noch keine effiziente Delphi .NET Ide herausgebracht. Das soll sich aber laut Borland bald ändern.
 
Original von kTheSun
Fakt ist: Man kann mit Delphi wirklich keine Treiber schreiben. Der Grund dafür ist aber ein weitaus trivialerer Grund: Es existiert ein Treiber-SDK für C++, entwickelt von Microsoft. Das SDK existiert nur für C++ da Microsoft natürlich nicht eine Sprache eines anderen Unternehmens supportet. Die Portierung des Codes in Pascal-Code ist theoretisch zwar möglich, wäre praktisch aber mit einem wohl zu grossem Aufwand verbunden, welcher es nicht wert wäre, da die Treiberentwicklung wohl eine ziemlich unwichtige Sparte ist.
Natürlich kann man mit Delphi auch Treiber schreiben, zumindest unter Windows. Unter Linux fehlt die Möglichkeit auf den Kernelspace zuzugreifen. Es ist zwar nicht gerade einfach, da man ständig DLL-Files einbinden muss, aber es ist unter Windows möglich.
Original von kTheSun
Grund dafür ist der MS eingeführte neue standard (autom. korrigiert) .NET. Bis dato hat Borland noch keine effiziente Delphi .NET Ide herausgebracht. Das soll sich aber laut Borland bald ändern.
Original von der Borland-Website
Part of Developer Studio, Delphi 2006 also includes complete RAD support for C and C# in addition to Delphi Win32 and Delphi for .NET programming languages.
Mehr muss man dazu wohl nicht sagen.
Original von kTheSun
Sowas sollte man nicht von sich geben wenn man nicht sehr sehr viel Ahnung auf dem Gebiet hat.
Daran solltest du dich auch mal halten. ;)
 
Naja .NET oder Low Level oder oder oder. Für mich ist und bleibt Delphi eine schöne Sprache aber eine öde IDE (gerade die Freeware Edition).
 
Zurück
Oben