Lohnt es sich heutzutage noch die Programmiersprache C zu lernen, oder sollte man direkt C++ lernen?
Denn ich kenne viele Leute, die behaupten, man sollte gleich C++ lernen.
Was spricht für, was gegen die beiden Sprachen.
Und welche der Sprache würdet ihr eher lernen?
8 Stimmen
6 Antworten
Ich stimme bewusst nicht ab und ich werde dir auch keine Antwort auf deine Frage geben. Nur ein paar Hinweise:
Du solltest dich von dem Gedanken verabschieden, dass C etwas mit C++ zu tun hat. Die sind historisch zwar irgendwie miteinander verbunden, aber inzwischen gibt es so dermaßen viele und gewaltige Unterschiede, dass man C und C++ als völlig voneinander unabhängige und inkompatible Sprachen ansehen sollte. Der Erfinder von C++ - Bjarne Stroustrupp - sieht das neben vielen anderen aus dem C++ Standardisierungs-Komitee - wie Herb Sutter - übrigens auch so.
C++ beherrscht einen großen Teil der C Syntax, umgekehrt kann man das nicht unbedingt behaupten. Aber vor allem die Konzepte und Herangehensweisen bei der Programmierung an sich sind VÖLLIG unterschiedlich!
Allein schon das kleinstmögliche Programm (abgesehen von einigen Leerzeichen) sieht in C so aus:
int main(void) { return 0; }
... in C++ hingegen so:
int main() {}
Du kannst in C nicht wie in C++ programmieren, und umgekehrt gilt das gleiche. Nichtsdestotrotz tun das viele Einsteiger, und es ist das beste Merkmal, um Anfängercode erkennen zu können.
Beruflich und privat entwickle in in beiden Sprachen sehr gerne, vermische diese aber nie und habe für beide Sprachen einen gänzlich anderen Stil, bzw. eine inkompatible Herangehensweise.
Wenn ich etwas Schlankes ohne Abhängigkeiten mit maximaler Portabilität schreiben will, dann nehme ich C89. Auch wenn die neueren Standards wie C99 und vor allem C11 wunderbare Features bieten, ist es aus verschiedenen Gründen oft sinnvoll, selbst Hand anzulegen. Aber natürlich auch nicht immer. Mit genügend Erfahrung weiß man einfach, wann man was am besten einsetzen sollte.
Falls ich hingegen etwas größeres schreibe, bei dem moderene Konzepte umgesetzt werden sollen, und was maximal effizient mit den Ressourcen umgehen soll, dann nehme ich C++17. Funktionalitäten von C++11 und C++14 sind zwar ebenfalls enorm wichtig und richtig, aber bei C++ möchte ich ohne einige C++17 Features gar nicht mehr entwickeln.
Wie du siehst, setze ich bei C auf den ältesten Standard, bei C++ hingegen auf den neuesten. Das hat sich bei mir im Laufe der Jahre als optimale Herangehensweise herauskristallisiert. Aber auch hierbei gilt natürlich wieder: Man muss im Einzelfall abwägen, ob nicht vielleicht doch C++11 oder C99 geeigneter ist. Hängt natürlich auch immer vom Projekt ab.
Auf jeden Fall solltest du C und C++ als völlig unabhängige Programmiersprachen auffassen, die rein gar nichts miteinander zu tun haben. Es wird kaum eine Aufgabe geben, die länger als 2 Zeilen ist, und in C und C++ identisch gelöst werden wird. Wie gesagt, Anfänger machen das zwar trotzdem oft, weil sie es nicht besser wissen, aber als erfahrener Entwickler sollte man genügend Wissen mitbringen, um die Unterschiede kennen und nutzen zu können.
C ist vom Umfang her wesentlich überschaubarer als C++, und C++ dürfte eine der Feature-reichsten Sprachen sein, die du finden kannst. Hinzu kommt, dass die Standardbibliothek von C++ um ein Vielfaches größer ist, als die recht Schlanke von C.
Das heißt, für Einsteiger ist vermutlich C am Anfang leichter, da du hierbei mit sprachübergreifenden Grundkonzepten wie Bedingungen, Schleifen, und solchem Kram in Berührung kommst.
Falls du danach aber C++ lernst, musst du teilweise völlig umdenken, vor allem bei Themen wie der Fehlerbehandlung, dem Programmfluss, uvm.
Aber die Reihenfolge, bleibt letztendlich dir allein überlassen. :)
Wenn du keine andere Programmiersprache beherrscht, dann lieber zuerst C. Dann klappt der Sprung von C auf C++ auch einfacher. Es ist schließlich C mit einigen weiteren Funktionen und objektorientiert.
Wenn man bereits eine (objektorientierte) Programmiersprache kann, dann kann man auch direkt mit C++ anfangen.
Wenn man professionell Software entwickeln möchte, dann sollte man sich zumindest mal etwas mit diesen Programmiersprachen (zumindest C) beschäftigt haben. Man nutzt diese beiden meistens wenn man Hardwarenah programmieren möchte und performance eine wichtige Rolle spielt.
Ob sich die Sprache für dich eignet weiß ich nicht. Was hast du denn vor zu programmieren?
Ich würde dir zu C++ raten, ich habe ab ca. 1980 als ERP-Programmierer mit C gearbeitet, habe mir dann auch vor ca. 10 Jahren u.a. C++ beigebracht und arbeite zur Zeit meistens mit C++. Natürlich fällt es leichter von C auf C++ umzusteigen, wenn du aber vielleicht schon mit Java programmiert hast, dürfte C++ nicht sehr fremd sein.
Natürlich reicht C aus, vor 40 Jahren hat auch mal Cobol ausgereicht (das war mal meine Meinung als ich C lernen musst) um von A nach B zu kommen reicht auch ein Ochsenkarren aus.
dash du noch am anfang bist gebe ich dir ein paar tips
ich weiß das klingt jetzt doof aber was willst du machen?
muss es eine programmier sprache sein oder draf es auch eine script sprache sein?
willst du schnell lernen?
c++ ist die objektorentierte und "neuere" version von c++ das heißt das c++ auch c kann einege befehle gibt es nur zusätzlich in "moderner"/ander form
c++ ist die erier legende woll milch sau und wer etwas anderes behauptet will es nicht einsehen oder hat keine ahnung allerdings ist c schon über 40 jahre alt und deswegen ist der syntax schon seher alt bedeutet das du viel mit sonderzeichen und schwierig zu merkenden begriffen arbeiten musst
alternativen zu c++
python objekt orentierte script sprache einfacher sintax und wird oft verwendet
java objektorntierte programier sprache und gegenspieler zu c++
c# objektorentierte programier sprache von microsoft
es gibt natürlich auch noch viele andere
ich empfehle python und hier ist ein toller yt kanal wo du alle erwähnten lernen kannst mfg simon
wtf Wäre echt geil, wenn ihr mich Mal verwenden könntet. Eure Grammatik
Ich leide mit dir! Solche Antworten sind einfach "unlesbar".
Ich stimme mal nicht ab. Beide Sprachen haben ihre Berechtigung und werden für unterschiedliche Dinge genutzt.
C wird z.B. für den Linux-Kernel verwendet. Wenn du den programmieren willst, dann bist auf C angewiesen. Ebenso für Microkontrollerprogrammierung und so hardwarenahe Dinge - die laufen auch meist mit C ohne ++;
C ohne ++ hat halt weniger Overhead und ist schlanker/schneller aber unterstützt keine Objektorientierung und ist für größere, ereignisbasierende Anwendungen eher ungeeignet (man braucht da echt viel Disziplin, um keinen totalen Spagetthicode zu erzeugen). Für sowas würde man wohl eher zu C++ greifen.
Also was willst du tun? Kleine Mikrocontroller programmieren oder am Linux-Kernel arbeiten -> C. Ansonsten ist wohl C++ sinnvoll.
Aber es schadet auch nichts, wenn man die Konzepte von C ohne ++ erstmal verinnerlicht und dann die objektorientierten Erweiterungen sich anschaut... ;)
Ist ja nicht der einzige Microkontroller - und manchmal muss/will man halt an Systemen arbeiten, die halt rein mit C programmiert werden. Also kann man die Frage, ob man C heute noch braucht schon mit "ja" beantworten. Das heißt ja nicht dass jeder es braucht... ;)
Es gibt viele C Programmierer, die meinen, diese Sprache reiche völlig aus.