Wofür wird C++ heute noch eingesetzt?



  • volkard schrieb:

    Troll.

    👍 👍



  • Rustiger schrieb:

    Ich nehme mir halt die Zeit von Anfang an dabei zu sein. Selbst wenn ich auf das falsche Pferd gesetzt habe, so wird das Gelernte einen anderen Herangehensweise(OOP ohne Klassen, Traits, Slices, Pattern Matching, Ownership, Borrowing usw) beim Entwickeln mir sicherlich so einiges an Verständnis und neuen Sichtweisen bringen.

    Wenn du dein Verstaendnis foerdern willst, lern Haskell und C++. Rust ist einfach nur eine Mischung daraus und wenn du beides lernst, gehst du an beiden Seiten ueber das hinaus, was Rust dir bieten kann.

    OOP ohne Vererbung (das meinst du doch mit "Ohne Klassen") hat C++ im Grunde auch. Traits kannst du auch schriftlich im Programmdesign formulieren, statt Slices verwendet man Random-Access-Iteratoren, Ownership ist das gleiche wie in C++ und Borrowing wird nicht statisch validiert, macht man im Prinzip aber auch so wie in Rust, wobei Clang auch ein sehr gutes Tool fuer die statische Fehlersuche hat.
    Lediglich Pattern matching zur Laufzeit fehlt, dafuer hat man aber welches in den Templates, was Rust leider (noch) fehlt.



  • Jakob70 schrieb:

    Hi,

    wofür wird C++ heute noch eingesetzt? Ist es nicht in einer unbequemen Position zwischen C auf der einen und Sprachen wie C# oder Java auf der anderen Seite? Treiber und Betriebssysteme werden größtenteils in C programmiert. Das meiste Embedded auch. Windows Anwendungen und dergleichen werden in .NET/C# oder Java entwickelt. Wofür also noch C++ außer vielleicht für Computerspiele, wo ein managed Garbage Collector manchmal stört. Aber sonst gibt es doch kaum Gründe, die heutzutage noch für C++ sprechen, oder?

    Viele embedded Projekte werden mit C++ gemacht, .NET und Java hingegen sind in dieser riesigen Sparte quasi nicht existent.

    In C++ werden viele für Wissenschaft und Industrie wichtige Bibliotheken implementiert. Kaum jemand käme auf die Idee, Dinge wie OpenCV direkt in .NET oder Java zu implementieren.

    Rust finde ich grundsätzlich eine interessante Entwicklung, mal was anderes nach der gefühlt 1000. GC+VM Interpretersprache. So nett die Sprache aber auch ist, solange nicht alle relevanten Bibliotheken portiert bzw. gewrappt sind sehe ich keinen Anlass von C++ nach Rust zu wechseln.

    Nach einigen Jahren in der IT kann ich empfehlen, nicht jeden noch so tollen Hype ernst zu nehmen. Ich hab schon so oft gehört, dass C oder C++ tot seien. Trotzdem baut im Prinzip die gesamte IT Welt darauf auf. Der Python Interpreter ist sicher nicht in .NET geschrieben, und die .NET VM sicher nicht in Java. Nein, das baut dann eher auf C und/oder C++ auf.



  • Es hat doch auch keiner geschrieben, dass morgen C++ vom Acker ist. Nur ist Rust seit vielen Jahren ein Kandidat der, in zehn Jahren oder so, schon einige typische C++-Projekte übernehmen koennte.

    Libs sind kein grosses Thema, da sogar die Objektdateien von C-Libs direkt gelinkt werden koennen. Die Wrapper sind wirklich ein Witz. Die 100 beliebtesten Libs zu wrappen ist locker in einem Jahr drin, viele sind ja schon in der Mache.

    Ich rechne in zwei Jahren damit, das Rust schon um einiges bekannter sein wird. C++ wird dann irgendwann so wie das heutige C sein. Es wird es geben, aber nicht weil es so toll ist damit zu entwickeln, sondern wegen der Altlasten.



  • GutDing schrieb:

    Ich rechne in zwei Jahren damit, das Rust schon um einiges bekannter sein wird.

    So wie D? 😋



  • Gregor schrieb:

    GutDing schrieb:

    Ich rechne in zwei Jahren damit, das Rust schon um einiges bekannter sein wird.

    So wie D? 😋

    D hat mich nie interessiert.



  • ich finde es ja eh gut, dass sich im "native" Bereich mal wieder was tut.
    Eins muss man halt bedenken: wenn ein neues Projekt in einer Firma gestartet wird, wird die Entscheidung zwecks Programmiersprache meist nach Verfügbarkeit der Libs, Verwendungszweck, verwendetes OS und Verfügbarkeit von Entwicklern entschieden.

    Rust ist außerdem noch in einem frühen Stadium (konnte z.B. irgendeinen Beispielcode in Version x nicht mehr mit Version y compilieren). So Dinge passieren bei C++ natürlich auch (Compiler x schluckt Code den Compiler y ablehnt), aber im Großen und Ganzen kann man mit ein paar ifdefs durchaus viele Plattformen und Compiler abdecken.
    Keine Firma geht so ein Risiko ein: eine noch nicht fertige Sprache verwenden, eine Sprache verwenden für welche viele Basis-Libs fehlen, eine Sprache verwenden, für welche es keine Programmierer gibt, usw.

    Sobald es mit Rust möglich ist, viele Basis Libs verwenden zu können (ohne da selbst irgendwas rumbasteln zu müssen) und die Sprache an einem Punkt angekommen ist, ab dem die Syntax stabil bleibt, bin ich gerne bereit, mich damit näher auseinanderzusetzen und diese auch im einen oder anderen kleinen Projekt in der Firma zu verwenden.



  • dfdsdfs schrieb:

    Sobald es mit Rust möglich ist, viele Basis Libs verwenden zu können (ohne da selbst irgendwas rumbasteln zu müssen) und die Sprache an einem Punkt angekommen ist, ab dem die Syntax stabil bleibt, bin ich gerne bereit, mich damit näher auseinanderzusetzen und diese auch im einen oder anderen kleinen Projekt in der Firma zu verwenden.

    Rust ist gerade in der alpha (die Syntax bleibt so, aber viele libraries fehlen noch), soll in ein paar Wochen beta werden und dann nicht mehr lange bis zum Release.



  • Marthog schrieb:

    dfdsdfs schrieb:

    Sobald es mit Rust möglich ist, viele Basis Libs verwenden zu können (ohne da selbst irgendwas rumbasteln zu müssen) und die Sprache an einem Punkt angekommen ist, ab dem die Syntax stabil bleibt, bin ich gerne bereit, mich damit näher auseinanderzusetzen und diese auch im einen oder anderen kleinen Projekt in der Firma zu verwenden.

    Rust ist gerade in der alpha (die Syntax bleibt so, aber viele libraries fehlen noch), soll in ein paar Wochen beta werden und dann nicht mehr lange bis zum Release.

    danke für die Info - dann werd ich das etwas beobachten in nächster Zeit.



  • Trotzdem wird sich das keine Firma antun. Hat die Firma genug Entwickler, die sich damit sicher auskennen? Sicher nicht. Thema vom Tisch.
    Und die Nachfolge von C++ anzutreten ist auch keine dankbare Aufgabe. C++ wird vor allem für große Projekte eingesetzt, die historisch gewachsen sind. Das sind nun mal alle großen Projekte. So gut wie kein großes Projekt wird heute neubegonnen, das sind fast alles Weiterentwicklungen. Und da wird auch keine ristkieren, die Programmiersprache zu wechseln. Das wäre eine komplette Neuentwicklung und der Selbstmord für fast jede Firma.



  • Mechanics schrieb:

    Trotzdem wird sich das keine Firma antun. Hat die Firma genug Entwickler, die sich damit sicher auskennen? Sicher nicht. Thema vom Tisch.

    So einfach ist das nicht.
    Wenn ein kleines Startup etwas in Rust entwickelt und Entwickler einstellt, die Rust kennen, dann hat sie automatisch überdurchschnittlich gute Entwickler und kommt schnell mit ihrem Projekt voran.

    Gute Entwickler sind gefragt und wenn es möglich ist, in Rust zu entwickeln, dann ist das natürlich ein grosser Pluspunkt für diese kleine Firma. Da nimmt man dann auch kleine Einbussen im Gehalt hin.

    Der gleiche Effekt lässt sich mit Scala und Haskell beobachten.

    Bis C++ ersetzt wird dauert es eine Weile, aber als Nischensprache könnte sich Rust schon etablieren.



  • Mechanics schrieb:

    Trotzdem wird sich das keine Firma antun. Hat die Firma genug Entwickler, die sich damit sicher auskennen? Sicher nicht. Thema vom Tisch.
    Und die Nachfolge von C++ anzutreten ist auch keine dankbare Aufgabe. C++ wird vor allem für große Projekte eingesetzt, die historisch gewachsen sind. Das sind nun mal alle großen Projekte. So gut wie kein großes Projekt wird heute neubegonnen, das sind fast alles Weiterentwicklungen. Und da wird auch keine ristkieren, die Programmiersprache zu wechseln. Das wäre eine komplette Neuentwicklung und der Selbstmord für fast jede Firma.

    bei kleinen Tools haben wir freie Hand bei der Wahl der Programmiersprache. Da kann man so etwas wie Rust (sofern stabil) schon mal ausprobieren.
    Bei großen Dingen ist natürlich kein Platz für Experimente, da verwenden wir schon lange C++ und solange dieses Produkt lebt wird es auch mit C++ weiterentwickelt, alles andere wäre unrealistisch.



  • Ich hab geschrieben, es wird schwer, die Nachfolge von C++ anzutreten. Kann schon sein, dass es paar Leute für kleine Tools verwenden werden. Das ist jetzt nicht unbedingt die Hauptdomäne von C++. Wenn jemand ein 1000 Zeilen Tool statt in Vala in Rust schreiben will, ok, interessiert keinen.



  • Rust ist extra für sehr große Projekte entworfen worden, aber das weißt du ja. Falls du dich nicht mit der Sprache auseinander gesetzt hast, dann sind deine Kommentare eh ziemlich nichtig.



  • Falls du mich meinst, ja, das weiß ich. Deswegen sag ich ja, dass es sehr sehr unwahrscheinlich ist, dass es sich durchsetzt. Grad bei großen Projekten wird es keine Chance bekommen.



  • Gibt es denn überhaupt auch nur EIN großes und bekanntes C++Projekt, was nicht mit Speicherfehlern zu kämpfen hat? Das man theoretische sicher programmieren kann ist doch irrelevant in der Praxis, denn den 100% C++-Programmierer gibt es nur auf dem Papier und hier im Forum.



  • Zu kämpfen haben wohl die meisten nicht gerade, auch die Alten.
    Zb Spiele sind fast immer in C++ geschrieben und crashen sehr selten aufgrund von Speicherfehlern.



  • Ich meine mit kämpfen auch nicht, dass die Fehler gleich ersichtlich sind. Speicherfehler, die zum Absturz führen, sind ja auch leicht zu finden. Schwer sind die, die zu undefinierten Verhalten hervorrufen.



  • NewHope schrieb:

    Gibt es denn überhaupt auch nur EIN großes und bekanntes C++Projekt, was nicht mit Speicherfehlern zu kämpfen hat? Das man theoretische sicher programmieren kann ist doch irrelevant in der Praxis, denn den 100% C++-Programmierer gibt es nur auf dem Papier und hier im Forum.

    Gibt es denn überhaupt auch nur EIN großes und bekanntes Projekt, welches mit einer beliebigen Programmiersprache implementiert wurde, und nicht mit Bugs zu kämpfen hat?

    Es ist unrealistisch anzunehmen, dass Programme, die mit (...hier eine beliebige Programmiersprache einfügen...) implementiert wurden, fehlerfrei sind.



  • Es geht hier nicht um Bugs im Allgemeinen, sondern um spezielle Bugs. Und ja der Ausschluss der angesprochenen speziellen Memory-Bugs kann allein durch die Sprachwahl Rust garantiert werden, dass ist 100% und drei Fehlerarten davon kosten KEINEN Overhead.

    Lese dich doch bitte in das Thema ein, oder schau ein paar YT-Videos dazu an, dann weißt du auch warum es diese Fehler in Rust gar nicht geben kann. Das wird schon zur Compilezeit ausgeschlossen.


Anmelden zum Antworten