Was kann C besser als C++? Und warum?



  • Vorweg, meine erste Programmiersprache ist/war C++!

    Aber ich lese sehr oft auf diversen Web-Pages, dass doch das gute alte reine C irgendwie 'schneller' (wtf? was ist das?) ist. Auch die wirklich guten Game-Engines haben oft den 'scheinbaren' Nachteil, vom Anwender zu verlangen, in C- und nicht in C++ Syntax programmieren zu müssen. Als Folge davon wurde für mich seltsamer Weise C selbst interessanter als C++! Aus welchen Gründen auch immer scheinen die wirkliche Kickass Engines bzw. Programme (OS hab ich auch gehört!) immerzu nur in C, und nicht in C++ codiert zu sein!
    Weil ich nun wirklich kein Informatikfachmann bin, hätte ich einige Fragen:
    - Sollte man sich trotz des momentanen C++-Hypes doch lieber auf das reine 'C' konzentrieren, wenn man tolle Software schreiben möchte?
    - Was heißt das: 'C' ist 'schneller' als C++? Was genau bedeutet das?
    - Schließlich: Wird das gute alte 'C' auch in zehn Jahren noch die 'wirklich gute' Software hervorbringen? Was meint ihr? (Was ich btw. nicht hoffe! 'C' ist einfach nur ein Phänomen imo!)



  • CFan3 schrieb:

    - Sollte man sich trotz des momentanen C++-Hypes doch lieber auf das reine 'C' konzentrieren, wenn man tolle Software schreiben möchte?

    Es gibt keinen C++ Hype. Und wenn du nach "toller Software" fragst, was soll das sein? Desktopamwendungen werden eigentlich nur noch im *nix-Bereich mit C geschrieben und selbst da dürfte C++ eine größere Rolle spielen. C stirbt in diesem Bereich eigentlich aus. Wichtig ist C im Bereich Firmware, hauptsächlich deswegen weil die Nachteile von C (gegenüber C++) da weniger eine Rolle spielen, und weil es für praktisch jeden Controller brauchbare C-Compiler gibt.

    CFan3 schrieb:

    - Was heißt das: 'C' ist 'schneller' als C++? Was genau bedeutet das?

    C ist nicht schneller als C++. Wenn dann ist vielleicht ein spezieller C-Compiler schneller als ein spezieller C++-Compiler, aber auch das geht im Rauschen unter.

    CFan3 schrieb:

    - Schließlich: Wird das gute alte 'C' auch in zehn Jahren noch die 'wirklich gute' Software hervorbringen? Was meint ihr? (Was ich btw. nicht hoffe! 'C' ist einfach nur ein Phänomen imo!)

    s.o.



  • hi,
    du weisst ja: programmiersprachen sind wie werkzeuge. wenn man verschiedene programmiersprachen kann, ist das wie ein werkzeugkasten. C ist z.b. der schraubenzieher, java der lötkolben, PHP ein hammer, fortran 'ne feile usw. ja nachdem, was man tun will, kramt man das passende werkzeug hervor. jedes dieser werkzeuge hat seine speziellen eigenschaftem und vorteile gegenüber anderen und lässt sich mit etwas übung sinnvoll einsetzen.
    c++ dagegen ist wie ein schweizer offiziersmesser. man findet toll, dass es so viele möglichkeiten bietet, aber im harten alltagsbetrieb greift man besser zum richtigen schraubenzieher, statt den vom taschenmesser auszuklappen...
    🙂



  • Ich habe beide Varianten kennengelernt. Für mich hat die OOP von C++ keine Vorteile. Da ich von Basic umgestiegen bin, fand ich das prozedurale Konzept von C leichter verständlich als die OOP von C++.
    Ich würde mal sagen, C++ hat den Vorteil, daß man auf Kontainer-Klassen zurückgreifen oder sie selbst anlegen kann. Das ist erstmal ein Haufen Vorbereitung, aber bei Viel-Programmierern oder Großprojekten kann das später einige Arbeit ersparen (jedenfalls finde ich das so im Bereich WinAPI und MFC). Für Otto-Normal-Progger macht es eigentlich keinen Sinn. Da reicht schon Copy-Paste-Programmierung.



  • CFan3 schrieb:

    Aber ich lese sehr oft auf diversen Web-Pages, dass doch das gute alte reine C irgendwie 'schneller' (wtf? was ist das?) ist.

    Das kommt offensichtlich daher, dass Leute noch mit einem Stand von vor 10 Jahren argumentieren. Damals waren C++ Compiler tatsächlich nicht sonderlich effizient. Heutzutage merkt man keinen Unterschied mehr.

    Elektronix schrieb:

    Für Otto-Normal-Progger macht es eigentlich keinen Sinn. Da reicht schon Copy-Paste-Programmierung.

    C&P ist aber kein Paradigma, und erst recht kein guter Stil. Wenn du vorhast ernsthaft zu programmieren, und das kann natürlich auch als Hobbyist sein, dann wirst du früher oder später darauf achten, Redundanzen zu vermeiden. Und da bietet C++ einfach mehr, zB auch Templates. C als Sprache hat keinerlei Vorteile gegenüber C++. Wenn du willst, kannst du mit C++ ja auch prozedural programmieren. Der einzige Vorteil von C besteht in der Verfügbarkeit von Entwicklungstools, wie TactX schon anmerkte.



  • groovemaster schrieb:

    Wenn du vorhast ernsthaft zu programmieren, und das kann natürlich auch als Hobbyist sein, dann wirst du früher oder später darauf achten, Redundanzen zu vermeiden. Und da bietet C++ einfach mehr...

    c++ ist, meiner meinung nach, absolut nicht für anfänger geeignet. nichts desto trotz sollte man es sich schon ansehen, wenn man in einer anderen programmiersprache einigermassen sattelfest ist.
    wer mit c++ anfängt, riskiert dann sowas wie er hier:

    fanpost an bjarne schrieb:

    HI! My name is Andras and I am currently taking C++. I dont know if it is the incompetence of my teachers and peers OR that C++ sucks ass that I cannot get anything to work. I am quite glad that you nevermade too much money off of it (how i could tell? look on your website and your new balance shoes tell all, speaking of which you should never put your shoes on your desk). Also, your website sucks a lot, just like C++. Also, what use is there of C++? Yippie, I can concatenate strings and make arrays, that by the way I could do a whole lot easier in any other language. The thing that pisses me off the most is that the not all libraries come included in the compilers. So, if i want to use apstring or some other crap, I need to find the libraries and pray to God they work and dont screw over the other libraries. (Oddly enough JavaScript, a not hard language, fixes this by the singular data type: var. thats right! no more int, double, string, vector, or anything else). After studying C++ for almost a year (at an AP level, what ever that crap is worth), I can do nothing fancy: graphics or anything "cool." Well, nice talking to you, too bad you couldnt invent something more lame.

    😃



  • Dein C++-Geflame wird langsam echt nervig. Die wesentlichen Fragen wurden schon geklärt. Ene mene mu, der Thread ist zu.


Log in to reply