C zu C++ - Einfacherer Übergang?



  • Hallo liebes C-Plusplus Forum!

    Ich hätte nur eine kurze Frage, undzwar hatte ich mir vorgenommen mich vorerst in C einzuarbeiten, und dann in ferner Zukunft, falls nötig, auf C++ umzusteigen. Würde mir der Übergang mit C Kentinssen leichter fallen als direkt C++ zu lernen, oder ist mein ganzer Plan im Prinzip Mist?



  • C++ zu lernen, ohne vorher C zu können, dürfte umständlich, verwirrend und nicht zu empfehlen sein, einfach weil C++ keine in sich gut durchdachte, schöne Sprache ist, sondern der eher missglückte Versuch, alle möglichen nicht zueinander passenden Sprachfeatures in C einzubauen. Wenn man schon C beherrscht, kann man C++ so halbwegs verstehen (soweit das überhaupt möglich ist), weil man dann die notwendigen unschönen Kompromisse zumindest noch nachvollziehen kann.

    Am besten lernst du erstmal C, das ist ein guter Anfang, und C ist eine wunderbare, einfache, und dennoch vielseitig verwendbare Sprache. Wenn du dann meinst, dass du C++ brauchst, kannst du dir das dann immer noch anschauen, aber zu viel Zweit würde ich dafür nicht verschwenden.


  • Mod

    Es gilt allgemein als schwieriger von C nach C++ umzulernen, als gleich C++ zu lernen.

    edit: Super, zwei Antworten innerhalb von zwei Minuten mit gänzlich widersprüchlichem Inhalt. Das riecht nach einem Flamewar 🙂 .



  • Ich kann SeppJ nur zustimmen. Als Anfänger ist es meineserachtens besser, gleich mit std::string und std::vector zu arbeiten, als sich mit char-arrays rumzuschlagen.


  • Administrator

    SeppJ schrieb:

    edit: Super, zwei Antworten innerhalb von zwei Minuten mit gänzlich widersprüchlichem Inhalt. Das riecht nach einem Flamewar 🙂 .

    Das von namespace invader ist doch ein Troll Post hoch 10. So einen Unsinn schreibt man nur hin, wenn man einen Flamewar starten will. Ich meine schon nur all die wertenden Aussagen über C++, welche gar nicht zum Thema gehören, zeigen doch schon auf, dass derjenige nur etwas will, nämlich auf C++ rumhacken um andere zu nerven.

    Dem entsprechend sollte man dann auch die Qualität seines Beitrages messen.

    Grüssli



  • Lohnt es sich denn garnicht noch C zu lernen, weil C++ sie komplett ersetzt? Oder gibt es noch bestimmte Anwendungsgebiete in denen es eher lohnt, sich auf C zu kontentrieren? Wenn ja, welche? 😉



  • Cabanossi schrieb:

    Lohnt es sich denn garnicht noch C zu lernen, weil C++ sie komplett ersetzt? Oder gibt es noch bestimmte Anwendungsgebiete in denen es eher lohnt, sich auf C zu kontentrieren? Wenn ja, welche? 😉

    Ich weis, ich weiderehole mich zu dem Thema...

    Lern Programmieren, nicht Programmiersprachen. Sprachen sind nur Werkzeuge die man abhängig von der Aufgabe auswählt und nicht weil sie cool, hipp, toll, klasse, goovie oder was auch immer sind.

    Ein Schreiner fragt ja auch nciht: Soll ich Hammer oder Säge lernen? Sondern: Lern dem Umgang mit Holz und benutzt das passende Werkzeug.



  • Ich weis, ich weiderehole mich zu dem Thema...

    Lern Programmieren, nicht Programmiersprachen. Sprachen sind nur Werkzeuge die man abhängig von der Aufgabe auswählt und nicht weil sie cool, hipp, toll, klasse, goovie oder was auch immer sind.

    Ein Schreiner fragt ja auch nciht: Soll ich Hammer oder Säge lernen? Sondern: Lern dem Umgang mit Holz und benutzt das passende Werkzeug.

    Entschuldige bitte, aber ich halte diese Antwort für hochgradig sinnbefreit. Man muss sich schon auf eine Programmiersprache festsetzen, zumindest zu Beginn. Ich glaube nicht, dass du "Programmieren" lernen kannst und somit alle Sprachen dieser Welt beherrscht. Nein, es geht um Syntax.



  • Dravere schrieb:

    Das von namespace invader ist doch ein Troll Post hoch 10.

    Was, ich ein Troll?

    Wenn man "eigentlich" C++ lernen will, ist es natürlich eine Möglichkeit, C zu überspringen und gleich mit C++ anzufangen, man wird dann wahrscheinlich durch Zusammenkopieren von Codebeispielen usw. schneller zu Ergebnissen kommen. Es wird aber wesentlich schwieriger sein, die Sprache vollständig zu verstehen, weil man Probleme haben wird, die ganzen mehrfach vorhandenen Teile (sowohl "alte" C-Bestandteile als auch dazugekommene C++-Features) auseinanderzuhalten. Man wird dann wahrscheinlich ekelhaften C/C++-Mischcode produzieren.

    (Und wieso "wertende Aussagen"? Es wird doch wohl niemand ernsthaft bestreiten wollen, dass C++ eine objektiv unschöne Sprache ist 🤡 )

    Cabanossi schrieb:

    Lohnt es sich denn garnicht noch C zu lernen, weil C++ sie komplett ersetzt? Oder gibt es noch bestimmte Anwendungsgebiete in denen es eher lohnt, sich auf C zu kontentrieren? Wenn ja, welche? 😉

    C zu lernen lohnt sich auf jeden Fall. Vor allem auch, weil viele Bibliotheken in C sind, und in vielen High-Level-Sprachen C die Grundlage für Bindings zu Bibliotheken oder anderen Sprachen ist. Früher oder später kommt man ohnehin mit C in Kontakt, daher ist es sehr ratsam, es gleich richtig zu lernen (ohne C++-Verunreinigungen)

    C++ kann C niemals ersetzen, und in vielen Bereichen, in denen C++ eingesetzt wird, wäre C eine bessere Wahl, wobei in einigen Bereichen die Verwendung von High-Level-Sprachen noch sinnvoller wäre.



  • Cabanossi schrieb:

    Nein, es geht um Syntax.

    Es geht nie um Syntax. Die hast du bald einmal verinnerlicht (oder auch nicht). Nein, es geht um Semantik. Wenn du Programmieren lernen willst, nimm am besten eine Sprache, die möglichst viele semantischen Konzepte einfach umsetzen kann.

    Übrigens konkurrieren C und C++, wenn überhaupt, nur sehr selten.
    🙂


  • Administrator

    Cabanossi schrieb:

    Lohnt es sich denn garnicht noch C zu lernen, weil C++ sie komplett ersetzt?

    Abgesehen von dem sehr richtigem was loks gesagt hat:
    C++ hat C nicht komplett ersetzt. Beide haben ihre unterschiedlichen Einsatzgebiete. Die Sprachen unterscheiden sich auch in vielen Punkten inzwischen. C++ hat nur eine gesicherte Rückwärtskompatibilität zu C89, während C inzwischen beim C99 Standard ist.

    Cabanossi schrieb:

    Entschuldige bitte, aber ich halte diese Antwort für hochgradig sinnbefreit. Man muss sich schon auf eine Programmiersprache festsetzen, zumindest zu Beginn. Ich glaube nicht, dass du "Programmieren" lernen kannst und somit alle Sprachen dieser Welt beherrscht. Nein, es geht um Syntax.

    Es geht überhaupt nicht um Syntax. Es hat keinen Sinn, wenn du PHP lernst und dabei Treiberprogrammierung lernen möchtest. Du musst die Programmiersprache nehmen, welche für den Bereich Sinn ergibt, wo du einsteigen möchtest.

    Grundsätzlich gibt es drei Programmiersprachen-Typen (würde ich jetzt mal behaupten):
    - Objektorientiert
    - Prozedural
    - Funktional

    Wenn du mal eine Programmiersprache aus einem Typ gelernt hast, dann kommst du auch relativ leicht in Programmiersprachen des gleichen Typs rein. Da C++ eine multiparadigmen Sprache ist, dass heisst prozedural und objektorientiert ist, kommst du leicht in C rein. Während dem du von C aus, welche prozedural ist, nicht so leicht in die Objektorientierung von C++ reinkommst.

    namespace invader schrieb:

    Wenn man "eigentlich" C++ lernen will, ist es natürlich eine Möglichkeit, C zu überspringen und gleich mit C++ anzufangen, man wird dann wahrscheinlich durch Zusammenkopieren von Codebeispielen usw. schneller zu Ergebnissen kommen. Es wird aber wesentlich schwieriger sein, die Sprache vollständig zu verstehen, weil man Probleme haben wird, die ganzen mehrfach vorhandenen Teile (sowohl "alte" C-Bestandteile als auch dazugekommene C++-Features) auseinanderzuhalten. Man wird dann wahrscheinlich ekelhaften C/C++-Mischcode produzieren.

    (Und wieso "wertende Aussagen"? Es wird doch wohl niemand ernsthaft bestreiten wollen, dass C++ eine objektiv unschöne Sprache ist 🤡 )

    Absoluter Unsinn von A bis Z. Wieso C und C++ Dinge auseinander halten, wenn man C++ lernen will? Man lernt ja nicht C und darauf ein "++", dass ist genau die verkehrte Art, wie man C++ lernen soll. Also wirklich, noch selten so einen Unsinn gelesen. Ich finde es daher absolut niederträchtig von dir, wie du hier bewusst auf einen Flamewar hinsteuerst auf die Kosten des Interesse eines Anfängers.

    namespace invader schrieb:

    C++ kann C niemals ersetzen, und in vielen Bereichen, in denen C++ eingesetzt wird, wäre C eine bessere Wahl, wobei in einigen Bereichen die Verwendung von High-Level-Sprachen noch sinnvoller wäre.

    Und man am besten gleich C++ ganz vergessen sollte, schlussfolgere ich das richtig? Und du willst jetzt wirklich gegenüber Cabanossi die Meinung vertreten, dass dies die allgemeingültige und objektive Meinung ist und nicht nur die Meinung eines Trolls oder C Fanboys?

    Sicher, sehr glaubwürdig ...

    Es gibt Menschen auf dieser Welt ... 🙄

    Grüssli



  • Leute, ich wollte mit Sicherheit keinen Streit vom Zaun brechen an dieser Stelle, prinzipiell ging es mir nur darum ob es sich noch lohnt C zu lernen, da mir diese Sprache etwas sympathischer ist als C++. Das würde ich aber ignorieren, wenn ich damit eine (bald) tote Sprache lerne.


  • Administrator

    Cabanossi schrieb:

    Das würde ich aber ignorieren, wenn ich damit eine (bald) tote Sprache lerne.

    C wird definitiv nicht bald tot sein. Nicht mal in weiter Zukunft 😃

    Grüssli



  • Das hört sich soweit super an, jetzt bräuchte ich noch eine IDE Empfehlung für C - kostenlos/-pflichtig ist unwichtig - und dann hoffe ich, dass ich einigen von euch bald verstärkt auf den Keks gehen kann. 😉



  • Dravere schrieb:

    Grundsätzlich gibt es drei Programmiersprachen-Typen (würde ich jetzt mal behaupten):
    - Objektorientiert
    - Prozedural
    - Funktional

    Eigentlich gibt es vier:
    - Objektorientiert
    - Prozedural
    - Funktional
    - Perl

    🤡



  • Cabanossi schrieb:

    Das hört sich soweit super an, jetzt bräuchte ich noch eine IDE Empfehlung für C - kostenlos/-pflichtig ist unwichtig - und dann hoffe ich, dass ich einigen von euch bald verstärkt auf den Keks gehen kann. 😉

    Kannst du eigentlich in irgendeiner Sprache programmieren? Wenn nein: bitte fang weder mit C, noch mit C++ an. Nimm was einfaches. Viele empfehlen Python oder Scheme.
    🙂



  • Cabanossi schrieb:

    Das hört sich soweit super an, jetzt bräuchte ich noch eine IDE Empfehlung für C - kostenlos/-pflichtig ist unwichtig - und dann hoffe ich, dass ich einigen von euch bald verstärkt auf den Keks gehen kann. 😉

    code::blocks scheint ordentlich zu sein. Wobei als Anfänger auch eine Kombination aus gutem Editor und Compiler + Kommandozeile nicht schlecht ist, da man so auch gleich den/die Compiler kennenlernt. Als Compiler empfehle ich so oder so den gcc. Visual Studio/C++ ist für C nicht wirklich prickelnd weil der C-Compiler nicht den aktuellen C-Standard (C99) versteht.



  • Cabanossi schrieb:

    Entschuldige bitte, aber ich halte diese Antwort für hochgradig sinnbefreit. Man muss sich schon auf eine Programmiersprache festsetzen, zumindest zu Beginn. Ich glaube nicht, dass du "Programmieren" lernen kannst und somit alle Sprachen dieser Welt beherrscht. Nein, es geht um Syntax.

    Dann nimm mal _nur_ das Thema Design Patterns. Da geht es überhaupt nicht um Programmiersprachen sondern um Konzepte, da diese Patterns in jeder Sprache implementiert werden können (mehr oder weniger aufwendig). Ohne Konzepte ist die Syntax nutzlos.



  • Und ohne Syntax sind Konzepte nicht umsetzbar. Sehr sinnfreie Teildiskussion.



  • Tim schrieb:

    Und ohne Syntax sind Konzepte nicht umsetzbar. Sehr sinnfreie Teildiskussion.

    Nein. 👎


Anmelden zum Antworten