Wofür wird C++ heute noch eingesetzt?



  • Rustiger schrieb:

    Für all diese industriellen Sachen wäre Rust super geeignet, denn da kann man sich noch weniger Fehler leisten. Ich drücke fest die Daumen, dass auch dort C++ immer weniger eine Rolle spielen wird in Zukunft. Nach den VM-Sprachen kommen jetzt endlich neue Systemsprachen auf den Markt...es wird auch Zeit.

    Welche Vorteile hätte den Rust gegenüber C++?



  • Cybertec schrieb:

    Rustiger schrieb:

    Für all diese industriellen Sachen wäre Rust super geeignet, denn da kann man sich noch weniger Fehler leisten. Ich drücke fest die Daumen, dass auch dort C++ immer weniger eine Rolle spielen wird in Zukunft. Nach den VM-Sprachen kommen jetzt endlich neue Systemsprachen auf den Markt...es wird auch Zeit.

    Welche Vorteile hätte den Rust gegenüber C++?

    Für eine ausführliche Diskussion siehe diesen Thread.



  • Ja klar wird es Jahrzehnte dauern bis sich eine neue Systemsprache wirklich etabliert hat. Ich persönlich finde es auch schwer in Rust rein zu kommen, da man einfach anderes Denken lernen muss und mir fehlt auch noch GUI, IDE etc, obwohl Binding zu C-Libs wirklich da extrem schnell realisiert werden. SDL, GTK, OpenGL, GLGW und viele andere sind ja alle schon da.

    Interessant ist auch dass man mit Rust auch gut fürs Web programmieren kann. Da gibt es schon ein fertiges Projekt, mir fällt der Name nicht ein.

    Dazu ist der neue Paketmanager und Buildtool cargo echt toll. Keine Probleme mehr Libs zu nutzen, da werden Abhängigkeiten aufgelöst, fehlende Libs gleich runter geladen, ein Projekt mit Ordner-Struktur und XML-Build-Datei angelegt, usw.. Mit cargo run z.B. wird gebaut und gleich gestartet und so weiter und so fort...echt nett.

    Auf https://crates.io/ kann man sich so das werkeln an Libs anschauen. Da wird wirklich alles mögliche für Rust verfügbar gemacht.

    Und bald ist Rust auch endlich wirklich Final und dann werden auch die IDE-Unterstützung, Bücher etc. nicht lange auf sich warten lassen. Bevor eine Sprache nicht final ist macht ja so etwas keinen Sinn.



  • Diese Rust-Trollerei ist mittlerweile echt lästig.



  • Wenn dir Sicherheit lästig ist, dann tust du mir Leid. Mir gefällt nun einmal das Konzept hinter Rust und wenn eine Sprache allein schon für mehr Sicherheit in der IT-Welt sorgen kann, dann tue ich alles um diese auch zu verkaufen. Das ist mein Beitrag gegen NSA und Konsorten. Du kannst dies gern Trollerei nennen. Ich nenne es, eine neue Sprache bekannt machen und aufzeigen was sie besser als C++ macht.





  • @Offtopic Ethon:
    Kann es sein, dass du noch so ein Bubi von 25 bist?



  • Also ich muss doch jetzt mal klar sagen, Rustiger kennt sich nicht aus. D ist viel besser als Rust.



  • Ethon schrieb:

    Diese Rust-Trollerei ist mittlerweile echt lästig.

    👍



  • Ich habe nie gesagt, dass ich ich auskenne und D habe ich auch nocht nicht probiert. Sprachen in denen ich schon was geschrieben habe sind: C, C++, PHP, Java, Javascript, Python und jetzt halt Rust. Es ist ja auch nicht so dass ich jetzt nie wieder in den genannten Sprachen was machen werde. Aktiv arbeite ich am meisten mit Java, davor C++. Nebenbei schaue ich mir Rust Stück für Stück an bin halt total begeistert und schreibe darüber.

    Nein, ein Experte oder Profi bin ich nicht. Nur ein Programmierer mit einer Meinung zu den Sprachen die er schon ausprobiert hat.



  • Ethon schrieb:

    Diese Rust-Trollerei ist mittlerweile echt lästig.

    👍

    Knuth, Turing, Gödel, das Programmieren selber ist (ganz unabhängig von einer eingesetzten Sprache!) viel viel viel viel viel komplexer als es von der Ferne den Anschein hat. Das muß man kapieren, dann erst sollte man über Sprachen reden.

    Also von der Ferne sieht der klassische Personaler da jemanden im Keller rumgammeln, der den ganzen Tag Tasten drückt, und der Personaler denkt sich, daß seine 5-jährige Tochter auf dem PlayBa-Spielzeug-Telefon das auch macht. Also wozu versiffte Progger bezahlen? Nur weil Kinderarbeit verboten ist und Terschutzgesetze verbieten, es Schimpasen machen zu lassen?

    Ich kann es dem klassischen Personaler nicht erklären, was wir tun und was wir sind. Kann ihm nur sagen, daß wir alle Personaldinge im Prinzip können (meine 5-jährige Tochter kann das sogar), aber wir können nicht alles lösen und wir (oder die Mathenachbarn halt) beweisen gleich selber, daß wir beschränkt sind.

    Ähm, der Personaler läßt seine Pilstulpe fallen vor Unfassung ob der Begeisterung, die das Kellerkind zeigte, als sei der Beweis eigener Beschränktheit das Größte einer Fachrichtung. Das geht dem Personaler nicht in den Kopf. Und für uns ist es mit das Größte.

    Es wird noch schlimmer. Eine Andeutung sei http://de.wikipedia.org/wiki/Liste_von_Komplexitätsklassen

    Proggern ist verdammt kompliziert. Wie kommt eine Weihnachtsnase auf den absurden Gedanken, durch Beschneidung der Programmiersprache hilfreich zu sein?

    Zu C++ gibt es zur Zeit weit und breit keine Alternative. Nur da kann man einigermaßen ausdrücken, was man als Mensch tun täte, hätte man diese Aufgabe. Nur C++ ergibt sich (inzwischen endlich konsequent) den Alltagssorgen der Progger, die Alltagsprobleme unmittelbar proggen wollen. Alle anderen üblichen als allgemein verwendungsfähig propagierten Sprachen~(außer Perl)~ erzählen einem mehr oder viel mehr und zum Kotzen mehr, wie man die Probleme erst ändern muss, um sie lösen zu können.



  • Na aus meiner Sicht gibt es keine wirkliche Alternative zu C und C++.

    Ich muss aber sagen ich bin ein Effizienzfanatiker.
    Wenn ich sehe das mein Laptop mit einem i5 und 4GiB RAM bein 3 Programmen in die Knie geht ist das für mich nur ein Beweis dafür was für ein Irrweg z.B. Java geht.
    (Die 3 Programme waren Firefox mit etwa 20 Tabs, Eclipse und ein Spring (Java) Projekt).

    Aus meiner Sicht ist Java in Serverfarmen ok, da kommt es nicht auf einen RAM Riegel an, da ist es sogar billiger 100GiB mehr RAM zu kaufen als das Programm zu optimieren.
    Aber im Consumer Bereich geht das einfach nicht (selbst am Desktop schaffen einige Programme die 8GiB und nochmal 100€ für neuen RAM will ich nicht ausgeben) und da ist Java (leider) auch immer verbreiteter (an die Spieler unter euch, vergleicht mal den Speicherbedarf des Minecraft Servers mit dem in C geschriebenen Nachbau das sind so etwa 50% weniger).

    Aber das sollte gar nicht gegen Java jetzt so sehr gehen, vielmehr wollte ich ausdrücken das man immer eine Gewisse Effizienz erhalten sollte. Dann haben auch Bytecode Sprachen wie Java und Skriptsprachen wie Python einen Verwendungszweck (mal nebenbei Python ist erstaunlich leistungsfähig).

    ==> Wenn ich selber die Auswahl zwischen zwei Programmen habe wähle ich das effizientere und das ist nunmal oft C/++. Und das haben bisjetzt auch alle mit denen ich zusammen gearbeitet habe genau so gesehen.



  • Das ist doch gerade das Schöne. C++ Alleinstellungsmerkmal fängt an zu bröckeln, weil jetzt mehr Systemsprachen das Licht der Welt erblicken. Natürlich sind sie kein C++, denn das will man ja nicht. Man will keine Speicherfehler mehr. Sie sind aber in der Lage Aufgaben die C++ zugesprochen wurden zu meistern. Das ist neu und macht den ewig Gestrigen natürlich Angst, weil ihre Sprachwahl wohl möglich nicht mehr die beste sein wird.

    Das nennt sich Evolution. Die könnt ihr gerne versuchen wegzudiskutieren. Sie wird dennoch ihren Lauf nehmen.

    C++ unterliegt ja auch einer Evolution, aber Smartpointer etc. macht die Sprache ja nicht sicherer. Es gibt dem Programmierer die Möglichkeit sichere Software zu schreiben. Macht der aber Fehler, weil einfach die Komplexität steigt, dann helfen auch neue Sprachfeatures nicht weiter, denn egal welche Version es von C++ geben wird, die Sprache an sich bleibt unsicher und Speicherfehler sind immer möglich.

    Was soll ich mir hier aber den Mund fusselig reden. An Sicherheit sind hier einige überhaupt nicht interessiert. Es geht ihnen nur darum C++ zu verteidigen und als Sicher zu verkaufen, was es nun einmal nicht ist.

    Einige hier habe aber das Potential anderes Systemsprachen erkannt und sind dementsprechend begeistert.

    Von meiner Seite aus soll dies der letzte Post zu Rust sein. Eine C++ Alternative in einem C++ Forum zu diskutieren war halt keine gute Idee.

    Also viel Spaß noch mit eurem unsicheren C++ und denkt dran draußen entwickelt sich die IT-Welt weiter.



  • Ich fand eigentlich nicht das hier übermässig irgendwelche pauschalen Vorzüge von C++ verteidigt worden sind.

    In vielen embedded Bereichen, wie automotive, haben die Systeme z.b. kein dynamisches Speichermanagement. Damit ist die Verwendung von Pointern schonmal stark eingeschränkt. Es gibt sowas wie MISRA C UND MISRA C++ die tatsächlich eingehalten werden müssen.

    Eine Programmiersprache die dort zum Einsatz kommt, kann also nicht auf dynamischen Speicher zurück greifen, da fällt java schonmal aus. Auch viele andere Programmiersprachen die eine VM verwenden.

    Auch rust benutzt dynamisches memory und fällt damit als alternative aus.



  • Rustiger schrieb:

    Das ist doch gerade das Schöne. C++ Alleinstellungsmerkmal fängt an zu bröckeln, weil jetzt mehr Systemsprachen das Licht der Welt erblicken. Natürlich sind sie kein C++, denn das will man ja nicht. Man will keine Speicherfehler mehr. …

    Wir hatten Dir doch erklärt, daß man in C++ keine Speicherfehler hat. Aber Du holst es gebetsmühlenartig immer wieder als Argument aus dem Zauberhut.

    Rustiger schrieb:

    den ewig Gestrigen

    Rustiger schrieb:

    Evolution

    Rustiger schrieb:

    bleibt unsicher und Speicherfehler

    Rustiger schrieb:

    Von meiner Seite aus soll dies der letzte Post zu Rust sein.

    Nächsten Monat kommste halt als C++-Fanboy rein und läßt Dich innerhalb von 6 Wochen von gespielten Rust-Fanboys Stück für Stück überzeugen. Wir erwarten es.



  • Jodocus schrieb:

    Cybertec schrieb:

    Welche Vorteile hätte den Rust gegenüber C++?

    Für eine ausführliche Diskussion siehe diesen Thread.

    Ja sicher, ich lese mir jetzt 14+ Seiten durch.

    Mal davon abgesehen bin ich der Meinung das Rustiger überhaupt keine Ahnung hat wie man eine SPS programmiert, aber Hauptsache irgendetwas gelabert.



  • Cybertec schrieb:

    Jodocus schrieb:

    Cybertec schrieb:

    Welche Vorteile hätte den Rust gegenüber C++?

    Für eine ausführliche Diskussion siehe diesen Thread.

    Ja sicher, ich lese mir jetzt 14+ Seiten durch.

    Och da reichen die ersten beiden Seiten, dann haste eh genug gelesen.

    N.B. Der Thread ist geschickt von einer rein informativen und wie ich finde durchaus angemessenen Frage in eine Grundsatzdiskussion abgeglitten.



  • C++ kommt da zum Einsatz wo es erforderlich ist, dass die Sprache über Jahre hinweg konsistent bleibt.

    Gerade Sprachen wie Python, C# , Java und co. befinden sich in ständiger Veränderung. Bei großen Projekten kann keiner den Sprung von Python 2.x zu 3.x oder ähnliches gebrauchen.

    Die vieldiskutierte MFC bringt zum Beispiel genau dieses Verhalten, neue Frameworks wie zum Beispiel Qt nicht unbedingt.

    Die Domäne von Java und C# sind vor allem Frontends für Datenbankprojekte, Webzeugs und kleine Tools. Im Bereich Web und kleinen Tools natürlich auch PHP, Python, ruby und co.

    C und C++ sind Sprachen die für die Systementwicklung und aufwendige Applikationen gedacht sind. Darum bringen die Sprachen auch die erforderlichen Bausteine dafür mit, zum Beispiel Zeiger. Das setzt natürlich voraus, dass der Programmierer in der Lage ist seine Werkzeuge richtig einzusetzen.

    Die Portierbarkeit von C und C++ ist, mit ein wenige Aufwand, deutlich höher als die der als portierbar vermarkteten als C# und Java.

    Für Rust fällt mir allerdings kein Projekt ein.



  • simbad schrieb:

    Auch rust benutzt dynamisches memory und fällt damit als alternative aus.

    Wie kommst du denn da jetzt drauf 😮 ? In Rust lässt sich alles statisch anlegen, genauso wie in C und C++.

    Dean schrieb:

    C++ kommt da zum Einsatz wo es erforderlich ist, dass die Sprache über Jahre hinweg konsistent bleibt.

    Gerade Sprachen wie Python, C# , Java und co. befinden sich in ständiger Veränderung. Bei großen Projekten kann keiner den Sprung von Python 2.x zu 3.x oder ähnliches gebrauchen.

    Was ändert sich denn immer so großartig in C# und Java? Es kommen ein paar Sprachfeatures dazu, das Framework bekommt ein paar neue Funktionen und eine neue Versionsnummer. Bei C++ verhält sich es ähnlich (nur sind die Zyklen kürzer).



  • volkard schrieb:

    Wir hatten Dir doch erklärt, daß man in C++ keine Speicherfehler hat.

    #include <iostream>
    #include <vector>
    #include <string>
    
    using namespace std;
    
    int main() {
        vector<string> v;
        v.push_back("Hello");
        string& x = v[0];
        v.push_back("world");
        cout << x;
    }
    

    C++ ist voll von Speicherfehlerfallen.


Anmelden zum Antworten