Wie sehr kann man C++ Kenntnisse in der Konsolenprogrammierung gebrauchen?



  • Ich habe nun einige Monate C++ gelernt und bin dabei zu lernen, wie man Desktop-Programme und Spiele mit C#, WPF und Unity erstellt. Ich habe das Qt Framework auch schon ausprobiert, finde WPF aber für mich viel besser, vor allem da ich nur für Windows programmieren möchte.

    Außerdem habe ich gemerkt, dass ich mit Unity leichter und schneller Spiele entwickeln kann, als wenn ich C++ und SFML/OpenGL benutzen würde. Demnach könnte ich C++ nur bei Konsolenprogrammen wirklich gebrauchen.

    C++ ist auch eine Programmiersprache, die mir sehr gefällt, aber ich habe nicht vor alleine eine Spiele-Engine mit Spiel und sonstige riesige Projekte umzusetzen. Schließlich brauchen Teams die Spieleentwickeln auch Jahre, bis etwas fertig wird.

    Nun möchte ich C++ nicht zu 100% vernachlässigen und würde es auch beruflich etwas damit machen wollen. Zeit habe ich noch genug, da ich dieses Jahr mit dem Abitur fertig werde und dann anfange Informatik zu studieren.

    Und kann ich etwas mit C# und/oder C++ beruflich machen, wenn ich gute Kenntnisse habe, aber nur Konsolenprogramme damit schreiben kann?



  • wenn du Informatik studierst wirst du merken, dass es viele Sprachen gibt, es ist dir dann wahrscheinlich nicht mehr so wichtig, ob du nun C++ oder C oder Java oder ... nimmst.
    Sieh lieber zu, dass du dich bis zum Ende des Studiums in einem Gebiet gut auskennst, sei es nun theoretische Informatik, Computergraphik oder Datenbanken.

    C++ ist performant, daher werden hauptsächlich Dinge in C++ geschrieben, die schnell sein müssen. Da gehört GUI nun mal nicht dazu. Such auf github mal nach Projekten, die in C++ geschrieben sind. Das wäre z.B. TensorFlow, Bitcoin, Swift, ...



  • Ich versteh nicht ganz, wie du auf Konsolenprogramme kommst. Ja, für GUI Programmierung gibts evtl. schönere Frameworks, z.B. WPF. Der Unterschied ist meiner Meinung nach aber nicht groß.
    Trotzdem sind so gut wie alle großen, bekannten Programme in C++ geschrieben. Browser, Office Pakete, Photoshop (bzw. alles von Adobe), CAD Systeme... Sind das Konsolenprorgamme?
    Es gibt auch viel mehr Arten von Programmen, als nur Spiele und Konsolenprogramme und "irgenwas mit GUI". Große, komplexe Programme enthalten alle möglichen Komponenten und brauchen dafür nicht unbedingt eine GUI. Oder die GUI entkopelt und in einer anderen Sprache geschrieben sein. Und im Hintergrund läuft vielleicht ein Service, der die eigentliche Arbeit übernimmt, was vielleicht viel komplexer und spannender ist.
    Außer find ich WPF jetzt nicht unbedingt viel besser als Qt, zumindest nicht "relevant" besser. Wir haben ein komplexes System mit Millionen Zeilen Code und die GUI ist mit Qt geschrieben, weil wir alles in C++ schreiben. Früher hab ich .NET programmiert und kann das vergleichen. Das ist auf jeden Fall "gut genug". Man kann damit produktiv arbeiten und damit alles erreichen, was man will.
    Kommt aber auch so ein bisschen drauf an, was man macht. Wenn du ein kleines Datenbankprogramm schreiben willst, bist du mit .NET und WPF und den ganzen Bindings deutlich schneller. Bei uns arbeiten dutzende Entwickler seit Jahrzehnten an dem System, da spielen paar Tage mehr oder weniger Aufwand insgesamt gar keine Rolle. Und wir haben keine Standardgui, die man schnell an irgendwas binden könnte, da hätt WPF auch nicht viele Vorteile.



  • Man stösst mit Frameworks wie WPF auch recht schnell an Grenzen wo man z.B. Performance- oder Wartbarkeits-Probleme bekommt, die sich nur lösen lassen wenn man anfängt das Framework nicht so zu verwenden wie es gedacht ist bzw. überall gepredigt wird.
    (Natürlich kann man Performance- oder Wartbarkeits-Probleme noch schneller bekommen wenn man ein Framework grundsätzlich falsch verwendet, aber das meine ich jetzt nicht.)

    ps: Ist mit Qt vermutlich auch nix anderes. Nur dass der Basis-Overhead von Qt vermutlich geringer ist als bei WPF. Und vor allem: wenn man mal anfangen muss gröber rumzubasteln, dann wird es mit jedem Framework aufwendiger. Kann dann auch sein dass das Framework das bei Hello World Beispielen viel aufwendiger aussieht in der Situation dann wieder Vorteile hat, weil man speziellere oder komplexere Sachen einfacher/schöner/performanter umsetzen kann.



  • Solix0x schrieb:

    Außerdem habe ich gemerkt, dass ich mit Unity leichter und schneller Spiele entwickeln kann, als wenn ich C++ und SFML/OpenGL benutzen würde.

    Dann nimm doch eine Engine die C++ unterstützt!?
    Die gibt es doch wirklich reichlich, z.B. die Unreal- oder Cry-Engine.



  • hustbaer schrieb:

    ps: Ist mit Qt vermutlich auch nix anderes.

    Ja, man kommt mit Qt schnell an seine Grenzen. Wir haben schon alles mögliche in Qt intern umgebaut. Macht Updates natürlich viel schwieriger.
    Ich hatte solche Probleme mit WPF zumindest noch nie. Allerdings waren die Projekte auch nicht ansatzweise so komplex wie das, was wir mit Qt machen.



  • Je nach Layout kann man mit WPF mächtig Overdraw bekommen. Da läuft dann schnell mal der Grafikkartenlüfter auf der "semi-passiv" Karte an. Und mit CPU-integrierter Grafik ruckelts dann halt.


Anmelden zum Antworten