024
14.10.2003, 12:06 Uhr
ao
(Operator)
|
Zitat: |
(un)wissender postete unter anderem:
Das erste mit der Teilmenge ist schlichte Mathmatik
Mir ist kein C++-Programmierer bekannt, der nicht exakt weiß, welche "Farbe" C++ und welche C hat.
Die Meinung, die du zu scanf und co. hast, hat zum Glück die Mehrheit nicht,
Wie solle den ein C-Wrapper aussehen? Ein struct? Lose Funktionen? Da bietet C++ aber um Dimensionen besseres...
|
Das mit der Teilmenge bestreite ich nicht. Ich bestreite aber, dass jemand, der die Obermenge beherrscht, automatisch auch mit der Teilmenge umgehen kann. Zumal in der Teilmenge wichtige Sachen fehlen, die das Wesen von C++ ausmachen.
Dadurch, dass C um einiges ärmer ist als C++, mutet es dem Programmierer mehr zu, und Probleme, die sich mit der STL mal so im Vorbeigehen lösen lassen, erfordern in C richtig Arbeit und genaues Verständnis. Darum stimmt es nicht, dass jeder C++-Programmierer automatisch auch ein C-Programmierer ist.
Na gut, du kennst keinen "reinen" C++-Programmierer. Aber du empfiehlst, sofort C++ zu lernen und sich mit C nicht weiter zu beschäftigen. Nur: so entstehen die reinen C++-Programmierer, die C nur dem Namen nach kennen und damit gerade mal ein Hello World zustande bringen.
Bei scanf hab ich mich möglicherweise unklar ausgedrückt. Ich wollte sagen: scanf ist tatsächlich Schweinkram, aber es gibt fgets, strtol, strtod, atoi, sscanf und so weiter, und damit lassen sich sichere Input-Funktionen basteln.
Und der C-Wrapper um char*: Ein struct und eine Handvoll Funktionen ist eine Möglichkeit. Ein struct mit Funktionspointern ist eine bessere. Eine Construct- und eine Destruct-Funktion dazu, und wir sind von einer Klasse gar nicht mehr so weit weg, müssen nur ein paar Sachen von Hand machen, die uns in C++ vom Compiler geschenkt werden.
Ich weiß selber, dass in C++ viele Sachen einfacher gehen, und darum würde ich, wenn ich die Wahl habe, wahrscheinlich immer C++ verwenden. Aber der kleine Sprachumfang von C ist ein Riesenvorteil, wenn es darum geht, einen Compiler zu bauen oder auf eine neue Plattform zu portieren. Wenn C so mächtig und kompliziert wie C++ wäre, hätte es niemals diese Verbreitung erlangt. Schau mal über deinen PC-Horizont hinaus. Für praktisch jede CPU, vom Mini-Mikrocontroller für Kaffeemaschinensteuerungen bis zum Superrechner, gibt es C-Compiler. Weil der Entwicklungsaufwand für den Compiler so gering ist, dass sich das lohnt. Der Aufwand für einen C++-Compiler ist viel höher, und das lohnt sich in vielen Fällen eben nicht.
ao Dieser Post wurde am 14.10.2003 um 12:11 Uhr von ao editiert. |