Ist C++ am Aussterben?



  • Rust schrieb:

    Artchi schrieb:

    Ob aber gerade Rust der C++-Nachfolger wird, bezweifel ich! Ich sehe den Trend eher das C++ nur noch für die Implementierung von Engines und VMs benutzt wird.

    Warum? Das kann man in Rust mit gleicher Performance, höherem Komfort und höherer Sicherheit ebenfalls implementieren.

    Wie kommt es eigentlich dass ausgerechnet die meist verwendeten Sprachen so viel Kritik ernten?
    C, C++, Java, PHP oder JavaScript. Oft angefeindet aber doch dominierende Sprachen.

    Neben C und C++ ist PHP auch ein gutes Beispiel. Was hat man über PHP nicht alles geschimpft. Und doch findet man kaum eine Webanwendung ohne PHP.

    Lasst mich raten, eigentlich sind diese am meisten verwendeten Sprachen nicht besser als die neuen Alternativen, nur weil es sie länger gibt und viele sie beherrschen und es so viel Code davon gibt dominieren sie zumindest vorerst noch den Markt.
    Aber langfristig werden sich natürlich die besseren Alternativen durchsetzen. Durch eine Art selektive Evolution in der IT.

    Zum Teil dürfte dass sogar stimmen. Aber zweifelhaft ob dass in den Dimensionen eintreten wird wie sich das manche vorstellen. Zum Teil dürfte diese Haltung daher resultieren dass jemand sich bewusst vom Mainstream abgrenzen will.
    Subkulturen in der IT sozusagen, anders sein und cooler sein wollen. Mit neuen Sprachen die zum Teil wirklich Verbesserungen anbieten aber auch welche die keine nennenswerten echten Vorteile bieten und eher subjektive Einbildung ist im Sinne der Subkultur.



  • BlubberC++ schrieb:

    Wie kommt es eigentlich dass ausgerechnet die meist verwendeten Sprachen so viel Kritik ernten?

    je mehr Menschen eine Sprache benutzen, umso mehr Meinungen gibt es und umso mehr sind da, die auch die Nachteile kennen.

    Oder grob vereinfacht gesagt: Eine Sprache, die niemand kennt, wird auch kaum kritisiert.

    Außerdem sind praxisnahe Sprachen oft nicht Paradigmata-rein, sondern im Dienst der Praktikabilität oft Multi-Paradigmata-Sprachen, wobei es bei der Realisierung der Paradigmata Kompromisse gibt; wahrscheinlich geben muss.



  • BlubberC++ schrieb:

    Warum? Das kann man in Rust mit gleicher Performance, höherem Komfort und höherer Sicherheit ebenfalls implementieren.

    angeblich kann man alles mit allen sprachen implementieren.
    aber ich habe mich bisher z.b. immer sehr stark auf c konzentriert, mich an die eigenheiten dieser sprache gewöhnt und werde mit anderen sprachen wahrscheinlich niemals so gut programmieren können wie mit c, bzw. nur mit unnötigem aufwand, weil ich sonst ja erst einmal 10 jahre erfahrung mit anderen sprachen sammeln müsste und da ich hoffentlich bald "der chef" bin und "das sagen" habe, werden sich auch weiterhin leute mit c abärgern müssen. 😃

    Wie kommt es eigentlich dass ausgerechnet die meist verwendeten Sprachen so viel Kritik ernten?
    C, C++, Java, PHP oder JavaScript. Oft angefeindet aber doch dominierende Sprachen.

    Neben C und C++ ist PHP auch ein gutes Beispiel. Was hat man über PHP nicht alles geschimpft. Und doch findet man kaum eine Webanwendung ohne PHP.

    viele leute suchen sich auch einfach den falschen beruf aus. also ich finde es z.b. unglaublich toll mit arrays, offsets und funtionspointern herumzuspielen, andere werden das vielleicht nicht so toll finden und daher entsprechend schimpfen, wenn sie so etwas machen müssen.

    Lasst mich raten, eigentlich sind diese am meisten verwendeten Sprachen nicht besser als die neuen Alternativen, nur weil es sie länger gibt und viele sie beherrschen und es so viel Code davon gibt dominieren sie zumindest vorerst noch den Markt.
    Aber langfristig werden sich natürlich die besseren Alternativen durchsetzen. Durch eine Art selektive Evolution in der IT.

    eigentlich ist es egal, welche sprache du verwendest. wenn du spaß daran hast, kannst du soweit ich weiß auch mit lisp geräte über den parallelport ansteuern.
    aber was heißt bessere alternativen? unter c nimmst du halt funktionszeiger, unter basic goto und unter java oder c++ die lambda-funktionen. das ergebnis ist aber faktisch das gleiche und damit sind diese angeblichen verbesserungen gar nicht wirklich verbesserungen, sondern einfach nur andere vorgehensweisen.

    Subkulturen in der IT sozusagen, anders sein und cooler sein wollen. Mit neuen Sprachen die zum Teil wirklich Verbesserungen anbieten aber auch welche die keine nennenswerten echten Vorteile bieten und eher subjektive Einbildung ist im Sinne der Subkultur.

    ja genau das ist das. guck dir mal die profile der meisten it-spezialisten an: sie können dann angeblich 20 verschiedene programmiersprachen, aber wahrscheinlich nicht eine einzige annähernd vernünftig.



  • zufallswert schrieb:

    Oder grob vereinfacht gesagt: Eine Sprache, die niemand kennt, wird auch kaum kritisiert.

    Sehe ich auch so. Ich kenne und mag C++, aber es ist bei weitem nicht perfekt und ich muss das nicht super finden. Deswegen darf man auch ab und zu mal drüber schimpfen. Aber das heißt jetzt nicht, dass irgendeine Sprache xy so viel toller wäre und ich die unbedingt haben will.



  • 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