Wann C und wann C++ nehmen?



  • 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.)



  • richtigerBullshit schrieb:

    @Kellerautomat:
    Wenn C++ so toll wäre, dann würden auch fast alle damit arbeiten.

    Da erzählst du das, was dein Name sagt. In Großprojekten gilt noch viel mehr als anderswo: Hype siegt. Java wird nicht verwendet, weil es Produktiver ist, als C++ sondern weil so viele in den CHefetagen gehört haben, dass es produktiver ist.

    Ich würde meine jetzigen Anwendungen mit keiner der von mir genannten Sprachen implementieren wollen. Nicht weil ich die Spachen schlecht finde, im Gegenteil, python ist geil. Ich kriege nur nicht die benötigte Performance. bei weitem nicht. Und leider ist Performance meine primäre Erfolsmetrik...



  • richtigerBullshit schrieb:

    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.

    Ich weiß gar nicht, was ihr immer alle habt.
    C++ ist imo nicht besonders schwer. Wenn man die modernen C++ Idiome nutzt, ist das unkompliziertes Programmieren.
    Und std::string kann UTF-8 speichern und wenn man mehr braucht gibt es externe Bibliotheken.
    Stroustrup schrieb übrigens auch, dass es viel schwieriger ist, mit C++ Mist zu bauen als mit C.



  • ceeorcpp schrieb:

    Ich versuche gerade beide Sprachen zu lernen

    Wenn Du "gutes" C++ schreiben können willst, musst Du dir darüber im Klaren sein, dass C und C++ zwei verschiedene Sprachen sind. C++ lernst Du gut mit einem modernen C++ Buch. Die Gefahr beim erst-C-dann-C++ lernen ist, dass du dir in C Dinge angewöhnst und nach C++ rüberschleppst, für die es bessere Alternativen in C++ gibt. In 'nem guten C++ Buch wird man normalerweise nicht gleich am Anfang mit Dingen belästigt, die in C unabdingbar wären, um überhaupt irgendwas komplizierteres als ein Hello World-Programm erzeugen zu können. Das, was die C++ Standardbibliothek da bietet ist extremst praktisch und macht einen schon zu Anfang recht produktiv beim Lösen diverser Probleme. Die C Standardbibliothek ist da leider recht dünn. Aber das ist nicht allein die Schuld der C Stadardbibliothek sondern liegt auch an der Sprache selbst. Dass du in C bei benutzerdefinierten Typen nicht als Autor solcher Typen festlegen kannst, was automatisch passieren soll, wenn solche Objekte kopiert, zerstört und einander zugewiesen werden, ist sehr schade. Dass Du in C keine Typ- und Funktionsfamilien definieren kannst, ist auch sehr schade. Makros helfen da ein bisschen, aber sie machen auch Probleme, weil da 0 Intelligenz drin steckt und es nur eine einfache Textersetzung ist. Ich sehe das so wie der Herr Stroustrup:

    I never saw a project for which C was better than C++ for any reason but the lack of a good C++ compiler.

    ceeorcpp schrieb:

    und frage ich, wann ihr lieber C und wann ihr lieber C++ einsetzt?

    C wenn ich muss.
    C++ wenn ich darf.



  • flexible array member



  • Kellerautomat schrieb:

    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.

    Vielleicht weil einige uC nur C verstehen? Es ist nicht immer alles Windows und Desktop und so



  • gogogo schrieb:

    In C hat man wirkliche Kontrolle über sein Programm und die Compiler können auch besser optimieren.

    Das kann man so nicht stehen lassen. Eines der Designprinzipien von C++ ist "don't pay for things you don't use". Ich sehe dieses Prinzip bei C++ nicht verletzt. Im Gegenteil! Beispiel: qsort versus std::sort.

    gogogo schrieb:

    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.

    Spoken like a true ignorant. Wann hast du das letzte mal über deinen Tellerrand geguckt?

    gogogo schrieb:

    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?

    Gutes C++ ist nur dann schwer, wenn man einen Prof vor sich hat, der keine Ahnung von C++ hat, wenn man sich ein schlechtes C++ Buch besorgt hat, u.s.w. Keiner wird abstreiten, dass C++ nicht überdurchschnittlich kompliziert ist, wenn man es in all seinen Details verstehen will, so dass man erfolgreich irgendwelche krassen Template-Bibliotheken basteln kann. Aber schau dir doch mal das Buch "Accelerated C++" an. Echt schöner Code. Sehr idiomatisch. Leicht zu verstehen. Wer damit Probleme hat, sollte vom Programmieren vielleicht ganz die Finger lassen. Ich seh' das Problem hauptsächlich in der Lehre. Shit in, shit out.

    gogogo schrieb:

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

    yet another Teller-beschränkte Pauschalaussage.



  • 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.

    Da fällt mir nur eines ein: Don't feed the Trolls. 😃

    Das hat so ein Niveau wie: "Wer C++ programmiert, frisst auch kleine Kinder".

    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.

    Zum einrahmen lustig... 😃

    Das ist die Vererbungslehre in der Informatik. Hast du einmal eine berühmte Sprache gesehen, die als effizient gilt, wird sie dir ein Leben lang folgen. Es spielt dabei keine Rolle, das sie vor X Jahren entwickelt wurde, und deswegen nicht für dynamische Datenstrukturen vorgesehen war und aus heutiger Sicht Designfehler enthält. Nein, sie gilt als effizient, und mehr gilt nicht. 😉

    Ich habe so das Gefühl als das manche Menschen Angst vor mächtigen Programmiersprachen haben. Aber wenn man einen gewissen Coding Style einhält, nicht mit Kanonen auf Spatzen schiesst, ist vieles halb so wild.

    Auch unter Java kann man sich einen recht ineffizienten Programmmierstil angewöhnen. So ein Garbage Collecter bekommt viel zu tun, wenn man ständig Objekte anlegt,...



  • C wird in der Regel viel in traditioneller Hardwarenähe (Mikrocontroller, Betriebssysteme, Treiber) benutzt. Für neuere Entwicklungen wie Directx ist C++ gängiger.
    Lerntechnisch empfiehlt es sich, mit C anzufangen, man braucht zwar ein paar Jahre Übung (trotz der Kleinheit der Sprache), aber die sind bei C++ nicht gleich verloren. Als Kompromiss übt man C nicht mehr soviel oder so lange (vielleicht nur ein halbes Jahr), sondern mehr und länger C++ und freut sich auch gleich über die angenehmen Seiten von C++, was die AHA-Effekte beflügeln und das Lernen beschleunigen müsste.



  • Reihenfolgeabvsba schrieb:

    Lerntechnisch empfiehlt es sich, mit C anzufangen

    Hmm... Davon bin ich nicht überzeugt.
    Siehe new_learning.pdf
    Siehe C++11 Style - A Touch of Class (Video)


Anmelden zum Antworten