Ist C++ am Aussterben?



  • Die Videos von der diesjährigen CppCon stimmen mich aber sehr glücklich: Bjarne Stroustrup pusht (neben Concepts) auch etwas die Motivation hinter einem Package-System für C++. Wenn dann auch noch Module und Reflection/Injection/advanced constexpr kommen, verschwindet sogar der Bedarf an hässlichem Metacode und TMP + man könnte das Compilerverhalten steuern (wann z.B. welche Konstruktoren default-erzeugt werden etc), siehe den Talk von Herb Sutter.



  • Jodocus schrieb:

    Reflection

    Doofe Frage aber: Wozu braucht man Reflections? C++ ist die einzige Hochsprache, die ich kenne, und ich bin aus dem Wiki-Artikel nicht schlau geworden. Ferner glaube ich ziemlich genau zu wissen, welche Features ich in C++ vermisse (z.B. Multimethods) und Reflections waren afaict nie dabei.



  • Auch wenn Touristen heir nicht gern gesehen sind wollte ich mal fragen welche Sprachen ihr bzgl zukunftaorientierung exkl java c# für marktdominierend haltet



  • @Fytch

    Wozu braucht man Reflections?

    bei C++ soll Compile-Time Reflection kommen - z.B. für Compile-Time-Codegenerierung damit du keinen Boilerplate Code schreiben musst - der aber im gegensatz zu C# nicht zur Laufzeit und Überfett, oder siehe am besten C++ Metaklasses (https://www.youtube.com/watch?v=4AfRAVcThyA)

    Falls du mit Kompiltime/Templates/Codegenerierung/Boilerplate usw. nichts anfangen kannst warte noch ein paar größere Projekte/Jahre dann wird dir das automatisch klar - wenn du z.B. als Architekt oder Library/Framework-Entwickler arbeitest (nicht so ein 10Zeiler - er 1Mio+) sind das dann relevante Techniken die man gerne verwenden moechte

    @project2501

    welche Sprachen ihr bzgl zukunftaorientierung exkl java c# für marktdominierend haltet

    im Mainstream ganz klar C++ und in 5-8 Jahren Rust - C/C++ macht wohl den größten Codeanteil auf der Welt aus und Rust wird eine Migration auf gleichem Niveau (Resoucenbedarf,Platformen,usw.) erlauben - unter den Scripter werden Python und Javascript dominieren

    ja C++ kann unschön aussehen - aber es kommt kaum etwas in den Bereichen klein/schlank UND ausdrucksstark an die Sprache rann, alle anderen Sprachen sind immer nur in einem der Bereiche sehr gut können aber z.B. Resourcen-Verbrauchs-Defizite mit nichts kompensieren

    .Net/C# ist die Hölle des Unser-Design-Ist-Scheisse-aber-wir-können-ja-alles-nachträglich-mit-Runtime-Codegenerierung-fixen - ich schaue hier nicht auf euch "GERNERICS"... und NEIN ein JIT-Kompiler kann auch nicht aus hunderten von gesammelten ifs und else wieder tollen/schnellen Code zaubern... das wird und kann sich niemals auf niederen Platformen durchsetzen - selbst Microsoft hat das erkannt



  • Was vor allem stark an Aufwind verloren hat ist das Paradigma der objektorientierten Programmierung. Die neuen Programmiersprachen setzen verstärkt auf ein funktionales Paradigma oder übernehmen nur Teile der Objektorientierung.



  • Gast01 schrieb:

    Was vor allem stark an Aufwind verloren hat ist das Paradigma der objektorientierten Programmierung. Die neuen Programmiersprachen setzen verstärkt auf ein funktionales Paradigma oder übernehmen nur Teile der Objektorientierung.

    Welche neuen Sprachen unterstützen denn bitte kein OO?
    Und "OO verpflichtend für alles" ist denke ich schon seit einigen Jahrzehnten vorbei.

    Dass OO "an Aufwind verloren" hat (was ich nicht bestreite), liegt mMn. eher daran dass bei etwas, was ein nicht wegzudenkender de-Facto Standard ist, halt naturgemäss nicht viel Spielraum nach oben ist.

    ----

    Bzw. was sollen "Teile der Objektorientierung" sein? Also speziell auf neue Sprachen und was diese übernehmen/unterstützen bezogen.



  • vor allem ist das überhaupt nichts Neues, dass Sprachen "nur Teile der Objektorientierung" übernehmen.

    Reine Objektorientierung ("alles ist ein Objekt" usw.) gibt es beispielsweise mit Smalltalk und Self, aber die Liste von rein objektorientierten Sprachen ist nicht so furchtbar lang und C++, Java, Python ... (und wie sie alle heißen) stehen gewiss nicht drauf.

    OOP ist halt kein Hype mehr, sondern ein unverzichtbares Werkzeug neben vielen anderen im Werkzeugkasten des Entwicklers. Ist doch gut so.



  • von Aussterben kann absolut nicht die Rede sein:

    Microsoft selbst inverstiert seit den ihnen klar ist das die .Net-Umgebung zu Resourcenlastig (und auch By-Design in diesem Bereich nicht verbesserbar ist) für die ganze ARM und Lowend-Welt wieder massiv in C++

    auch arbeiten angekurbelt durch LLVM/clang/etc. sehr viele große Firmen im Breiche C++ Parser/Backend stärker zusammen denn je (Microsoft, Google, Apple, Sony usw.)
    auf einem ganz anderem Niveau als früher

    wenn man in der Branche arbeitet muss einem gehörig aufgefallen sein wieviel "Dampf" in den letzten 5 Jahren in den C++ Kessel gebracht wurde - was vorher in 20 Jahren nicht passiert ist läuft jetzt in 2-3 Jahren ab

    und das PHP/Javascript und .Net/C# viel mehr in der Werbung/Job-Portalen gesucht werden ist auch einfach weil es so viele schlechte Entwickler in dem Bereich gibt und die Projekte teilweise auch viel viel kürzere Lebenszeit oder Entwicklungskomplexität haben - das ändert aber absolut nichts daran das die großen/wichtigen/Welt-Bewegenden Projekte immer noch auf C/C++ stehen und auch in dieser Sprache Neu- und Weitereintwickelt werden - weil es eben notwendig ist

    und da ist z.B. die Sprache Rust bisher die 1. und einzige Ausnahme von den ganzen anderen Emporkömligen die wirklich mit C/C++ auf einer Stufen stehen können (und auch dafür geplant/entworfen sind) - ohne verbiegungen oder Abstriche an jeder Ecke

    wenn man nicht im C++ Bereich aktiv und lange arbeitet nutzt man nicht die Kommunikationskanäle und bekommt kaum was mit - daher könnte es ruhiger wirken



  • damit will ich nicht sage das .Net/C#/etc. Entwickler pe se schlecht sind oder die Produkte einfach/schlecht - Es gibt eben aber in dieser Welt viele viele Kodierknechte die einfache Arbeit verrichten - wobei der Anteil an Profis in C++ schon viel höher ist - einfach mal die Frage/Diskussionen bei Reddit in C#/Java mit C++/Rust vergleichen



  • Ich würde mal sagen weil Systemprogrammierung bei C++ Entwicklern deutlich stärker vertreten ist. Das technische Niveau ist in dem Bereich höher als bei der Entwicklung von Büro Software.

    Ich glaube auch dass es einen Zusammenhang gibt zwischen dem Anspruch an Performance und der Komplexität eines Programms.
    Dort wo Performance sehr wichtig ist, sind die Programme meistens auch komplexer und technisch anspruchsvoller. Auch näher an der Hardware.

    Und wenn es um Performance geht kommt man um C/C++ kaum herum. Bei solchen Projekten geht man eher ein paar Schritte Richtung Maschinensprache mit Assembler statt zu höherer Abstraktion Richtung C#/.Net.


Anmelden zum Antworten