![]() |
Vorteile von Delphi
mich würden gern mal die Vorteile von Delphi gegenüber c++ usw... interessieren...
|
Re: Vorteile von Delphi
Nun ich bin quasi noch Programmieranfänger. Und da ist der eindeutige Vorteil, das es für den Einstieg in die Programmierwelt deutlich einfacher zu lernen ist, da man mit ganzen "Worten" und nicht mit irgendwelchen kryptischen Zeichen arbeiten kann.
|
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
Das ist ja nun ziemlich allgemein gehalten, wäre schön, wenn du genauer sagen kannst, welche Aspekte von Delphi dich interessieren. Aber ich fange mal mit dem an, was mir sponmtan einfällt:
Erstens ist Delphi-Sourcecode leserlicher (meine Meinung) und somit auch einfacher für andere nachzuvollziehen als C/C++, weil nicht so "kryptisch". Ein weiterer Vorteil ist die besser gelöste Parameterübergabe an Funktionen/ Prozeduren: wenn man in C einen "Call by reference" machen will, muss man immer Zeiger übergeben und innerhalb der Funktion diese Zeiger dereferenzieren, wenn man auf den Wert zugreifen will. Bei Delphi nimmt man einfach das Schlüsselwort var vor den entsprechenden Parameter, und den Rest macht der Compiler. übrigens unterscheidet Delphi zwischen Funktionen und Funktionen mit leeren Ergebnistyp (=Prozeduren).
Code:
entspricht in Delphi:
void f(int x) {
... } int g(int x) { ... }
Delphi-Quellcode:
MfG
procedure f(x: Integer);
begin ... end; function g(x: integer): Integer; begin ... end; Binärbaum |
Re: Vorteile von Delphi
Auf die Frage wirds keine konkrete Antwort geben können, beides ist etabliert und hat seine Freunde. Ich z.B. habe keine Präferenz, jedes für seinen Zweck. Für Systemnahe oder Backend-Programmierung bevorzuge ich ( wenns das Projekt zulässt ) C/C++, für Client-Anwendungen mit und ohne DB-Zugriff Delphi.
|
Re: Vorteile von Delphi
Zitat:
Zitat:
|
Re: Vorteile von Delphi
Zitat:
edit: Luckie ist mir zuvorgekommen... Zitat:
|
Re: Vorteile von Delphi
Faktisch: Es gibt nachweislich keine Unterschiede zwischen Delphi und einer anderen Programmiersprache. Alle Hochsprachen sind Turing-Vollständig und damit gleich mächtig, das heisst man kann theoretisch alles in jeder Sprache realisieren.
So, und nun kommt eine ganz schöne Prise subjektivität dazu: Nicht alles lässt sich jeder Sprache gleich einfach und elegant lösen. Delphi z.B. ist ungeheuer eingeschränkt wenn es darum geht, Treiber zu programmieren. Es lässt sich jedoch mit einer ganzen Menge eingebettetem Assembler und ziemlichen Verrenkungen machen. Das ist aber etwas das ich meinem ärgsten Feind nicht wünsche. Auf der anderen Seite finde ich Delphi ungeheuer geschickt wenn es darum geht mit Datenbanken zu arbeiten. Ich bin der Ansicht: Die Programmiersprache und die jeweilige Plattform sind Werkzeuge des Entwicklers um etwas zu schaffen. Wie im Handwerk gilt hier auch: Ich nehme keinen Kreuzschlitzschraubendreher wenn ich einen Nagel in die Wand hauen will. Ich nehme also kein Delphi wenn ich einen Treiber programmieren muss. Ich nehme auch eher C++ wenn ich 3D-Computerspiele schreiben will (die Dinger sind in der Regel in C++ tatsächlich performanter). Ich nehme Delphi wenn ich schnell wartbare Datenbankanwendungen schreiben will. Ich nehme eine .NET-Sprache (Delphi.NET wenn ich es ausbauen will, C# wenn es wohl immer so bleiben wird) wenn ich mir schnell ein kleines 'machmirmal'-Tool Programmieren will. Ein Entwickler sollte sowieso mehrere Sprachen beherrschen und die Sprache für eine jeweilige Aufgabe auswählen. Da spielt viel Erfahrung mit rein. Ich schlage gerne vor: Suche Dir verschiedene Anwendungen raus (3D-Würfel rotieren lassen, eine kleine Adressdatenbank, einen kleinen Webserver (muss nur eine Seite ausliefern können)) und programmiere die gleiche Anwendung in verschiedenen Programmiersprachen. Du wirst schnell selber merken welche Sprache Dir für welche Aufgabenstellung am ehesten liegt und welche Du wann wählen solltest. Eigene Erfahrung, gerade bei solchen Fragestellungen die nur zu gerne in einem Glaubenskrieg ausarten, ist hier der beste Ratgeber. |
Re: Vorteile von Delphi
Ganz egal, was jetzt besser ist, auf jedenfall gibt es für C-Programmierer weit mehr Stellenangebote. Schau einfach mal hinten auf die PCPraxis oder sonstwo wo sie Werbung für dieses Fernstudium machen, du wirst nur C-Angebote finden.
Wenn du selbst professioneller Programmierer werden willst, solltest du auf jeden Fall beide Sprachen beherrschen. Ich persönlich bevorzuge Delphi (weil ich es leserlicher finde und weil ich mir C noch garnicht so richtig angeschaut habe.) |
Re: Vorteile von Delphi
Wobei man aber fairer Weise sagen muss, das die Blütezeit von Delphi im
abfallenden Teil der Glockenkurve ist. Delphi setzte sich über lange Jahre von der Konkurenz durch eine hervorragende IDE, einen superschnellen Compiler und eine revolutionäre Klassenbibliothek ab. (Ich arbeite mit Borland-Software seit Turbo-Pascal 1.0.) Die Blütezeit für W32 Apllikationen lag so bei Delphi 5 und 7. Jetzt bin ich z.B. in einer Situation, dass ich privat mit Delphi 7 (problemlos) arbeite und beruflich mit D2005. Abgesehen davon das Delphi 2005 erst nach 3 bis 4 Updates, also fast einem Jahr, für kommerzielle Entwicklungen brauchbar wurde, habe ich in den letzten drei Monaten bereits mehrere Abstürze und Neuinstallationen hinter mir. Sollte sich, was zu erwarten ist, Net durchsetzen, dann spricht nicht mehr sehr viel für Delphi. Mir persönlich täte das sehr leid. Aber da ich mit der Programmiererei mein Geld verdienen muß, brauche ich effiziente und stabile Werkzeuge. VS 2005 IDE ist deutlich effizienter, allein der Debugger rechtfertigt einen Umstieg. Für reine Net Entwicklung läuft man z.B. gerade jetzt mit D2006 dem Net2.0 etwa 1 Jahr hinterher. Hoffnung hatte ich auch auf Kylix gesetzt. Wäre hier eine Plattform- unabhängige Programmierung möglich gewesen, wäre das ein gewichtiges Argument. Leider liegt dieser Zweig auf Eis. D 2006 schaue ich mir noch an. Hier aber nicht mehr die Architekt, sondern nur noch die Personalversion. |
Re: Vorteile von Delphi
Zitat:
Die .NET Bibliothek bietet dir nahezu unbegrenzte Möglichkeiten jede Art von Anwendung zu schreiben, ganz gleich wie umfangreich diese werden soll |
Re: Vorteile von Delphi
Ich will mich auch mal einmischen. Alles folgende basiert auf eigenen Eindrücken, die ich mit verschiedenen Sprachen gemacht habe.
Delphi (ehemals Pascal) ist imho gut für Anfänger geeignet (wurde auch ursprünglich) als Lehrsprache entwickelt). Das liegt an einfachenden, treffenden Schlüsselwörtern (var, begin, end, if..then, procedure, function, constructor, destructor etc.). Wenn man mal mit C++ vergleicht, so ist das in Delphi (für einen Laien) deutlich leserlicher. Denn ein Anfänger weiß sofort, dass bei begin irgendwas anfängt, und mit end etwas aufhört. Aber so klar ist doch nicht, dass bei einer geschweiften öffnenden Klammer ein Anweisungsblock anfängt? Wenn man genau drüber nachdenkt, klingt es zwar logisch, aber so leicht zu verstehen ist das nicht. Oder, dass nach einem var Variablen aufgeführt werden, ist leicht verständlich. Ich halte also Pascal (und natürlich auch Delphi) für eine für Anfänger geeignete Sprache. Einfach, weil sie einfach verständlich und logische Schlüsselwörter verwendet. Außerdem wird man in Delphi zu halbwegs strukturierter Programmierung gezwungen. Z.B. durch seperate Var- und Const-Bereiche, durch Unterscheidung zwischen Implementation und Interface-Abschnitt (jedenfalls in den .pas-Dateien) etc. In anderen Sprachen (z.B. C++) kann man überall eine Variable deklarieren, wo man grade Lust hat. Dadurch kann ein Quellcode sehr schnell unleserlich gemacht werden. Natürlich gibt es auch unleserlichen Delphi-Code, aber durch die erweiterten Strukturregeln gibt es da weniger Möglichkeiten. Wenn ich mir nämlich mal meinen Delphi-Code ansehe, und meinen PHP-Code (C++ entwickle ich persönlich kaum), dann erkenne ich schon deutliche Unterschiede, gerade was die Variablendeklarationen angeht ;) Es gibt natürlich auch diverse Sprachfeatures, die in Delphi nicht vorhanden sind. Dazu gehört (bis einschl. D2005) Operatoren-Überladung, oder auch Templates und ähnliches. Das macht Delphi unflexibler, was Problemlösungen angeht. So hat Delphi beispielsweise Probleme mit Treiberprogrammierung (weiter oben angesprochen). Das ist aber eine der wenigen Ausnahmen von Dingen, die mit Delphi schwieriger sind als mit C++. Desweiteren ist so ziemlich jede Programmiersprache gewissermaßen Problembedingt. Manche Sprachen haben Lösungen für Problem A, manche Sprachen für Problem B, mit manchen geht beides nicht (gut), und manches geht mit beiden Sprachen hervorragend. Im Endeffekt: Die beste Programmiersprache ist die, mit der du am besten umgehen kannst. ;) P.S.: Alles, was ich bezüglich "leichter zu lesen" etc. geschrieben hab, war das, was ich versucht habe, möglichst objektiv aus der Sicht eines Laien zu beschreiben. Das waren zum Teil Dinge, die mich als Laie damals an Delphi gefesselt hatten. In Delphi war das halt leichter zu verstehen, von den Sprachkonstrukten her. Daher bitte ich auch keine C/C++/C#/Java/Whatever-Fantatiker jetzt groß aufzuschreien. Ihr könnt es aber gerne nach eurer Ansicht richtig stellen. |
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
hi
Zitat:
|
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
Jo, Pascal ist eine Sprache zum lernen der prozeduralen(!) Programmierung. Was heute daraus geworden ist, ist zwar in der Basis immernoch Pascal und hat damit pädagogische Elemente, hat aber ansonsten mit der Ursprungsidee nicht mehr wirklich was zu tun :)
|
Re: Vorteile von Delphi
Zitat:
Code:
Ich sehe keinen Unterschied zu Delphi.
void machWas(int* a)
{ (*a)++; } void machWas(int& a) { a++; } Bei 'const' geht C++ noch einen Schritt weiter und lässt es zu, ganze Methoden als konstant zu deklarieren (d.h. die Methode ändert nicht das Objekt):
Code:
class tolleKlasse
{ private: int einWert; public: int derWertPlusX(const int x) const { return einWert+x; } }; |
Re: Vorteile von Delphi
Zitat:
Delphi ist einfach besser lesbar als C#, und da die Fähigkeiten von Delphi.NET und C# dank der darunter liegenden Bibliothek vollkommen identisch sind nehme ich bei Projekten die eher Wachsen werden wegen der besseren Lesbarkeit und eben Wartbarkeit eher Delphi.NET als 'Synatx meiner Wahl'. Ein 'fire and forget'-Tool schreibe ich der einfachheit halber in C# - das ist schneller zu tippen und ich musses mir hinterher nicht nochmal angucken ;-) Edit - Nachtrag: Sorry, Frage falsch verstanden. Ich verwende eher Delphi weil ich da schon eine entsprechend gut ausgebaute und ausgetestete Code-Basis habe die sich nicht ohne weiteres nach .NET portieren lässt. .NET bietet zwar viel, ist aber gerade im Datenbankbereich noch nicht so weit gediehen um alles das zu können was ich mit meinem nativen Code schon alles machen kann. Und bevor ich das alles nochmal unter .NET nachprogrammiere arbeite ich zur Zeit lieber noch auf der Basis weiter von der ich weiss das alles einwandfrei tut und eine neue Applikation entsprechend schnell fertig ist. Wobei die Portierung sicher nur eine Frage der Zeit ist... die gerade recht knapp ist. Letzten Endes wird .NET (ungeachtet der Programmiersprache) aber sicher der Weg to go sein. |
Re: Vorteile von Delphi
Zitat:
Delphi-Quellcode:
und
procedure machWas(var a: integer);
begin a:= a+1; end;
Code:
sind nicht viel unterschiedlicher, aber was, wenn man (aus Schusseligkeit, oder warum auch immer) bei C die Dereferenzierung vergisst und folgendes schreibt und somit aus Versehen den Zeiger verändert und nicht den Wert des Integers, auf den a verweist:
void machWas(int* a)
{ (*a)++; }
Code:
Das ist theoretisch möglich und wird sogar kompiliert, nur das, was die Prozedur macht, ist in beiden Fällen komplett anders.
void machWas(int* a)
{ a++; } Anderes Beispiel, was "gern" falsch gemacht wird bei C/C++:
Code:
Im Code sollte eigentlich nur überprüft werden, ob der Wert von c gleich sieben ist und abhängig davon etwas ausgegeben werden. Durch (unabsichtliches) Weglassen des einen Gleichheitszeichens wird aus dem Vergleich eine Zuweisung. Damit bekommt man gleich zwei Fehler auf einmal: Die if-Abfrage ist immer erfüllt, da c=7 zu 7 ausgewertet wird, und somit als wahr interpretiert wird. Der else-Zweig wird also nie ausgeführt. Und zweitens wird auf c der Wert 7 zugewiesen, was so nicht beabsichtigt war.
int c;
... if (c=7) { //<--Fehler, sollte normalerweise (c==7) sein printf("blabla1"); c+=3; } else { printf("else-Zweig"); c++; } ... Das Schlimme dabei ist, dass dadurch im späteren Programmverlauf unter Umständen ein ganz anderes Verhalten als das gewünschte auftreten kann; es kann sogar passieren, dass sich dieser Fehler weiter durch das Programm schleppt und später Fehler verursacht, die normalerweise (d.h. bei einem einfachen Vergleich) nie aufgetreten wären. Bei Delphi (bzw. Pascal) wird für den Vergleich ein "=" und für die Zuweisung ":=" verwendet. Wenn man dort aus Versehen mal ein Zeichen vergisst, bekommt man spätestens beim Kompilieren eine Fehlermeldung und kann so den Fehler entdecken, während man bei C/C++ hingegen "fröhlich" kompilieren kann und sich bei der Ausführung des Programms mit den entstandenen Fehlern herumplagen muss. ;) |
Re: Vorteile von Delphi
Zitat:
MfG Cruso |
Re: Vorteile von Delphi
Zitat:
Delphi-Quellcode:
und
procedure machWas(var a: integer);
begin a:= a+1; end;
Code:
sind nicht viel unterschiedlicher, aber was, wenn man (aus Schusseligkeit, oder warum auch immer) bei C die Dereferenzierung vergisst und folgendes schreibt und somit aus Versehen den Zeiger verändert und nicht den Wert des Integers, auf den a verweist:
void machWas(int* a)
{ (*a)++; }
Code:
Das ist theoretisch möglich und wird sogar kompiliert, nur das, was die Prozedur macht, ist in beiden Fällen komplett anders.[/quote]
void machWas(int* a)
{ a++; } Wieso machst du das nicht so:
Code:
Dürfte doch aufs selbe hinauslaufen? int& ist dann doch auch ein call-by-reference. Oder vertu ich mich da?
void machWas(int& a)
{ a++; } |
Re: Vorteile von Delphi
Zitat:
Zitat:
|
Re: Vorteile von Delphi
Naja, hast im Prinzip recht! :P
|
Re: Vorteile von Delphi
Zitat:
Code:
Wenn ich diese Funktion mit einer Variablen aufrufe, wird die aufrufende Variable direkt verändert, ohne Zeiger.
int machWas(int& a)
{ a++; } Und ich denke die Sache mit = und == hat man spätestens nach dem ersten großen Fehlersuchen drin. |
Re: Vorteile von Delphi
Auch wenn's Offtopic wird: Noch geiler wird's in Java:
Code:
Jeder denkt, im IF würde verglichen ob 'abc' im String drinsteht (was es ja tut) und dann ausgeben 'String ist abc'. Es kommt jedoch immer die Ausgabe 'String ist nicht abc' heraus.
String str="abc";
if (str == "abc") { echo("String ist abc") } else { echo("String ist NICHT abc"); Wenn man sich näher damit befasst ist es auch klar, weil in Java der String ein Objekt ist, und die Variable str im Prinzip ja nur ein Pointer auf die konkrete Instanz ist. Und der Pointer (also str) ist sicher nicht "abc" sondern irgend ein Adresswert. Richtig müsste sein:
Code:
Und das ist einer der Gründe, warum ich Java so elendig hasse: Der Code tut nicht das wonach er intuitiv aussieht. Das ist bei Delphi zum Glück ganz anders.
if (str.equals("abc")) {
//hier passt es } |
Re: Vorteile von Delphi
Zitat:
Delphi-Quellcode:
Genau das gleiche ist es mit C/C++. Deshalb vergleicht man nullterminierte Strings ja nie direkt, sondern in Delphi z.B. mit CompareStr oder in C/C++ mit strcmp/stricmp.
var
a, b: PChar; begin a := 'abc'; b := a; if b = 'abc' then begin // String ist abc end else // String ist nicht abc <== Ausgabe begin end; |
Re: Vorteile von Delphi
Zitat:
Man muss das nicht mal selber machen, die string - Klasse aus der Standardbibliothek bietet so eine Funktionalität. DAS finde ich richtig hässlich an Java: diese ständigen equals - Aufrufe. Wenn es in Java mal Operatorenüberladung gibt werde ich mich in dieser Sprache auch wohler fühlen. |
Re: Vorteile von Delphi
Immer wieder wenn solche Diskusionen auftauchen, kommt es zu einem Fehler. Man sagt so "in C/C++ ...". Ja, grossteils stimmt das, aber C ist NUR eine Untermenge von C++. Es gint dinge die es nur in C++ gibt und nicht im C und zwar "call by reference".
Code:
Das ist pures C++.
void something( int &a )
Und C++ ist "etwas" type sicherer geworden. D.h. man kann nicht alles was man in C schreibt direkt mit einem C++ compiler compilieren lassen, es sei denn es ist innerhalb von "extern "C" {}" direktieve. Z.B.
Code:
In C geht das wunderbar, in c++ aber nicht (nicht ohne typecasting ).
void (WINAPI *glBegin)(void);
glBegin = GetProcAddress( dllHandle, "glBegin"); |
Re: Vorteile von Delphi
Zitat:
a) Sie wissen nicht, ob der jew. Code nun unter C oder C++ läuft, oder b) Sie sind zu Faul sich Gedanken drüber zu machen (wie ich meistens), oder c) Es läuft in beiden Sprachen (nicht) :mrgreen: Meistens ist aber tatsächlich C++ gemeint ;) |
Re: Vorteile von Delphi
Zitat:
Zitat:
|
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
Zitat:
Schon mal mit COM gearbeitet? Oder bei einem Interface die Implementierung dessen auf eine andere Klasse delegiert? Zitat:
Zitat:
Zitat:
Zitat:
Treiber lassen sich prinzipiell nur mit dem Microsoft C++ Compiler schreiben. Ich habe noch keinen Windows-Treiber von bcc32 oder gcc (Mingw) gesehen. Also ist Delphi da nicht alleine. Treiber brauchen einen speziellen Linker, der die Datei so markiert, dass der Kernel sie auch akzeptiert. Zitat:
|
Re: Vorteile von Delphi
Zitat:
Zitat:
Allerdings ist man schon gewissermaßen beschränkt, wenn man auf die Prozeduren/Funktionen zurückgreifen muss. Einigen wird das egal sein, aber es gibt auch einige große Fans von Operatoren, die da viel lieber einen Operator für schreiben würden. Ist hauptsächlich eine Geschmacksfrage. Und mit D2006 kann man in Delphi (Win32) auch Operatoren überladen :firejump: Zitat:
![]() Übrigens meinte ich nicht, dass Treiber wegen Templates oder Operatorüberladung nicht möglich seien (nur als Info) ;) Zitat:
|
Re: Vorteile von Delphi
Moin Andreas,
hast Du Dir das hier schon einmal angesehen: ![]() ![]() ![]() |
Re: Vorteile von Delphi
Zitat:
Delphi-Quellcode:
folgendes macht/machen sollte:
type
TTemplateList = class(TList){template<T>} private function GetItem(Index: Integer): T; public property Items[Index: Integer]: T read GetItem; end; TIntegerList = TTemplateList{template<Integer>};
Delphi-Quellcode:
Mit TTemplateList__Integer__.tpl:
type
// TTemplateList = class(TList){template<T>} // private // function GetItem(Index: Integer): T; // public // property Items[Index: Integer]: T read GetItem; // end; {$INCLUDE TTemplateList__Integer__.tpl}//TIntegerList = TTemplateList{template<Integer>};
Delphi-Quellcode:
Das Projekt hatte ich aber aus Zeitmangel recht schnell eingestampft. Übrig blieb der Delphi language Preprocessor (
// [der Delphi-Parser im Forum zieht die erste Zeile immer nach ganz links]
TTemplateList = class(TList){template<Integer>} private function GetItem(Index: Integer): Integer; public property Items[Index: Integer]: Integer read GetItem; end; ![]() |
Re: Vorteile von Delphi
In den letzten Jahren habe ich nur noch in C++ programmiert. Vorgabe vom Arbeitgeber! Nun gut, ich habe mich an die Macken eines C/C++ Compilers gewöhnt und irgendwann versteht man ihn dann auch. Die Syntax von C finde ich im Vergleich zu Pascal günstiger bzw. ich muss weniger schreiben...ist aber wie schon allseits diskutiert wurde eine reine Geschmaksfrage! Ansonsten fand ich Delphi schlichtweg geil! Der compiler ist/war sauschnell, meine Berechnungen liefen meistens sogar schneller als in C++! Das einzige was mich heute an Delphi nervt - verzeiht wenn ich nicht mehr auf dem neuesten Stand bin, vielleicht hat sich ja dahingehend etwas geändert-, ist:
Die Unterscheidung von Klein und Großbuchstaben (vielleicht arbeite ich zuviel mit LINUX) Kann man heute endlich in Delphi Operatoren überladen? begin/end -> das sind 6 Zeichen mehr als "{ }" sowie keine Makros Aber wie gesagt, falls der native compiler von delphi immer noch so sauschnell ist wie zu Zeiten von Delphi 6, dann finde ich das heute - zumindestens ist das für mich ein wichtiges Kriterium - verdammt gut! Schade nur, dass ich nichts mehr in Delphi mache...vielleich ändert sich das ja mal irgendwann wieder! Wenn man einmal in C++ steckt kommt man da nicht mehr so schnell wieder raus. Gruß pajofego |
Re: Vorteile von Delphi
Zitat:
Zitat:
Zitat:
|
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
jo also genau so ne diskussion hab ich erhofft :-)
hab absichtlich die frage nicht genauer formuliert, da mir die verschiedensten eindrücke interessieren. was ich noch klasse in delphi find: bei VB musste man immer bestimmte dlls mitliefern, damit die applikation lauffähig ist. delphi hingegegen kompiliert alles in die exe. oder was meint ihr? |
Re: Vorteile von Delphi
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 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