C oder C++ - Lohnt es sich noch C zu lernen?



  • volkard schrieb:

    die diskrepanz ist allein historisch begründet, es gibt noch kein tutorial oder buch, das ordentlich von grund auf ohne vergessenswerten und die weitere entwicklung hemmenden zwischenmüll von den wesentlichen ursprüngen zu den modernen konzepten emporsteigt.

    Also ich finde die beiden "Thinking in C++" Bücher (gibt es auch in der Buechersektion als EBooks) führen sehr schön und anschaulich vom C zum C++.
    Sicherlich nicht perfekt, aber sehr gut nachvollziehbar.

    Warum soll es denn so schlimm sein, wenn man C++ und dessen Konzepte ausgehend von seinem Vorgänger erläutert?



  • SeppSchrot schrieb:

    Also ich finde die beiden "Thinking in C++" Bücher (gibt es auch in der Buechersektion als EBooks) führen sehr schön und anschaulich vom C zum C++.
    Sicherlich nicht perfekt, aber sehr gut nachvollziehbar.

    die kommenden autoren, also die, die mit thinking in c++ aufgewachsen sind, werden die bücher schreiben, mit denen die leute aufwachsen, die erstmal c++ kapieren werden. ich wünsche mir, mit einem der c++-kapierer noch reden zu können.

    Warum soll es denn so schlimm sein, wenn man C++ und dessen Konzepte ausgehend von seinem Vorgänger erläutert?

    das ist nicht schlecht, das ist ideal. wir erläutern ja auch immer die mathematik in historischer reihenfolge.



  • volkard schrieb:

    je besser du bist, desto besser ist es für dich, wenn du vor c++ c lernst.
    die allermeisten sollten c++ vor c lernen.
    deswegen auch die verschiedenen meinungen; je besser die leute sind, desto eher sagen sie, daß es gut war, vorher c zu lernen. nur wenige haben c und c++ hinter sich gelassen und können zudem ihren kopf von oben sehen.

    hm...interessanter Absatz und klingt auch noch logisch obendrein ... 😉

    Wenn ich nach dem urteile, was ich bis jetzt an Leuten im Internet gesehen habe, die Tutorials oder Hilfestellungen zu C oder C++ geschrieben haben, kann ich dem 100%ig zustimmen, da diese nämlich genau das gleiche sagen. 🙂

    Nagut, im Endeffekt spielt es für mich eine noch nicht so große Rolle mit was ich anfange denke ich mal. Bin ja erst 16 und habe noch eine Weile Zeit. 😃

    Ich gehe jetzt nach den Ferien auf eine Fachhochschule für Informatik und möchte mich schonmal darauf vorbereiten, damit ich dann mittendrin statt nur dabei bin. 😉



  • volkard schrieb:

    die kommenden autoren, also die, die mit thinking in c++ aufgewachsen sind, werden die bücher schreiben, mit denen die leute aufwachsen, die erstmal c++ kapieren werden.

    Das bleibt zu hoffen, und solche positiven Erwartungshaltungen sind mir sowieso viel lieber, als die "C++ ist längst veraltet"-Pessimisten.

    Also lieber RollingStone, du kannst ruhigen Gewissens die nächste Zeit erstmal C lernen, und hast dann immer noch mehr als genug Zeit, dich dem C++ zu widmen.



  • SeppSchrot schrieb:

    volkard schrieb:

    die kommenden autoren, also die, die mit thinking in c++ aufgewachsen sind, werden die bücher schreiben, mit denen die leute aufwachsen, die erstmal c++ kapieren werden.

    Das bleibt zu hoffen, und solche positiven Erwartungshaltungen sind mir sowieso viel lieber, als die "C++ ist längst veraltet"-Pessimisten.

    Was denn.. C++ auch schon?? 😕 😃

    Also lieber RollingStone, du kannst ruhigen Gewissens die nächste Zeit erstmal C lernen, und hast dann immer noch mehr als genug Zeit, dich dem C++ zu widmen.

    Denke ich auch. Danke für eure Ratschläge.



  • RollingStones schrieb:

    Was denn.. C++ auch schon?? 😕 😃

    ahm, ja. muß man zugeben.
    wir haben c++ die enorme sprachvielfalt zu verdanken, die um uns erblüht. im prinzip ist c++ viel viel besser als ruby, python, java und konsorten. aber c++ wird von einem standardisierungskommitee definiert, das den fernschreiber für den letzten schrei auf dem computersektor hält und wir haben weder farben noch netzwerk, sound, maus und so. offensichtlich gute und ganz einfach zu definierende sachen wie typeof brauchen jahrzehnte, um angenommen zu werden (vom übersetzngsmodell mal ganz zu schweigen). das ist wieder ein soziales problem (so, wie das, warum nicht c vor c++), c++ ist zwar am stärksten aber alle wissen, daß c++ von ehemals schwachen sprachen wie basic einfach überholt wird.
    (mit "am stärksten" meine ich am stärksten für saumäßig komplizierte und große programme. für kleine sachen hat c++ bereits abgedankt.)
    so kommt es, daß viele viele leute (zu recht!) mit c++ unzufrieden sind und ne neue sprache bauen. aber keine der neuen kann gegen c++ dann auf lange distanz anstinken, das konzept ist schon wirklich gut. und die neuen sprachen müssen ja auch anders sein, um wenigstens ein bißchen angenommen zu werden. nur ein c++ mit typoeof und anderer klammerung würde keiner wollen (leider).



  • volkard schrieb:

    RollingStones schrieb:

    Was denn.. C++ auch schon?? 😕 😃

    ahm, ja. muß man zugeben.
    wir haben c++ die enorme sprachvielfalt zu verdanken, die um uns erblüht. im prinzip ist c++ viel viel besser als ruby, python, java und konsorten. aber c++ wird von einem standardisierungskommitee definiert, das den fernschreiber für den letzten schrei auf dem computersektor hält und wir haben weder farben noch netzwerk, sound, maus und so. offensichtlich gute und ganz einfach zu definierende sachen wie typeof brauchen jahrzehnte, um angenommen zu werden (vom übersetzngsmodell mal ganz zu schweigen). das ist wieder ein soziales problem (so, wie das, warum nicht c vor c++), c++ ist zwar am stärksten aber alle wissen, daß c++ von ehemals schwachen sprachen wie basic einfach überholt wird.
    (mit "am stärksten" meine ich am stärksten für saumäßig komplizierte und große programme. für kleine sachen hat c++ bereits abgedankt.)
    so kommt es, daß viele viele leute (zu recht!) mit c++ unzufrieden sind und ne neue sprache bauen. aber keine der neuen kann gegen c++ dann auf lange distanz anstinken, das konzept ist schon wirklich gut. und die neuen sprachen müssen ja auch anders sein, um wenigstens ein bißchen angenommen zu werden. nur ein c++ mit typoeof und anderer klammerung würde keiner wollen (leider).

    Hm...verstehe.

    Ich denke aber mal, dass sich SeppSchrot verschrieben hatte und C gemeint hatte, was in diesem Kontext viel logischer wäre, da es sich hierbei ja um das Thema C <--> C++ und nicht C++ <--> diverse weitere Sprachen handelt.

    P.S.: @volkard: Wir wohnen ca. 20-25 (??) km voneinander entfernt. 😉



  • Was soll man sagen? Grace Hopper ist tot, COBOL nicht.

    C wird nicht aussterben, weil es tonnenweise an Programmen gibt, die auf C laufen und gewartet werden wollen. C++? dito.
    Da es in großem Stil immernoch billiger ist, irgendwo dran rumzustricken, als es einfach neu zu machen (selbst, wenn man die Schulung von Progrmamierern mit einberechnet) und meist auch wesentlich schneller, wird sich daran so schnell ja nichts ändern..



  • wenn du das so pingelig siehst, wird nichtmal Deplhi (nehmen wie delphi mal als sprache an) aussterben, denn delphi wird noch in schulen gelehrt und es spricht nichts dagegen, das in der nächsten generation nicht auch noch zu tun.



  • volkard schrieb:

    wenn du das so pingelig siehst, wird nichtmal Deplhi (nehmen wie delphi mal als sprache an) aussterben, denn delphi wird noch in schulen gelehrt und es spricht nichts dagegen, das in der nächsten generation nicht auch noch zu tun.

    Der Unterschied dazu ist aber, dass man Lehrpläne an Schulen schnell und kostenlos ändern kann, ich kenn das nur zu gut. 😃 😉



  • Hallo

    vielleicht ist C ja wirklich die "endgültige" Notation für die Systemprogrammierung, an der sich nicht mehr viel ändern wird, solange es PCs gibt;
    es scheint fast so. An der üblichen mathematischen Formel-Notation mit Punkt-, Strich- und Prozentrechnung sowie Bruchstrich, Integralzeichen etc. ändert sich ja auch schon seit über 200 Jahren fast nichts mehr.

    Grüße



  • Hobbyprogrammierer schrieb:

    vielleicht ist C ja wirklich die "endgültige" Notation für die Systemprogrammierung, an der sich nicht mehr viel ändern wird, solange es PCs gibt;
    es scheint fast so. An der üblichen mathematischen Formel-Notation mit Punkt-, Strich- und Prozentrechnung sowie Bruchstrich, Integralzeichen etc. ändert sich ja auch schon seit über 200 Jahren fast nichts mehr.

    c++ ist für systemprogrammierung besser geeignet.



  • volkard schrieb:

    Hobbyprogrammierer schrieb:

    vielleicht ist C ja wirklich die "endgültige" Notation für die Systemprogrammierung, an der sich nicht mehr viel ändern wird, solange es PCs gibt;
    es scheint fast so. An der üblichen mathematischen Formel-Notation mit Punkt-, Strich- und Prozentrechnung sowie Bruchstrich, Integralzeichen etc. ändert sich ja auch schon seit über 200 Jahren fast nichts mehr.

    c++ ist für systemprogrammierung besser geeignet.

    LOLLLLL!!!!!!!
    Deswegen ist Windows hautpsächlich in C geschrieben! Und UNIX (und derivate) sidn ALLE in C geschrieben (abgesehehn vom ur-unix welches in asm geschrieben war)

    C rulet!



  • llllllllllol schrieb:

    Deswegen ist Windows hautpsächlich in C geschrieben! Und UNIX (und derivate) sidn ALLE in C geschrieben (abgesehehn vom ur-unix welches in asm geschrieben war)

    hat historische gründe.



  • volkard schrieb:

    llllllllllol schrieb:

    Deswegen ist Windows hautpsächlich in C geschrieben! Und UNIX (und derivate) sidn ALLE in C geschrieben (abgesehehn vom ur-unix welches in asm geschrieben war)

    hat historische gründe.

    Ja, aber OOP ist ja eine Art Abstraktionsebene (Abstraktionsebene ist vllt nicht das richtige wort). Systemprogrammierung ist immernoch lowlevel programmierung.
    => C



  • lllllllllllllol schrieb:

    Ja, aber OOP ist ja eine Art Abstraktionsebene (Abstraktionsebene ist vllt nicht das richtige wort). Systemprogrammierung ist immernoch lowlevel programmierung.
    => C

    du machst gerade den fehler, systemprogrammierung als das zu definieren, was man in c macht.



  • volkard schrieb:

    lllllllllllllol schrieb:

    Ja, aber OOP ist ja eine Art Abstraktionsebene (Abstraktionsebene ist vllt nicht das richtige wort). Systemprogrammierung ist immernoch lowlevel programmierung.
    => C

    du machst gerade den fehler, systemprogrammierung als das zu definieren, was man in c macht.

    Du wirst nicht leugnen können, dass sich C++ zu einer höheren Sprache entwickelt hat als C. OOP ist ein provileg einer höheren sprache, wogegen C eher lowlevelmäßig ist. Und die STL tut den rest: Highlevel und bequem!

    Ich definiere Systemnprogrammierung mit lowlevel.
    Da ich C++ zu highlevel halte, würde ich C für systemprogrammierung vorziehen.



  • llllllllllllllllol schrieb:

    Du wirst nicht leugnen können, dass sich C++ zu einer höheren Sprache entwickelt hat als C. OOP ist ein provileg einer höheren sprache, wogegen C eher lowlevelmäßig ist. Und die STL tut den rest: Highlevel und bequem!

    du wirst nicht leugnen können, daß man mit c++ grundlegende datenstrukturen der systemprogrammierung sehr fein in klassen packen kann und dabei null zusatzkosten zur laufzeit hat. und das ist was gutes, das programmieren fällt leichter, geht schneller, ist fehlerärmer. als systemprogrammierer wird man natürlich nicht mit std::string oder RTTI um sich hauen.



  • volkard schrieb:

    llllllllllllllllol schrieb:

    Du wirst nicht leugnen können, dass sich C++ zu einer höheren Sprache entwickelt hat als C. OOP ist ein provileg einer höheren sprache, wogegen C eher lowlevelmäßig ist. Und die STL tut den rest: Highlevel und bequem!

    du wirst nicht leugnen können, daß man mit c++ grundlegende datenstrukturen der systemprogrammierung sehr fein in klassen packen kann und dabei null zusatzkosten zur laufzeit hat. und das ist was gutes, das programmieren fällt leichter, geht schneller, ist fehlerärmer. als systemprogrammierer wird man natürlich nicht mit std::string oder RTTI um sich hauen.

    Okay, aber wie gesagt: STL ist ja ein fester bestandteil von C++.
    Dauernd wird geprädigt, man solle die finger von char* lassen und stattdessen string nehmen.

    Möglich ist es natürlich in C++ Sytemnah zu programmieren. Fragt sich nur wie es in der Praxis aussieht.

    Meine Skepsis kommt wohl daher, dass ich bisher nur in C systemnah programmiert habe. Alles andere wird bei mir in C++ geschrieben.



  • llllllllllllllllllllllol schrieb:

    Dauernd wird geprädigt, man solle die finger von char* lassen und stattdessen string nehmen.

    jo, schlimm.

    Möglich ist es natürlich in C++ Sytemnah zu programmieren. Fragt sich nur wie es in der Praxis aussieht.

    es wird zum beispiel bei embedded systems nicht gemacht, weil die entscheidungsträger die gleichen vorurteile haben wie du.


Anmelden zum Antworten