Was zuerst lernen? C++ oder doch zuerst C?


  • Mod

    Problem ist wohl eher nicht dass man das nicht auch in C++ schreiben könnte sondern dass es für viele MC oft keine (oder nur sehr eingeschränkt funktionierende) C++ Compiler gibt.

    Das war nicht das Argument das ich zitiert habe. Und es ist nicht überzeugend. Warum sollte man jemandem generell C empfehlen nur weil irgendwelche MCs keine C++ Cross-compiler haben?



  • Arcoth schrieb:

    Das war nicht das Argument das ich zitiert habe. Und es ist nicht überzeugend. Warum sollte man jemandem generell C empfehlen nur weil irgendwelche MCs keine C++ Cross-compiler haben?

    Ganz einfach, weil "C ist überholt" so allgemein mMn nicht stimmt. Der TE hat doch sogar explizit gesagt dass er auch MC programmieren will. Und auf vielen ist C eben noch nicht überholt sondern nach wie vor "state-of-the-art".

    Eine generelle Empfehlung kann man da doch eh nicht geben? Kommt halt drauf an was man machen will und auf MC kommt man um C eben meistens nicht rum (nicht das ich das gut finden würde)...



  • biased schrieb:

    Nathan schrieb:

    Mythos 1: https://isocpp.org/blog/2014/12/myths-1

    Frag Microsoft, was sie von Linux halten. http://xaharts.org/funny/i/Microsoft_Linux_ad.jpg.
    Nur weil das auf isocpp.org steht, heisst das noch lange nicht, dass das glaubwürdig ist.

    Nun, ich denke schon, dass die Meinung von isocpp zum Thema "sollte man C können bevor man C++ lernt?" schon richtig ist. Schließlich designen die die Sprache, wenn die es nicht wissen sollen, wer dann?

    Vielleicht ist dieses "subset of C++", von dem isocpp spricht einfacher zu lernen als C. Aber leider für Mikrocontroller völlig ungeeignet. Für Mikrocontroller musst du C sowieso lernen, auch wenn du C++ programmierst. Da du schon ein bisschen programmieren kannst würde ich auch gleich mit C anfangen.

    Es geht da nicht um C vs C++, sondern um "sollte man C können, bevor man C lernt".
    BTW: yeah, der zweite C vs C++ Flamewar innerhalb weniger Tage!



  • Arcoth schrieb:

    Das sind 0 Speicherallokationen!

    Ja, voll krass! Wenn wir bloß den genau gleichen Code auch in C++ schreiben könnten... 🙄

    Mir ging es nicht darum, dass das in C++ unmöglich ist, sondern um

    C is almost a subset of C++, but it is not the best subset to learn first because C lacks the notational support, the type safety, and the easier-to-use standard library offered by C++ to simplify simple tasks.

    Wenn du sowieso das C subset lernen musst (hier wegen μC), dann kannst du auch gleich damit anfangen, insbesondere wenn du schon Programmiererfahrung hast.



  • [quote="Arcoth"]

    Das war nicht das Argument das ich zitiert habe. Und es ist nicht überzeugend. Warum sollte man jemandem generell C empfehlen nur weil irgendwelche MCs keine C++ Cross-compiler haben?

    Also bis jetzt habe ich wieder was gelernt, dass es auch eher an den MC's liegt wegen den "C++ Cross-compiler". Bis jetzt bin ich unentschlossen.

    Mit welcher Sprache abgesehen von der Art des MC's erreicht man schneller sein Ziel (wenn man mal jetzt so fragen darf), um MC's zu programmieren?

    Ich denke, dass ich auch zuerst hardwarebasierend zum Programmieren mit MC's anfangen möchte.

    Ich habe das MS Visual Studio Express 2013 im Moment, weil auch im Buch damit gearbeitet wird (also mit der 2010ner). Wenn ich doch mit C starten möchte, muss ich mir ein anderen Tool holen, weil "ich glaube", dass die 2013ner Version kein C unterstützt (kann auch total falsch sein 😕 ).



  • Zuerst C und dann C++. Ich bin dann ganz schnell wieder zurück zu C, das ist aber bei jedem anders.



  • Arcoth schrieb:

    Nein.

    C ist überholt und sollte von niemandem mehr freiwillig gelernt werden.

    Ich denke, in einen C# Forum würde man dass gleiche über C++ sagen.



  • Nathan schrieb:

    BTW: yeah, der zweite C vs C++ Flamewar innerhalb weniger Tage!

    Jupp und die Moderation mischt wieder mit. 👎



  • Ja und für Mikrocontroller eh nur C, denn da haben die vielen Unzulänglichkeiten von C++ nichts verloren. In C++ passiert sehr viel hinter den Kulissen, wenn man das nicht alles weiß schreibt man nur Schrott. Nicht umsonst ist eines der grüßten Softwareprojekte weltweit in C geschrieben, nämlich Linux. Also lass dir keinen Bären aufbinden hier, dass C nicht mehr "in" ist oder sich für größere Sachen nicht eignet.



  • Du solltest auf keinen Fall zuerst C und dann C++ lernen, weil es dir dann warscheinlich viel schwerer fallen wird.
    Mir gings auch so, für meine Zwecke reicht C auf jeden Fall aus. Für einfache Anwendungsprogramme kannst du auch C verwenden und wenn du sowieso Mikrocontroller programmieren willst dann ist es sogar am besten.
    C ist maschinennäher als C++ und im Allgemeinen auch leichter zu erlernen.
    Die Aussgage, dass C seit C++ nichts mehr Wert ist, ist um es so auszudrücken "geistige Gülle".
    Es kommt darauf an was einem am besten liegt und objektorientiertes Programmieren ist kein muss.



  • Unreg schrieb:

    Nathan schrieb:

    BTW: yeah, der zweite C vs C++ Flamewar innerhalb weniger Tage!

    Jupp und die Moderation mischt wieder mit. 👎

    Mir geht es nicht darum ein Thema C vs. C++ zu eröffnen, sondern eher darum, mein Ziel mit meinen beschriebenen Kenntnissen zu PHP, den Einstieg zielsicherer und schneller zu gestalten.

    Und da mein Ziel anfangs ist, mit MC's zu arbeiten, nunja, Gründe wurden wegen der Compiler-Geschichte schon genannt. Also nicht falsch verstehen 😉



  • Ontopic: Ich habe auch zuerst C gelernt. Es hatte mir nicht geschadet (die Lehrbücher für C++ waren schlimmer), es hatte mir wohl gezeigt wie einfacher triviale Sachen in C++ doch sind (strings die dynamisch wachsen, wie geil ist das denn bitte!).
    Es hat mir allerdings auch nicht viel genützt. Man sagt, dass man mit C ein besseres Verständnis von dem Lowlevelzeugs bekommt. Das mag ja sein, nur in C++ kann man das genauso gut lernen.
    Imo ist es nicht nötig C zu können um C++ zu können, schadet aber auch nicht (sofern man sich dann auf C++ einlässt und nicht immer noch C in C++ programmiert).



  • Lieber ein guter C-Coder werden als ein mittelmäßiger C++-Coder.



  • Nun ich denke, dass ich doch zuerst wegen meiner Zielausrichtung C lernen werde.

    Ich habe mir gerade das Buch gekauft: "Einstieg in C: Für Programmiereinsteiger geeignet" (ISBN: 3836227932) Da in dem Buch auch Raspberry behandelt wird.

    Ich habe mir noch das Buch "C von A bis Z: Das umfassende Handbuch" (ISBN: 3836214113) angesehen, jedoch denke ich, dass ich für den Einstieg mit dem anderen Buch schneller erste Erfolge erzielen werde. Danach kann ich immer noch das Nachschlagewerk kaufen. Für den Anfang bin ich jedoch mit dem anderen Buch gut bedient.

    Ich hoffe, es war eine gute Wahl 😕



  • C von A bis Z hat leider keine so gute Kritik



  • Asyl-Dämon schrieb:

    C von A bis Z hat leider keine so gute Kritik

    Das lese ich jedoch auch bei dem Buch was ich gekauft habe. Irgendwo gibt‘s immer was auszusetzen. 🙂



  • Asyl-Dämon schrieb:

    C von A bis Z hat leider keine so gute Kritik

    Wieso "leider"? Es ist doch gut, wenn die Kritiken der Qualität entsprechen und keinen Schrott in den Himmel loben.



  • @Bashar Das "leider" war auf web-codex Aussage bezogen "Ich hoffe es war eine gute Wahl"


  • Mod

    Der TE hat doch sogar explizit gesagt dass er auch MC programmieren will.

    Huch, total überlesen. Ich dachte das Lernen hätte keinen speziellen Kontext.

    Kommt halt drauf an was man machen will und auf MC kommt man um C eben meistens nicht rum (nicht das ich das gut finden würde)...

    Ich habe einen MC in C++ programmiert, per AVR-GCC. Das lief auch völlig einwandfrei. Die API für die ganzen anderen Teile war aber leider in C.



  • Erst einmal Glückwunsch zu der Wahl der Programmiersprache C. Ich finde die auch um Längen einfacher zu handhaben als C++ und du kannst damit wirklich portable und auch alles programmieren. Vom kleinsten Mikrocontroller bis zum großen Betriebssystem, Compiler, VM oder was auch immer.

    Die Buchwahl ist wohl nicht so toll, aber dass musst du am besten selbst raus finden. Diese Max bei Amazon ist eventuell auch nur so ein armer kranker Geist und er würde auch gut hier in der Forum passen, denn viele Fehler die der ankreidet sind oft nur extreme Spezialfälle. Ein paar üble Fehler hat er aber auch in deinem Buch gefunden. Man macht z.B. kein fclose wenn fopen nicht geklappt hat.

    Ein richtig gutes Buch ist zum Beispiel C Primer Plus. Allerdings ist das in Englisch, denn Deutsche können keine Fachbücher schreiben und haben auch kaum wirklich Ahnung von Materie. Das ist auch ein Grund warum gute deutsche Bücher meist nur Übersetzungen von einem englischen Buch sind.


Anmelden zum Antworten