Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C oder Delphi oder was? (https://www.delphipraxis.net/83383-c-oder-delphi-oder.html)

morp2 1. Jan 2007 19:04


C oder Delphi oder was?
 
Hi,

ich bereite mich im Moment auf ein neues Projekt vor. Bei dem Projekt geht es um Dateiverwaltung und es soll opensouce sein. Eine schöne Oberfläche darf da natürlich nicht fehlen. Leider bin ich mir jetzt selber nicht sicher womit ich das Programm realisieren soll. Zum einen hab ich da Delphi 7 mit der super VCL, zum anderen hab ich das Visual Studio 2005 mit C++ und der WinApi. Jetzt würde normalerweise jeder sagen: Du willst dir schnell eine schöne GUI zusammenklicken ohne dabei auf Frameworks wie .net angewiesen zu sein? Ganz klar Delphi! Das Problem dabei ist aber eben genannt Programmiersprache. Ich weiß noch warum ich damals zu C++ gewechselt bin: Wegen der unübersichtlichen Pascal-Syntax und dem schlecht zu lesenden Delphi Quellcode.
Ich hab jetzt also die Wahl zwischen C++, der WinApi und einer angenehmen Syntax, oder Delphi, der VCL und der Pascal-Syntax.
Was würdet ihr mir raten?

PS: Ja ich hab den gleichen Text auch in einem C++ Forum gepostet.

Balu der Bär 1. Jan 2007 19:05

Re: C oder Delphi oder was?
 
Zitat:

Wegen der unübersichtlichen Pascal-Syntax und dem schlecht zu lesenden Delphi Quellcode.
What the fuck? :shock:

Pascal ist imo im Gegensatz zu C sehr viel besser und einfacher lesbar. :shock:

Antigo 1. Jan 2007 19:08

Re: C oder Delphi oder was?
 
ich verstehe dein Problem mit der Pascal Syntax nicht. Mir gefällt von allen Sprachen die ich bisher ausprobiert habe Pascal immer noch am besten. Aber das ist wahrscheinlich Geschmackssache.

Da du hier in einem Delphi Forum bist, würd ich dir natürlich zu Delphi raten, da hab ich dann mehr von wenn das Opensource ist und ich mal gucken will wie du was realisiert hast ;)


Aber KOnstruktive Gründe für/gegen Delphi kann ich dir leider nicht anbieten.

Phoenix 1. Jan 2007 19:09

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Ich weiß noch warum ich damals zu C++ gewechselt bin: Wegen der unübersichtlichen Pascal-Syntax und dem schlecht zu lesenden Delphi Quellcode.

??? Mit der Meinung stehst Du aber ganz alleine da.

Pascal ist, da es viel näher an der englischen Sprache angesiedelt ist als andere Programmiersprachen, einer der am schnellsten zu lesende und verständlichste Code schlechthin.

Allein aus Gründen der besseren Wartbarkeit von Delphi-Code im Gegensatz zu C-Code wird Delphi in größeren Projekten z.B. bei Anlagensteuerungen deutlichst vor C-Dialekten bevorzugt.

Wenn es also um leserlichen Code, klare strukturierte, an der menschlichen Sprache orientierte Syntax geht, dann bist Du bei Delphi an der richtigen Adresse. Im allgemeinen wird genau dies als der größte Vorteil von Delphi gegenüber C/C++ angesehen, die VCL ist dabei nur nebensächlich.

Daniel G 1. Jan 2007 19:10

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Ich weiß noch warum ich damals zu C++ gewechselt bin: Wegen der unübersichtlichen Pascal-Syntax und dem schlecht zu lesenden Delphi Quellcode.

:lol:

Mit anderen Worten: Du hast damals Spaghetti - Code produziert und dafür Delphi verantwortlich gemacht. Klar, dann wäre ich auch zu C++ gewechselt. :mrgreen:

Na ja, wie dem auch sei...

Wenn deine Dateiverwaltung eine vernünftige Datenbank benötigt, dann arbeite mit Delphi. Ansonsten kannste das auch mit C++, Java oder Brainfuck machen... :mrgreen:

morp2 1. Jan 2007 19:15

Re: C oder Delphi oder was?
 
Naja der größte Vorteil von Pascal ist meiner Meinung nach sein größter Nachteil:
Pascal ist ja so gedacht gewesen, dass es der Englischen Sprache gleicht und dadurch leicht zu lesen und zu erlernen ist.
Ok schauen wir uns mal einen kleinen ausschnitt an:
Delphi-Quellcode:
procedure schreiben(s: String);
begin
  writeln(s);
end;
Wenn ich mich nicht irre ;)
Jetzt nochmal in C
Code:
void schreiben(char *s)
{
    printf("%s", s);
}
Bei C erkenne ich auf einen Blick dass mit { ein Block beginnt und mit } der Block endet. Bei Delphi muss ich den Quellcode, wie gesagt, lesen um auf das gleiche Ergebnis zu kommen. Ok hier erkennt man das vielleicht nicht, aber bei 1000 Zeilen Quellcode kann mich das schonmal in den Wahnsinn treiben.

St.Pauli 1. Jan 2007 19:15

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Zum einen hab ich da Delphi 7 mit der super VCL, zum anderen hab ich das Visual Studio 2005 mit C++ und der WinApi.

:gruebel:

Es mag ja sein das die Unit Windows nicht über alle Funktionen/Prozeduren der WinAPI verfügt, aber was hindert dich daran sie aus den DLLs nachzuladen?

morp2 1. Jan 2007 19:18

Re: C oder Delphi oder was?
 
Zitat:

Zitat von St.Pauli
Zitat:

Zitat von morp2
Zum einen hab ich da Delphi 7 mit der super VCL, zum anderen hab ich das Visual Studio 2005 mit C++ und der WinApi.

:gruebel:

Es mag ja sein das die Unit Windows nicht über alle Funktionen/Prozeduren der WinAPI verfügt, aber was hindert dich daran sie aus den DLLs nachzuladen?

Damit wollte ich sagen dass ich in VS keine VCL habe und nicht dass ich in Delphi keine WinApi haben.

Ach ja was ich noch vergessen hab: Variablendeklaration nur am Anfang einer Funktion...

Daniel G 1. Jan 2007 19:19

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Ok hier erkennt man das vielleicht nicht, aber bei 1000 Zeilen Quellcode kann mich das schonmal in den Wahnsinn treiben.

Bei 1000 Zeilen mit vernünftiger Einrückung ich nichtmal auf die begin's und end's zu achten. :wink:


Zitat:

Zitat von St.Pauli
Zitat:

Zitat von morp2
Zum einen hab ich da Delphi 7 mit der super VCL, zum anderen hab ich das Visual Studio 2005 mit C++ und der WinApi.

:gruebel:

Es mag ja sein das die Unit Windows nicht über alle Funktionen/Prozeduren der WinAPI verfügt, aber was hindert dich daran sie aus den DLLs nachzuladen?

Jo, genau. Du kannst auch alles "zu Fuß" machen, wenn dir das Spaß macht. In diesem Fall einfach mal nach "nonVCL" hier im Forum suchen. :wink:

Balu der Bär 1. Jan 2007 19:20

Re: C oder Delphi oder was?
 
Zitat:

Ach ja was ich noch vergessen hab: Variablendeklaration nur am Anfang einer Funktion...
Oha, ist wirklich sehr sehr schlimm. :lol:

Das steigert übrigens die Übersichtlichkeit und die Lesbarkeit des Codes. :zwinker:

Bernhard Geyer 1. Jan 2007 19:47

Re: C oder Delphi oder was?
 
Zitat:

Wegen der unübersichtlichen Pascal-Syntax und dem schlecht zu lesenden Delphi Quellcode.
Finde ich auch das C/C++ viel besser lesbar ist:

http://www.mikrocontroller.net/topic/59505

Sicherlich kann man mit beiden Sprachen unverständlichen Code schreiben. Bei C/C++ ist es jedoch viel einfacher das man ihn schon nach 1 Tag nicht mehr versteht.

Phoenix 1. Jan 2007 20:02

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Bei C erkenne ich auf einen Blick dass mit { ein Block beginnt und mit } der Block endet. Bei Delphi muss ich den Quellcode, wie gesagt, lesen um auf das gleiche Ergebnis zu kommen.

Alle Wörter die weniger als 7 Buchstaben haben (und bei Begin und End ist das der Fall) erkennt das Gehirn sofort, die müssen nicht 'gelesen' werden. Das heisst auch bei einem Begin-End Block erkennt man die Struktur auf einen einzigen Blick.

Eichhoernchen 1. Jan 2007 20:11

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Ach ja was ich noch vergessen hab: Variablendeklaration nur am Anfang einer Funktion...

ist doch egal, mit den neuen Delphi IDEs ist das doch kein Problem mehr, Delphi erkennt die Variablendeklaration auch außerhalb des Funktionskopfes und packt sie dann dort rein. Kurz CTRL+Leertaste drücken, dann var schreiben und Enter drücken schon kannst du ne Variable anlegen.... Und wenn du jetzt meinst, dass das zu viele Tastendrücke sind, dann irrst du dich, das geht in Fleisch und Blut über, klar brauchst du etwas länger dafür hast du aber hinterher auch gut strukturierten Code.

morp2 1. Jan 2007 20:17

Re: C oder Delphi oder was?
 
Zitat:

Zitat von Balu der Bär
Zitat:

Ach ja was ich noch vergessen hab: Variablendeklaration nur am Anfang einer Funktion...
Oha, ist wirklich sehr sehr schlimm. :lol:

Das steigert übrigens die Übersichtlichkeit und die Lesbarkeit des Codes. :zwinker:

Ist das dein Ernst? Sagen wir ich hab eine 100 Zeilen lange Funktion und in den letzten beiden Zeilen brauch ich eine neue Variable. Diese ganz am Anfang zu deklarieren verschlechtert die Orientierung im Code IMHO ungemein.
Zitat:

Zitat von Bernhard Geyer
Finde ich auch das C/C++ viel besser lesbar ist:
http://www.mikrocontroller.net/topic/59505

Du kannst dein Windows auf Chinesisch stellen. Ist Windows deswegen schlecht? Nein
Du kannst in C solchen Code schreiben. Ist C deswegen schlecht? Nein

Ein schlechter Delphi Programmierer wird vermutlich schlecht lesbaren Code schreiben. Ein schlechter C Programmierer wird vermutlich schlecht lesbaren Code schreiben. Ein guter Delphi Programmierer wird guten Code schreiben genau wie ein guter C Programmierer.

Ich hab mir jetzt mal zufällig bei Google Codesearch einen C Code gesucht. Jetzt mal bitte ganz ohne Vorbehale: Findet ihr den Code unleserlich?
Code:
void prune_cache (database *table, time_t now)
{
    size_t cnt = table->module;
    int mark[cnt];
    int anything = 0;
    size_t first = cnt + 1;
    size_t last = 0;

    if (cnt == 0)
        return;

    if (table->check_file)
    {
        struct stat st;

        if (stat (table->filename, &st) < 0)
        {
            char buf[128];
            if (errno == ENOENT)
                table->check_file = 0;
        }
        else
        {
            if (st.st_mtime != table->file_mtime)
            {
                now = LONG_MAX;
                table->file_mtime = st.st_mtime;
            }
        }
    }
[...]
}
Naja wir schweifen ab...

Phoenix 1. Jan 2007 20:23

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Sagen wir ich hab eine 100 Zeilen lange Funktion und in den letzten beiden Zeilen brauch ich eine neue Variable....

...dann hast Du ein MASSIVES Design-Problem in Deiner Anwendung.

Aber gehen wir mal davon aus das hätte seine Richtigkeit: Du Benutzt die Variable halt einfach und lässt die IDE die Deklaration für Dich übernehmen.

Forward-Deklarationen haben den entscheidenden Vorteil dass jeder Fremde der den Code liest gleich am Anfang weiss, welche Variablen in der Funktion vorkommen.

Hast Du jemanden, der sich in Deine 100 Zeilen C++ Code einlesen muss, der wird zwangsläufig irgendwann mittendrin nicht zu 100% Aufmerksam sein, und vielleicht eine Variablendeklaration übersehen...

Zitat:

WO Zum Teufel wurde hg deklariert??? Was ist denn das für ein Typ???
In Delphi-Code geht der zum Funktionskopf und sieht sofort auf einen Blick: Ah, das ist ein TIrgendwas. In Deinem C-Code muss er erstmal die Volltextsuche anschmeissen...

mkinzler 1. Jan 2007 20:25

Re: C oder Delphi oder was?
 
Zitat:

Findet ihr den Code unleserlich?
Gut wir müssen hier was falsch verstanden haben. Du bist der Meinung, daß Pascal unleserlich ist, gut deine Meinung. Aber wie Delphianer dürfen doch anderer Meinung sein, auch wenn es die nicht gefällt!

Daniel G 1. Jan 2007 20:25

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Naja wir schweifen ab...

In der Tat. Was hast du in einem Delphi - Forum anderes erwartet? Das wir alle schreien "Der Heiland ist gekommen uns zu erlösen von dem schlechten Delphi! :firejump: ". Lass es einfach... :wink:

morp2 1. Jan 2007 20:27

Re: C oder Delphi oder was?
 
Zitat:

Zitat von Phoenix
In Delphi-Code geht der zum Funktionskopf und sieht sofort auf einen Blick: Ah, das ist ein TIrgendwas. In Deinem C-Code muss er erstmal die Volltextsuche anschmeissen...

Na wenn du schon so auf eine vorhandene IDE pochst: Einmal mit der Maus über die Variable fahren und die IDE zeigt dir den Typ an. Bestimmt schneller als nochmal ganz nach oben zu scrollen ;)

Daniel G 1. Jan 2007 20:31

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Na wenn du schon so auf eine vorhandene IDE pochst: Einmal mit der Maus über die Variable fahren und die IDE zeigt dir den Typ an. Bestimmt schneller als nochmal ganz nach oben zu scrollen ;)

Joar, eine tolle Eigenschaft der Delphi - IDE... :wink:

Hador 1. Jan 2007 20:34

Re: C oder Delphi oder was?
 
Um es mal so zu sagen:
Ich finde Quelltexte, die in C, PHP oder ähnlichen Sprachen geschrieben sind im allgemeinen unleserlicher als welche die in einem Pascal-Dialekt geschrieben sind. Auch bei dem von die geposteten Beispiel, welches ja sauber eingerücklt ist.

Nils_13 1. Jan 2007 20:50

Re: C oder Delphi oder was?
 
Es ist gewöhnungssache. Delphi ist allgemein zwar recht übersichtlich, aber C/Cpp ist auch gut zu durchschauen und ich sehe beide Dialekte als gut gelungen an.

bigg 1. Jan 2007 20:52

Re: C oder Delphi oder was?
 
moin,

hast du die WinAPI wirklich unter C++? Ich denke nicht, zumindest würde es keinen Sinn machen, direkt auf die WinAPI zu zugreifen. :zwinker: Und wie die meisten hier wissen, ist C != C++! In C darfst du deine Variablen schön oben deklarieren. Objektorientierte Programmierung gibt es unter C nicht.

Und der Vergleich von Pascal und Delphi hinkt ebenfalls.

St.Pauli 1. Jan 2007 20:53

Re: C oder Delphi oder was?
 
Ich verstehe den Sinn des Themas nicht ganz. Du hast uns gefragt, ob du dein geplantes Projekt in C/C++ oder in Delphi programmieren sollst. Nun gut, wir liefern dir ein Pro-Argument nach dem anderen, aber du probierst uns von C/C++ zu überzeugen!?!?

Die Effizienz eines Programmieres hängt unter anderem von der verwendeten Syntax ab. Pascal verfügt nunmal, im Gegensatz zum "kryptischen" C/C++, über eine sehr lesbare Syntax. Und wir sind alles Menschen. Und ich bezweifele stark, dass es für ein menschliches Gehirn einfacher ist, sich in der C/C++ Syntax zurecht zu finden als in der von Pascal.

Bernhard Geyer 1. Jan 2007 20:58

Re: C oder Delphi oder was?
 
- buf[128] wird nicht verwendet.
- Wo wird errno initialisiert oder ist das eine herumgeisternte globale Variable (Schlechtes Design)
- Wird hier time_t noch signed oder unsigend verwendet? Sprich: Ist der Code nur bis 2030 oder 2100 lauffähig?
- Einen Fehlerwert mittels eines gültigen Wertes zu kennzeichnen ist auch nicht gerade schön. Was ist wenn time_t mal erweitert wird und LONG_MAX immer noch den maximalwert eines bestimmten Datentyps darstellt? (Schöne Portierbarkeit von C/C++-Code)
- Wieso muß es in C/C++ immer 50 verschiedene neue Typen für einen Integer geben. size_t ist so ein Fall
- Was macht stat?
- Einmal wird table->check_file im Sinne eines Booleans verwendet und einmal wird 0 zugewiesen. Sinnvoller wäre hier FALSE zu verwenden (Ach ja: Bloß wo ist das wieder definiert bzw. wurde es auch richtig definiert).

Also in meinem Augen ist das nicht das beste Beispiel für einen gut lesbarern Code.

Garfield 1. Jan 2007 21:11

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
... Zum einen hab ich da Delphi 7 mit der super VCL, zum anderen hab ich das Visual Studio 2005 mit C++ und der WinApi. ...

Mit Deiner Frage wirbelst Du hier ganz schön Staub auf. Warum vergleichst Du eigentlich das alte Delphi 7 und nicht das aktuelle Turbo Delphi mit VS 2005?

alzaimar 1. Jan 2007 21:13

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
...
Jetzt nochmal in C
Code:
void schreiben(char *s)
{
    printf("%s", s);
}
Bei C erkenne ich auf einen Blick dass mit { ein Block beginnt und mit } der Block endet. Bei Delphi muss ich den Quellcode, wie gesagt, lesen um auf das gleiche Ergebnis zu kommen.

:wall: Selten so was Blödes gelesen...
Code:
void schreiben (char *s) {printf
("%s"
,s)
;}
Kommt doch immer drauf an, wer und wie man es formatiert, gelle?
Zitat:

Zitat von morp2
...Ok hier erkennt man das vielleicht nicht, aber bei 1000 Zeilen Quellcode kann mich das schonmal in den Wahnsinn treiben.

Wer lesen kann, ist klar im Vorteil :mrgreen: Und "C" kann sehr unleserlich werden:
Code:
for (;i++<*++j;*i++) if (!*--i) i+=j
Aaaaahh. Ja. DAS treibt nun *mich* in den Wahnsinn.

C ist kein deut besser orer schlechter als Pascal. Wichtig ist, das man die Ideen in gut lesbaren Code umsetzen kann, und dabei ist dann die Sprache wirklich egal.

Es gibt aber eine Eigenheit von Amateuren: Sie versuchen, Ihre Unwissenheit hinter komplexen Verklausulierungen zu verbergen: Politiker reden geschwollen daher, Gesetzestexte sind bis zur Unkenntlichkeit verklausuliert und ... Die Mehrheit der Programmierer verwendet 'C'.

mkinzler 1. Jan 2007 21:14

Re: C oder Delphi oder was?
 
Zitat:

Warum vergleichst Du eigentlich das alte Delphi 7 und nicht das aktuelle Turbo Delphi mit VS 2005?
Ist doch in diesem Kontext irrelevant. Ihm geht es ja um grundsätzliche Eigenschaften/Unterschiede der Syntax von C und Pascal. Seine Vorbehalte können wir hier auch nicht ausräumen.

alzaimar 1. Jan 2007 21:19

Re: C oder Delphi oder was?
 
@morp2: Preisfrage: Woher kommen die ganzen Buffer Overruns, die für die Instabilität der meisten Programme verantwortlich sind? Von der dämlichen C Library, der kranken Syntax und den noch bescheuerten Halbamateuren, die sich mit ihrem Frickelwissen 'C' als 'Cult' Programmiersprache (Chit wäre besser) ausgesucht haben (Gründe in meinem vorherigen Post).

Wenn diese Dünnbretttippsen eine ordendliche Programmiersprache mit wohldefinierter Syntax und einer Library verwendet hätten (die nämlich nicht ganz so viel Müll erlaubt wie 'C'), dann wären uns viele der Exploits (nicht alle, is ja logisch), Bufferoverruns, DoS-Attacken etc. erspart geblieben.

Die IT-Welt ist nicht *dank* C so weit, sondern *trotz*!

Das musste mal gesagt werden.

morp2 1. Jan 2007 21:28

Re: C oder Delphi oder was?
 
Zitat:

Zitat von Bernhard Geyer
- buf[128] wird nicht verwendet.

Ja stimmt ich hab den Code an der Stelle etwas gekürzt
Zitat:

Zitat von Bernhard Geyer
- Wo wird errno initialisiert oder ist das eine herumgeisternte globale Variable (Schlechtes Design)

#define errno (*_errno())
Zitat:

Zitat von Bernhard Geyer
- Wird hier time_t noch signed oder unsigend verwendet? Sprich: Ist der Code nur bis 2030 oder 2100 lauffähig?

Kommt auf den Compiler an. Im VS signed.
Zitat:

Zitat von Bernhard Geyer
- Einen Fehlerwert mittels eines gültigen Wertes zu kennzeichnen ist auch nicht gerade schön. Was ist wenn time_t mal erweitert wird und LONG_MAX immer noch den maximalwert eines bestimmten Datentyps darstellt? (Schöne Portierbarkeit von C/C++-Code)

Der Schrei nach Portierbarkeit ist eine Erfindung von genervten Java Programmierern ;)
Zitat:

Zitat von Bernhard Geyer
- Wieso muß es in C/C++ immer 50 verschiedene neue Typen für einen Integer geben. size_t ist so ein Fall

Das hat damals als wir noch nicht mit IDEs programmiert haben die Lesbarkeit ungemein verbessert
Zitat:

Zitat von Bernhard Geyer
- Was macht stat?

Wenn ich dir Delphicode zeige in dem eine Funktion namens stat benutzt wird kannst du mir dann sagen was stat macht? Bzw ein Rechtsklick und dann auf "Gehe zu Definition" reicht um es rauszufinden
Zitat:

Zitat von Bernhard Geyer
- Einmal wird table->check_file im Sinne eines Booleans verwendet und einmal wird 0 zugewiesen. Sinnvoller wäre hier FALSE zu verwenden (Ach ja: Bloß wo ist das wieder definiert bzw. wurde es auch richtig definiert).

Was heißt hier richtig definiert? False war 0 und False wird auch immer 0 sein.

Nils_13 1. Jan 2007 21:29

Re: C oder Delphi oder was?
 
Zitat:

Zitat von alzaimar
@morp2: Preisfrage: Woher kommen die ganzen Buffer Overruns, die für die Instabilität der meisten Programme verantwortlich sind? Von der dämlichen C Library, der kranken Syntax und den noch bescheuerten Halbamateuren, die sich mit ihrem Frickelwissen 'C' als 'Cult' Programmiersprache (Chit wäre besser) ausgesucht haben (Gründe in meinem vorherigen Post).

Wenn diese Dünnbretttippsen eine ordendliche Programmiersprache mit wohldefinierter Syntax und einer Library verwendet hätten (die nämlich nicht ganz so viel Müll erlaubt wie 'C'), dann wären uns viele der Exploits (nicht alle, is ja logisch), Bufferoverruns, DoS-Attacken etc. erspart geblieben.

Die IT-Welt ist nicht *dank* C so weit, sondern *trotz*!

Das musste mal gesagt werden.

Und womit wurde Delphi programmiert ? Imho mit C++ und das ist schließlich die "Verbesserung" von C und da würde ich doch lieber bei *dank* und *trotz* (wegen deinen Argumenten) zugleich bleiben. C ist nunmal veraltet, also was bringt es, die neusten Delphiversionen mit C zu vergleichen ? Das wollte ich mal los werden.

An den Fragesteller: Du hättest diese Frage in einem neutralen Forum, in dem es um Delphi und C geht stellen sollen.

morp2 1. Jan 2007 21:30

Re: C oder Delphi oder was?
 
Zitat:

Zitat von alzaimar
@morp2: Preisfrage: Woher kommen die ganzen Buffer Overruns, die für die Instabilität der meisten Programme verantwortlich sind? Von der dämlichen C Library, der kranken Syntax und den noch bescheuerten Halbamateuren, die sich mit ihrem Frickelwissen 'C' als 'Cult' Programmiersprache (Chit wäre besser) ausgesucht haben (Gründe in meinem vorherigen Post).

Auch in einem Flamewar sollte mach sachlich bleiben.

Bzw: Was haben Dos-Attacken mit einer Programmiersprache zu tun?

mkinzler 1. Jan 2007 21:42

Re: C oder Delphi oder was?
 
Zitat:

Und womit wurde Delphi programmiert ? Imho mit C++
Wie kommst du dadrauf?
Zitat:

und das ist schließlich die "Verbesserung" von C
c++ ist höchstens eine (OOP) Erweiterung von C aber keine Verbesserung. IMHO gab/gibt es auch bessere "Erweiterungen" objective c oder auch Java/C#
Zitat:

C ist nunmal veraltet, also was bringt es, die neusten Delphiversionen mit C zu vergleichen ? Das wollte ich mal los werden.
Weil es wie schon erwähnt um grundsätzliche Dinge geht, die für die neueste Version von Delphi geanuso wie für Pascal gilt (auf der anderen Seite dementsprechend)

Luckie 1. Jan 2007 21:48

Re: C oder Delphi oder was?
 
Ich glaube, wir sollten uns alle mal wieder etwas beruhigen.

Was die Lesbarkeit angeht, ist es reine Geschmacks- und Gewöhnungssache. Ich finde Arabisch auch extrem unübersichtlich und unleserlich im Vergleich zur gewohnten lateinischen Schrift. Ich bin mir aber ziemlich sicher, dass ein Araber dies etwas anders sieht.

Bleiben noch die Sprach-Features über die man diskutieren könnte. Auch hier wird man zu dem Schluss kommen, dass es wieder reine Gewöhnungs- bzw. Geschmackssache ist. Nehmen wir die Möglichkeit Variablen in C++ auch mitten im Quellcode deklarieren zu können. Dies hat Vor- und Nachteile. Ein Vorteil wäre, dass ich eine größere Kontrolle über die Sichtbarkeit der Variablen habe. Eine in einem Block deklarierte Variable, ist auch nur dort sichtbar. Nachteil, ich habe nicht alle Variablen übersichtlich am Funktionsanfang zusammen, wenn ich dieses Feature nutze. Ich komme von Delphi her und wenn ich in C/C++ programmiren muss, dann deklariere ich auch, aus Gewohntheit, alle Variablen am Anfang. Das hat, finde ich den Voretil, dass man sich schon mal Gedanken darüber macht, wie die Funktion, denn letztendlich aussehen soll und was man für Vatriablen man denn eigetlich braucht. Also eine Sache der Disziplin.

Jemand hat mal gesagt, dass Englisch eine Sprache ist, die man schnell lernt, aber die sehr schwer richtig anzuwenden ist. Ähnlich verhält es sich meiner Meinung nach auch mit C/C++, wenn ich an die BufferOverFlows denke. Sie sind alle vermeidbar, wenn man es denn richtig macht.

Dies könnte ich jetzt nioch auf viele weiter Aspekte ausdehnen, wie zum Beispiel Templates etc. Aber es gibt im Internet schon genug Abhandlucgen zu disem Thema. Ltztendlich läuft es aber immer daraufhinaus, dass man die Sprache nach dem zu lösenden Problem wählen sollte und nicht nach dem Kriterium, was einem besser gefällt. Für systemnahe Programmierung würde ich auch C/C++ vorziehen, ich habe das bei meinem Usermanager gemerkt, da hätte ich mir mit C/C++ viel Arbeit ersparen können. Für die datenbankprogrammierung würde ich aber wieder Delphi den Vorzug geben, da man dort schon viele Komponenten findet, die einem die Arbeit sehr erleichteren.

Letztendlich halte ich diese Diskussion schlicht für überflüssig, da es für jede Sprache Pros und Kontras gibt. Und jeder seine Meinung zu dem Thema hat. solch eine Diskussion kann höchsten dabei helfen sich eine Meinung zu bilden, mehr aber auch nicht.

xaromz 1. Jan 2007 21:49

Re: C oder Delphi oder was?
 
Hallo,
Zitat:

Zitat von Nils_13
Und womit wurde Delphi programmiert ? Imho mit C++ und das ist schließlich die "Verbesserung" von C und da würde ich doch lieber bei *dank* und *trotz* (wegen deinen Argumenten) zugleich bleiben. C ist nunmal veraltet, also was bringt es, die neusten Delphiversionen mit C zu vergleichen ? Das wollte ich mal los werden.

Delphi wurde IMHO in Delphi geschrieben. Turbo Vision unter Turbo Pascal war auch nur ein Abfallprodukt der IDE-Entwicklung (TP 6.0).

C++ ist übrigens keine "Verbesserung" von C, sondern eine eigene Programmiersprache, die mit C einen Großteil der Syntax teilt. Das machen Perl und PHP aber auch[1].

@Topic:
Ich finde ja, die Diskussion ist etwas von der Eingangsfrage abgekommen. Die lautete ja: Soll der OP C++ oder Delphi benutzen.
Die Sache mit WinAPI können wir streichen, das geht in beiden Sprachen. Dass es für die Programmierung von Oberflächen unter Windows (nativ) kein besseres Framework gibt als die VCL bestreitet hoffentlich keiner hier. Wenn es aber um die Syntax der Sprachen geht, worüber hier diskutiert wird, so ist dazu zu sagen
- in einem Delphi-Forum werden die Vorteile von Delphi gepriesen
- Beide Programmiersprachen sind für die Win32-Programmierung gleich gut geeignet. Es entscheidet also die Vorliebe

Gruß
xaromz

[1] Ich weiß, dass C wesentlich näher an C++ ist als an Perl oder PHP.

Bernhard Geyer 1. Jan 2007 21:56

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Zitat:

Zitat von Bernhard Geyer
- Wird hier time_t noch signed oder unsigend verwendet? Sprich: Ist der Code nur bis 2030 oder 2100 lauffähig?

Kommt auf den Compiler an. Im VS signed.

Also ist 2030 Schluß. Hatte man bei SW aus den 70er nicht auch von "Das Programm braucht keiner in 2000[/quote]

Zitat:

Zitat von morp2
Zitat:

Zitat von Bernhard Geyer
- Einen Fehlerwert mittels eines gültigen Wertes zu kennzeichnen ist auch nicht gerade schön. Was ist wenn time_t mal erweitert wird und LONG_MAX immer noch den maximalwert eines bestimmten Datentyps darstellt? (Schöne Portierbarkeit von C/C++-Code)

Der Schrei nach Portierbarkeit ist eine Erfindung von genervten Java Programmierern ;)

Hhhmmm. Und was ist mit 64-Bit? :gruebel: Von Win32 nach Win64 zu gehen verursacht auch Portierungsaufwand.

Zitat:

Zitat von morp2
Zitat:

Zitat von Bernhard Geyer
- Wieso muß es in C/C++ immer 50 verschiedene neue Typen für einen Integer geben. size_t ist so ein Fall

Das hat damals als wir noch nicht mit IDEs programmiert haben die Lesbarkeit ungemein verbessert

Zu wissen das 50 Typen einen 0815-Integer abbilden ist sehr lesbar.

Zitat:

Zitat von morp2
Zitat:

Zitat von Bernhard Geyer
- Was macht stat?

Wenn ich dir Delphicode zeige in dem eine Funktion namens stat benutzt wird kannst du mir dann sagen was stat macht? Bzw ein Rechtsklick und dann auf "Gehe zu Definition" reicht um es rauszufinden

In Delphi/Pascal sind Funktionsbezeichner oft verständlicher oder auch ohne Handbuch/Onlinehilfe zu erraten.

Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Bernhard Geyer
- Einmal wird table->check_file im Sinne eines Booleans verwendet und einmal wird 0 zugewiesen. Sinnvoller wäre hier FALSE zu verwenden (Ach ja: Bloß wo ist das wieder definiert bzw. wurde es auch richtig definiert).

Was heißt hier richtig definiert? False war 0 und False wird auch immer 0 sein.

Ich kenne C-Headerdateien mit folgenden Inhalt (Evtl. nicht 100%ig Korrekte Syntax):
Code:
define FALSE 0;
define TRUE 1;
Und wenn nun auf True verglichen wird aber 2 zurückkommt ist man aufgeschmissen..

alzaimar 1. Jan 2007 21:56

Re: C oder Delphi oder was?
 
Zitat:

Zitat von morp2
Zitat:

Zitat von alzaimar
@morp2: Preisfrage: Woher kommen die ganzen Buffer Overruns, die für die Instabilität der meisten Programme verantwortlich sind? Von der dämlichen C Library, der kranken Syntax und den noch bescheuerten Halbamateuren, die sich mit ihrem Frickelwissen 'C' als 'Cult' Programmiersprache (Chit wäre besser) ausgesucht haben (Gründe in meinem vorherigen Post).

Auch in einem Flamewar sollte mach sachlich bleiben.

Das ist sachlich und kein 'Flamewar' (Immer erst lesen und dann so'ne Allerweltsantworten posten). Die meisten Entwickler haben es nun mal nicht drauf. Dafür kann ich nichts, aber so ist das nun mal. Es ist wirklich so, das viele Frickler vorzugsweise in 'C' programmieren, "weil die Programme so schön cool professionell ausehen". Die Aussage stammt nicht von mir, sondern von eben diesen Programmieranfängern.
Zitat:

Zitat von morp2
Bzw: Was haben Dos-Attacken mit einer Programmiersprache zu tun?

DoS-Attacken gehen gegen die Schwachstellen einer Software. Bei C sind die Schwachstellen die 'Entwickler', die fehleranfällige Syntax und die blöde Library. Hab ich doch erklärt.

Und Abschließend nur noch das hier:
1. xarmomz hat Recht und
2. Es ist egal, was Du nimmst. Nimm halt das, was Dir am Besten gefällt, aber um Himmels willen schreib ordendliche, robuste, lesbare und kommentierte Programme!

thkerkmann 1. Jan 2007 21:56

Re: C oder Delphi oder was?
 
Hi alle.

Nun hackt mal nicht so sehr auf dem armen morp2 herum. Ich glaube, mittlerweile ist ihm klar, dass er in diesem Forum die falsche Frage gestellt hat. Leider hat er aber auch den falschen Ansatz bei seiner Programmierungsaufgabe - und das hat er noch nicht gemerkt.

Es geht doch eigentlich darum:

Mit welcher Sprache läßt sich die Aufgabe am besten umsetzen UND welche Sprache liegt dem Programmierer am besten. Dazwischen gilt es - sofern man nicht mehrere Sprachen wie aus dem ff beherrscht - einen Kompromiss zu finden.

Und diese Antwort kann er nur sich selber geben. Wir wissen nicht wie gut er C/C++ oder Delphi programmieren kann. Wir wissen nicht welche Sprache ihm am meisten liegt. Das wissen wir nur von uns selbst, daher auch diese erregte Diskussion....

Ich kann morp2 nur raten in sich zu gehen und es für sich selber herauszufinden. Und dann - wenn er seine Sprache gefunden hat, und sie richtig gut beherrscht - kann er trotz/wegen der Existenz von C/C++ oder Delphi oder PHP oder Java oder was auch immer - ein toller Programmierer sein.

Ich wünsche es ihm.

Gute Nacht.

:feuerchen:

[Edit] sorry hatte statt morp2 - morph2 angesprochen [/Edit]

morp2 1. Jan 2007 22:08

Re: C oder Delphi oder was?
 
Zitat:

Zitat von Bernhard Geyer
In Delphi/Pascal sind Funktionsbezeichner oft verständlicher oder auch ohne Handbuch/Onlinehilfe zu erraten.

Jeder der in Delphi programmiert gibt seinen Funktionen automatisch sinnvolle Namen?

Zitat:

Zitat von Bernhard Geyer
Ich kenne C-Headerdateien mit folgenden Inhalt (Evtl. nicht 100%ig Korrekte Syntax):
Code:
define FALSE 0;
define TRUE 1;
Und wenn nun auf True verglichen wird aber 2 zurückkommt ist man aufgeschmissen..

Das ist ein klassischer Anfängerfehler. Man vergleicht nicht auf true oder false. Du schreibts ja auch nicht:
Code:
int i = 5;
if((i == 5) == TRUE) ...
if(((i == 5) == TRUE) == TRUE) ...
Boolsche Variablen vergleicht man immer so:
Code:
BOOL bla = TRUE;
if(bla) ...
Und da ergibt alles außer 0 TRUE

Luckie 1. Jan 2007 22:23

Re: C oder Delphi oder was?
 
Ihr kommt immer weiter vom Thema ab.
[quote="morp2"]
Zitat:

Zitat von Bernhard Geyer
In Delphi/Pascal sind Funktionsbezeichner oft verständlicher oder auch ohne Handbuch/Onlinehilfe zu erraten.

Jeder der in Delphi programmiert gibt seinen Funktionen automatisch sinnvolle Namen?

Zitat:

Zitat von Bernhard Geyer
Ich kenne C-Headerdateien mit folgenden Inhalt (Evtl. nicht 100%ig Korrekte Syntax):
Code:
define FALSE 0;
define TRUE 1;
Und wenn nun auf True verglichen wird aber 2 zurückkommt ist man aufgeschmissen..

Ist in Delphi genauso.

alzaimar 1. Jan 2007 22:27

Re: C oder Delphi oder was?
 
morp2: Was soll denn das jetzt? Es *gibt* kein Argument für 'C'. Entweder Du magst es, oder nicht. Ich finde 'C' zum :kotz: , aber das weißt du ja nun. Ich programmiere seit 30 Jahren, teilweise auch in C. Und mich mag es nicht. Ich bevorzuge Delphi nicht nur, sondern mag die Asthetik, die mir sonst kein Code bietet. Vielleicht ist das Altersstarrsinn oder Gewohnheit. Es ist mir egal. Da ich beide Welten kenne, erlaube ich mir ein abschließendes Urteil : C(++) kommt mir nicht ins Haus.

Eine einzige Sache allerdings fehlt in Delphi: #define.... Sonst vermisse ich Nichts, sondern im Gegenteil: Die Compiler-Magic, die mir viele mühsehlige und fehleranfällige Aufräum- und Initialisierungsarbeiten ersparen, will ich nicht mehr missen. Wenn ein befreundeter C-Programmierer mit Variants arbeiten soll, hat er mehr Probleme als ich. Aber wenn ich maschinennah irgendwelche hochperformanten Minialgorithmen umsetzen muss (ASM gült nicht), schiele ich auf C,weil ich mir einbilde, das C hier ein paar % besser ist.

Bitte hör auf, mit irgendwelchen peinlichen 'Argumenten' dein C zu verteidigen, bringt doch nix:
Zitat:

Zitat von morp2
Zitat:

Zitat von Bernhard Geyer
In Delphi/Pascal sind Funktionsbezeichner oft verständlicher oder auch ohne Handbuch/Onlinehilfe zu erraten.

Jeder der in Delphi programmiert gibt seinen Funktionen automatisch sinnvolle Namen?

Ja, tendentiell. Wenn ich mich im Umfeld von Abkürzungen und Sonderzeichen befinde (C mit int, {, ++ etc.) neigt man dazu, den Variablen kurze kryptische Namen zu geben. In Umgebungen mit ausgeschriebenen Wörtern nimmt man eher längere Namen. Natürlich gibt es auch C-Code mit guten Variablennamen und Delphi-Code mit schrecklicher Nomenklatur, aber in der Tendenz ist es schon so, wie Berhard sagt.

Zitat:

Zitat von morp2
Zitat:

Zitat von Bernhard Geyer
Ich kenne C-Headerdateien mit folgenden Inhalt ...
Und wenn nun auf True verglichen wird aber 2 zurückkommt ist man aufgeschmissen..

Das ist ein klassischer Anfängerfehler.

Nein, ist es nicht. Das ist ein typischer "1.000 Zeilen und wir finden den Fehler nicht"-Fehler. Es gibt leider keinen expliziten boolean-typen. Eine Funktion, die nur 0/1-liefert *sollte*, garantiert mir leider nicht, das sie das auch wirklich tut, eine Delphi-Boolean-Funktion schon. :mrgreen:

Verstehst Du? C gibt dem Programmierer viel (imho: zu viel) Initialitive und Verantwortung in die Hand. Das mag damals bei Kernighan und Richie noch richtig gewesen sein (nämlich dem Dogma der starren veralteten Programmiersprachen zu entkommen), ist aber heute total überholt.

Wenn deine Anwendung GUI-lastig ist, verwende lieber Delphi. Die VCL und die angebotenen 3rd-Party-Komponenten sind einfach besser als die, die für C erhältlich sind.

Wenn deine Anwendung API-lastig ist (also Funktionalität implementiert, und keine GUI), dann nimm lieber C, weil für C einfach mehr Libraries auf dem Markt sind.

Und wenn schon eine Alternative zu Delphi, dann lieber C# oder Java, ehrlich. C ist veraltet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz