Ist es sinnvoll heute noch C++ anzufangen?



  • Im Grunde ist C++ nur eine Verschlimmbesserung von C. Beim Versuch C objektorientiert zu machen wurde eine Menge Overhead erzeut der für größere und somit langsamere Programme sorgt. Und zusätzlich wurden noch viel mehr Möglichkeiten undefiniertes Verhalten hervorzurufen eingebaut.



  • ~john schrieb:

    [*]Makros

    sind doch gut und brauchbar in C. natürlich kann man mit makros auch mist fabrizieren, aber womit kann man das nicht?

    ~john schrieb:

    [*]Trigraphs

    hab' ich noch nie verwendet. ich muss jedesmal bei wikipedia o.ä. nachschauen, was das überhaupt ist. ist also nichts lebenswichtiges und daher auch kein wirkliches problem für C programmierer.

    ~john schrieb:

    [*]Zeigerarithmetik

    ist in C, weil C ziemlich maschinennah ist, sehr sinnvoll. was würdest du als ersatz vorschlagen?

    ~john schrieb:

    [*]Operator "?", ist redumdant zu "if"

    der ist z.b. gut, wenn du makros bauen willst, die einen wert 'zurückgeben' können. aber sonst braucht man's so gut wie nie.

    ~john schrieb:

    [*]Bedeutung von "extern"

    was findest du doof an 'extern'? oder meintest du vielleicht 'static'?

    ~john schrieb:

    [*]Der konkrete Typ von char ist "implementation defined", er kann entweder "unsigned char" oder "signed char" sein.

    dann nimm 'int'. wenn's unbedingt 'char' sein muss und vorzeichenbehaftung eine rolle spielt, dann schreib einfach ein 'signed' oder 'unsigned dazu.

    einiges von dem ^^ könnte einsteigern anfangs vielleicht kopfzerbrechen bereiten, aber echte unzulänglichkeiten hast du nicht eine einzige genannt. vielleicht weil es keine gibt?
    btw, ich verstehe jetzt nicht mehr, warum du dich manchmal abfällig über Java geäussert hast. das meiste was du da aufgezählt hast, ist in Java (trotz C-syntax) nicht vorhanden.
    🙂



  • +fricky schrieb:

    ~john schrieb:

    [*]Operator "?", ist redumdant zu "if"

    der ist z.b. gut, wenn du makros bauen willst, die einen wert 'zurückgeben' können. aber sonst braucht man's so gut wie nie.

    Und manche Sachen schreiben sich einfach schneller, hier eine statt fünf Zeilen:

    int degree =  is_dirty?  60  : 30;
    

    Redundanz als Begründung für "schlecht" finde ich merkwürdig oder hast du auch was gegen die while-Schleife?



  • ~john schrieb:

    • Makros

    Da kann ich nur bedingt zustimmen. Makros sind aber manchmal verdammt praktisch.

    ~john schrieb:

    • Trigraphs

    ich programmiere schon seit Jahren in C und hab auch alten Code warten müssen, doch so etwas wie Trigraphs wusste ich nicht einmal, dass es gibt. Zum ersten Mal davon gehört. Krass dass C sowas (noch) unterstützt.

    ~john schrieb:

    • Zeigerarithmetik

    Also, C ohne Zeigerarithmetik ist kein C mehr. Wenn man sehr maschinennah arbeitet, ist das oft notwendig und es gibt sogar Architkturen, die das "von Hause aus" können, ARM zu Beispiel.

    ~john schrieb:

    • Operator "?", ist redumdant zu "if"

    ist nicht überflüssig, vor allem, wenn man mit Makros arbeitet. Aber da du ja Makros nicht magst ...

    ~john schrieb:

    • Bedeutung von "extern"

    verstehe ich nicht, was da so schrecklich daran ist.

    ~john schrieb:

    • Der konkrete Typ von char ist "implementation defined", er kann entweder "unsigned char" oder "signed char" sein.

    das stimmt, das kann viel schon Ärger machen, wenn man nicht aufpasst.



  • C ist lässig, leger, gut gelaunt und einfach genial.

    Wer damit nicht zurechtkommt weil die Phantasie fehlt soll Java oder so was nehmen.



  • Scheppertreiber schrieb:

    C ist lässig, leger, gut gelaunt und einfach genial.

    Wer damit nicht zurechtkommt weil die Phantasie fehlt soll Java oder so was nehmen.

    So sieht's aus.



  • Scheppertreiber schrieb:

    C ist lässig, leger, gut gelaunt und einfach genial.

    hey, ich bin scheinbar nicht der einzige C-fanboy hier 😉

    Scheppertreiber schrieb:

    Wer damit nicht zurechtkommt weil die Phantasie fehlt soll Java oder so was nehmen.

    grrrrr... 😡
    (mal kein grinse-smiley, weil zwei andere schon da sind)



  • Isdochwahr ...

    Brauche ich ein Objekt nehme ich es in die linke Hand und schubse es gelangweilt vom Schreibtisch 😉
    Dann mache ich ein Bier auf und die Welt ist in Ordnung ...



  • Badestrand schrieb:

    +fricky schrieb:

    ~john schrieb:

    [*]Operator "?", ist redumdant zu "if"

    der ist z.b. gut, wenn du makros bauen willst, die einen wert 'zurückgeben' können. aber sonst braucht man's so gut wie nie.

    Und manche Sachen schreiben sich einfach schneller, hier eine statt fünf Zeilen:

    int degree =  is_dirty?  60  : 30;
    

    Redundanz als Begründung für "schlecht" finde ich merkwürdig oder hast du auch was gegen die while-Schleife?

    Da finde ich Python lesbarer:

    degree = 60 if is_dirty else 30
    

    Devent, der jetzt (wahrscheinlich) von Java auf Python wechselt. 😃



  • grrrrr...
    (mal kein grinse-smiley, weil zwei andere schon da sind)

    Vielleicht fällt dir dann mal auf, dass deine Argumentation für C und deine Argumentation für Java total widersprüchlich sind.
    Bei C gegen C++ sagst du "C hat keine Unzulänglichkeiten, man kann mit jedem Feature Mist bauen, wenn man es falsch benutzt, aber als guter Programmierer passiert das nicht"
    Bei Java gegen C++ sagst du "doch, das passiert, aber auf jeden Fall, egal was ist. C++ Features sind gefährlich, man kann mit Javatools auf keinen Fall Mist bauen etc. pp. blahblah.".



  • DEvent schrieb:

    Devent, der jetzt (wahrscheinlich) von Java auf Python wechselt. 😃

    dann muß java ja echt auf dem absteigenden Ast sein 👍

    😃



  • +fricky schrieb:

    Scheppertreiber schrieb:

    C ist lässig, leger, gut gelaunt und einfach genial.

    hey, ich bin scheinbar nicht der einzige C-fanboy hier 😉

    ich bin auch ein C-Fanboy! nur, ich kenne mich nicht mit C++ aus, deshalb kann ich da nicht mitreden 😡



  • supertux schrieb:

    ich bin auch ein C-Fanboy! nur, ich kenne mich nicht mit C++ aus, deshalb kann ich da nicht mitreden 😡

    Keine Scheu, Sachkenntnis ist bei sowas auch eher hinderlich.



  • Bashar schrieb:

    supertux schrieb:

    ich bin auch ein C-Fanboy! nur, ich kenne mich nicht mit C++ aus, deshalb kann ich da nicht mitreden 😡

    Keine Scheu, Sachkenntnis ist bei sowas auch eher hinderlich.

    👍



  • Einige hier werden offensichtlich nervös, wie man an ihren zunehmend gereizten Reaktionen auf frickys sachliche Beiträge sehen kann.

    Ich verstehe aber auch nicht, warum manche Leute solche Evangelisten sind und sich sofort persönlich angegriffen fühlen, wenn man feststellt, daß C++ Mängel hat und seine besten Zeiten vorüber sind.



  • Als weiter so - ich mag dieses leicht abgeklärte saloppe Programmiersprachenbashing 😉

    OOP könnten wir noch mal rannehmen ...



  • JustAnotherNoob schrieb:

    grrrrr...
    (mal kein grinse-smiley, weil zwei andere schon da sind)

    Vielleicht fällt dir dann mal auf, dass deine Argumentation für C und deine Argumentation für Java total widersprüchlich sind.

    würde ich nicht sagen. C und Java, samt ihrer anwendungsbereiche, sind einfach 'anders', deshalb gelten viele argumente für Java nicht für C und umgekehrt auch nicht.

    JustAnotherNoob schrieb:

    Bei C gegen C++ sagst du "C hat keine Unzulänglichkeiten, man kann mit jedem Feature Mist bauen, wenn man es falsch benutzt, aber als guter Programmierer passiert das nicht"

    die frage ist, wann jemand ein 'guter programmierer' ist, um mit einer sprache sicher umgehen zu können. vergleich' es mit brettspielen wie schach und mühle. in mühle wird man sehr schnell sehr gut, bei schach dauert es viel, viel länger. die macken von C sind dermassen minimal, dass man schnell lernt, was (situationsbedingt) falsch und was richtig ist. mit Java verhält es sich ähnlich, allerdings auf einer anderen ebene.

    JustAnotherNoob schrieb:

    Bei Java gegen C++ sagst du "doch, das passiert, aber auf jeden Fall, egal was ist. C++ Features sind gefährlich, man kann mit Javatools auf keinen Fall Mist bauen etc. pp. blahblah.".

    es ist zumindest viel schwerer in Java mist zu bauen, weil das ganze lowlevel-niveau wie manuelle speicherverwaltung, pointer, nackte arrays, alles-in-alles casten zu können, usw. praktisch nicht existiert. solche dinge sind alle für eine lowlevel-sprache wie C unverzichtbar, haben aber in einer highlevel-sprache nichts verloren.
    🙂



  • Bashar schrieb:

    supertux schrieb:

    ich bin auch ein C-Fanboy! nur, ich kenne mich nicht mit C++ aus, deshalb kann ich da nicht mitreden 😡

    Keine Scheu, Sachkenntnis ist bei sowas auch eher hinderlich.

    genau, als wären C++ Fanboys per Definition sachlich. Danke für die Schublade, ein sehr sachliches Argument von dir.



  • supertux schrieb:

    genau, als wären C++ Fanboys per Definition sachlich. Danke für die Schublade, ein sehr sachliches Argument von dir.

    Das hast du falsch verstanden. Die meisten die gegen C++ anstänkern, und sich HIER tummeln, haben ebend keine C++-Sachkenntnis. Und dann ist dieses Schubladendenken berechtigt.

    Es ist ja nicht so, das die C++-Fanboys sich jede Woche in Java-Foren rumtummeln und gegen Java stänkern. Denk mal darüber nach, wer hier von beiden Seiten Minderwertigkeitskomplexe hat? 🙄



  • Es ist ja nicht so, das die C++-Fanboys sich jede Woche in Java-Foren rumtummeln und gegen Java stänkern. Denk mal darüber nach, wer hier von beiden Seiten Minderwertigkeitskomplexe hat?

    So etwas gibt es ? "Foren stürmen" ??? Oha !


Anmelden zum Antworten