![]() |
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. |
Re: C oder Delphi oder was?
Zitat:
Pascal ist imo im Gegensatz zu C sehr viel besser und einfacher lesbar. :shock: |
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. |
Re: C oder Delphi oder was?
Zitat:
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. |
Re: C oder Delphi oder was?
Zitat:
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: |
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:
Wenn ich mich nicht irre ;)
procedure schreiben(s: String);
begin writeln(s); end; Jetzt nochmal in C
Code:
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.
void schreiben(char *s)
{ printf("%s", s); } |
Re: C oder Delphi oder was?
Zitat:
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? |
Re: C oder Delphi oder was?
Zitat:
Ach ja was ich noch vergessen hab: Variablendeklaration nur am Anfang einer Funktion... |
Re: C oder Delphi oder was?
Zitat:
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
Das steigert übrigens die Übersichtlichkeit und die Lesbarkeit des Codes. :zwinker: |
Re: C oder Delphi oder was?
Zitat:
![]() 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. |
Re: C oder Delphi oder was?
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
Zitat:
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:
Naja wir schweifen ab...
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; } } } [...] } |
Re: C oder Delphi oder was?
Zitat:
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:
|
Re: C oder Delphi oder was?
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
|
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. |
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.
|
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. |
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. |
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. |
Re: C oder Delphi oder was?
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
Code:
Kommt doch immer drauf an, wer und wie man es formatiert, gelle?
void schreiben (char *s) {printf
("%s" ,s) ;} Zitat:
Code:
Aaaaahh. Ja. DAS treibt nun *mich* in den Wahnsinn.
for (;i++<*++j;*i++) if (!*--i) i+=j
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'. |
Re: C oder Delphi oder was?
Zitat:
|
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. |
Re: C oder Delphi oder was?
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: C oder Delphi oder was?
Zitat:
An den Fragesteller: Du hättest diese Frage in einem neutralen Forum, in dem es um Delphi und C geht stellen sollen. |
Re: C oder Delphi oder was?
Zitat:
Bzw: Was haben Dos-Attacken mit einer Programmiersprache zu tun? |
Re: C oder Delphi oder was?
Zitat:
Zitat:
Zitat:
|
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 ![]() 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. |
Re: C oder Delphi oder was?
Hallo,
Zitat:
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. |
Re: C oder Delphi oder was?
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Code:
Und wenn nun auf True verglichen wird aber 2 zurückkommt ist man aufgeschmissen..
define FALSE 0;
define TRUE 1; |
Re: C oder Delphi oder was?
Zitat:
Zitat:
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! |
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] |
Re: C oder Delphi oder was?
Zitat:
Zitat:
Code:
Boolsche Variablen vergleicht man immer so:
int i = 5;
if((i == 5) == TRUE) ... if(((i == 5) == TRUE) == TRUE) ...
Code:
Und da ergibt alles außer 0 TRUE
BOOL bla = TRUE;
if(bla) ... |
Re: C oder Delphi oder was?
Ihr kommt immer weiter vom Thema ab.
[quote="morp2"] Zitat:
Zitat:
|
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:
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 00:37 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