Wann C und wann C++ nehmen?



  • 8bit-dude schrieb:

    Als C++'ler nutze ich dann C, wenn C++ auf der Plattform nicht verfügbar ist.

    Da es auch C++ zu C-Compiler gibt (z.B. Clang) ist das kein Grund mehr, C zu verwenden.



  • 8bit-dude schrieb:

    Als C++'ler nutze ich dann C, wenn C++ auf der Plattform nicht verfügbar ist. Denn da ich in C++ in mehreren Paradigmen programmieren kann und insbesondere auch prozedural wie in C, gibt es für mich sonst keinen Grund, auf C auszuweichen.

    Hier muss alles was über ein "Hello World" hinausgeht mit Klassen programmiert werden. Prozedurales C++ wird hier überhaupt nicht gerne gesehen. Multi-Paradigma als unerwünscht, siehe auch diesen Thread hier: http://www.c-plusplus.net/forum/322048


  • Mod

    Also wenn man wirklich beides kann, dann hat man als C++-Kenner keinen Grund, jemals ernsthaft C zu nutzen, außer es ist wirklich kein C++ auf der Plattform verfügbar. Was ein extrem exotischer Sonderfall ist. Oder wenn der vorhandene Code schon in C ist und das so bleiben soll. Letzteres dürfte wohl der häufigste Grund sein.

    Problem ist wohl auch, dass viele Leute, die meinen, C++ zu können, es nicht können. Es ist einerseits eine extrem komplexe Sprache, die man sehr gut beherrschen muss, um ihre Vorteile zu genießen, andererseits gibt es massenhaft schlechtes Lehrmaterial, welches C++ als C mit Klassen darstellt. Was dann ziemlich schlechtes C++ ist, welches bloß schwer ist, ohne die Vorteile. Und das pflanzt sich dann fort, wenn diese Leute glauben, anderen Leuten C++ beibringen zu können.



  • Wie viele Kernel und Treiber kennt man denn die in C geschrieben wurden?
    Sehr bekannte Leute, unter anderem Linus Torvalds, halten anscheinend nicht so viel von C++. Ich denke schon das C (noch) seinen Zweck erfüllt.
    Wobei mir auch klar ist das man alten Code nicht einfach so umschreiben kann und man deshalb noch C-Projekte hat und nicht weil die in C besser wären, sondern weil das umschreiben zu viel Arbeit macht.

    Ich finde es gut wenn mit der Kompatibilität mal gebrochen wird wenn man dadurch die Chance hat was besser zu machen. In D scheint man es ja zu probieren.

    Aber ob und wann man von C loskommen wird oder will ist fraglich.



  • Thomsons schrieb:

    Wobei mir auch klar ist das man alten Code nicht einfach so umschreiben kann und man deshalb noch C-Projekte hat und nicht weil die in C besser wären, sondern weil das umschreiben zu viel Arbeit macht.

    Ich kenn zwar ABI nur als Schlagwort, aber das klappt bei C++ nicht so...

    Gibt noch paar andere Sachen, aber eig. ist es egal. Viele Projekte sind schon umgestiegen, besser ist dadurch keines geworden!



  • Weg mit C, C++ kann alles, was auch C kann, nur besser.



  • Kellerautomat schrieb:

    Weg mit C, C++ kann alles, was auch C kann, nur besser.

    Ohne einen Glaubenskrieg loszutreten, deine Aussage ist FALSCH! Ich werde es jetzt auch nicht vertiefen. Vllt. werde ich überrascht und es bringt doch mal einer DAS Argument 😉



  • Daran ist nix falsch, das ist Fakt. Nenne mir eine einzige Sache, die C kann, aber C++ nicht.
    Die C Standardlib ist totaler Rotz, hat nicht mal Container. RAII gibts keines, muss ich alles selbst machen. Wieso gibts ueberhaupt Leute, die mit sowas freiwillig programmieren? Muessen wohl ziemlich massochistisch veranlagt sein.



  • Kellerautomat schrieb:

    Nenne mir eine einzige Sache, die C kann, aber C++ nicht.

    Denk doch mal nach wenn du schon RAII, die STL und Exceptions verwendest... 🙄



  • Wenn du mir nicht mit sachlichen Argumenten kommst, sondern der Diskussion ausweichst mit irgendsoeinem blabla, bleibt mir nichts anderes uebrig, als anzunehmen, dass du nur ein Troll bist.



  • Kellerautomat schrieb:

    Wenn du mir nicht mit sachlichen Argumenten kommst, sondern der Diskussion ausweichst mit irgendsoeinem blabla, bleibt mir nichts anderes uebrig, als anzunehmen, dass du nur ein Troll bist.

    Ist mir gleich. Melde dich, wenn du die Funktion gefunden hast! 😉



  • Die Beweispflicht liegt nicht bei mir sondern bei dir. DU hast mir widersprochen, aber nicht begruendet.

    Und keine Ahnung, von was fuer einer komischen Funktion du redest, lebst wohl in deiner eigenen Welt.



  • junta schrieb:

    Kellerautomat schrieb:

    Wenn du mir nicht mit sachlichen Argumenten kommst, sondern der Diskussion ausweichst mit irgendsoeinem blabla, bleibt mir nichts anderes uebrig, als anzunehmen, dass du nur ein Troll bist.

    Ist mir gleich. Melde dich, wenn du die Funktion gefunden hast! 😉

    Wenn du auf VLAs hinauswillst, lach ich dich aus.



  • Nathan schrieb:

    Wenn du auf VLAs hinauswillst, lach ich dich aus.

    Wir wissen, dass du keine VLAs magst. Aber VLAs sind toll.



  • otze schrieb:

    Nathan schrieb:

    Wenn du auf VLAs hinauswillst, lach ich dich aus.

    Wir wissen, dass du keine VLAs magst.

    ?
    Kann es sein, dass du mich mit Kellerautomat verwechselst? 😉



  • VLAs sind nett, aber total broken in C. Runtime evaluated typedef/sizeof... baeh.



  • In C hat man wirkliche Kontrolle über sein Programm und die Compiler können auch besser optimieren. C++ sollte man heute wirklich nicht mehr verwenden, wenn man OOP den unbedingt braucht, dann sollte man eine andere Hochsprache als C++ nehmen und die wirklich schnelle Funktionalitäten, so man sie denn braucht, in C auslagern.

    Gutes C++ zu schreiben ist doch ein riesiger Krampf, den kaum jemand zudem kann. Wie viele von den ganzen Nachwuchsentwickler werde sich Jahren lang C++ widmen, bis sie es vielleicht irgendwann man können?

    C++ für neue Projekte zu verwenden, ist vieles, außer ökologisch.



  • C++ ist die einzige verbreitete Sprache, die Resourcen ordentlich verwalten kann. Alleine das ist schon fuer mich Grund genug, von allem anderen Abstand zu halten.



  • Kellerautomat schrieb:

    C++ ist die einzige verbreitete Sprache, die Resourcen ordentlich verwalten kann. Alleine das ist schon fuer mich Grund genug, von allem anderen Abstand zu halten.

    lol
    Perl, CPython, PHP können das super, aber auch das using/with/try in C#/Python/Java ist ganz brauchbar. Und Ressourcen abgesehen von Speicher brauchen ohnehin gesonderte Aufmerksamkeit, schlimm ist ein using mehr dort wirklich nicht.



  • Kellerautomat schrieb:

    C++ ist die einzige verbreitete Sprache, die Resourcen ordentlich verwalten kann. Alleine das ist schon fuer mich Grund genug, von allem anderen Abstand zu halten.

    Heute ist 2013, schau doch mal in den Stellenanzeigen wie viele Entwickler für C++ und wie viele für anderen Sprachen gebraucht werden, dann hast du einen Überblick, wie wichtig C++ für die Entwickler-Branche ist. Oder schau dir mal aktuelle Fachzeitschriften an, wie viele Tipps und Projekte da für C++ besprochen werden.

    Ich schieße mal ins Blaue und behaupte, dass 95% der Apps, die entwickelt werden, nicht in C++ geschrieben sind. Das hat seinen Grund. C++ ist nun einmal absoluter Mist, da hat es Objective-C besser geschafft dem C Klassen zu verpassen. Nur setzt sich nicht immer das bessere durch(siehe PHP). C++ ist das PHP für native Apps, nur leider nicht mehr so weit verbreitet wie PHP. Gegen Java, C#, PHP, Python, etc har C++ keine Chance, ja selbst C ist durch die ganz geilen Mikrocontroller-Apps wieder richtig im Kommen.

    Schau dir doch mal C++-Code mit STL, Iteratoren, Templates, Konstuktoren etc. an. Nichtmal mit Text kann C++ richtig umgehen(kein UTF-8). Da hat doch keiner Lust sich durch zu wuseln. Stroustrup schreibt selbst, dass man in C++ richtig fiesen Mist bauen kann, mehr noch als in C.

    C++ wird nur eingesetzt, wenn es unbedingt notwendig ist, keiner macht C++ freiwillig zur ersten Sprache seiner Wahl, für ein Projekt.

    @Kellerautomat:
    Wenn C++ so toll wäre, dann würden auch fast alle damit arbeiten. Ganz einfache Rechnung und rechnen kannst du doch, oder? Du bist zwar fern der Realität, aber wahrscheinlich liegt das daran, dass du schon ein alter Mann mit festgefahrenem Denkapparat geworden bist(Falls du überhaupt noch denken kannst und nicht nur festgefahrene Mechanismen abrufst.)


Anmelden zum Antworten