Rosige Zukunft für C++ Entwickler?!



  • asc schrieb:

    Und das selbstfahrende Auto gibt es leider noch nicht.

    Jetzt überlege nochmal was Automobil wohl heißt ... SCNR

    Im Moment sehe ich eigentlich einen kleinen aber stabilen Markt für C++.



  • Tyrdal schrieb:

    asc schrieb:

    Und das selbstfahrende Auto gibt es leider noch nicht.

    Jetzt überlege nochmal was Automobil wohl heißt ... SCNR

    Wie bitte?



  • Tyrdal schrieb:

    asc schrieb:

    Und das selbstfahrende Auto gibt es leider noch nicht.

    Jetzt überlege nochmal was Automobil wohl heißt ... SCNR

    LOL! Automobil seht für sich selbst bewegend. Also das kein Pferd vorne das Ding bewegen muss.

    Mit selbstständig fahren (autonom) hat das nichts zu tun. 🙂



  • Artchi schrieb:

    Mit selbstständig fahren (autonom) hat das nichts zu tun. 🙂

    Jajaja... Man kann ein Haar längs als auch quer spalten. Im Kontext sollte mein Fehler dennoch verstanden wurden sein 😉



  • Na ich weiß nicht ob intelligente Haushaltsgeräte den Bedarf an C++ Entwicklern in die Höhe treiben wird.
    Software für Mikrocontroller braucht man nicht erst seit neuem. Auch eine altmodische Kaffemaschine die nicht über Wlan mit dem Internet kommuniziert hat programmierte Mikrocontroller.
    Die Leute in den Unternehmen die bisher diese Chips altmodisch programmiert haben werden auch die neuen Varianten programmieren. Ich glaube nicht dass der Bedarf an neuen Arbeitskräften großartig steigen wird. Es wird wohl einfacher sein die bestehenden Fachkräfte bei Bedarf auf Seminare zu schicken.

    Hinzu kommt dass vieles davon immer noch Fiktion ist. Ob dann in einigen Jahren wirklich fast jedes Haushalt intelligente Kühlschränke, Kaffeemaschinen und Waschmaschinen haben wird ist durchaus fragwürdig.

    Außerdem sollte man nicht vergessen dass viele Elektrogeräte in Asien produziert werden. Nach Möglichkeit werden auch westliche Unternehmen versuchen die Software in Asien billiger entwickel zu lassen.

    Und was Industrie 4.0 angeht würde ich da auch in Frage stellen ob man damit mehr C++ Programme braucht als vorher.
    Auch ohne Industrie 4.0 Trend musste man Software für die Maschinen entwickeln, in der Branche sitzen also auch schon die notwendigen Leute.
    Und Industrie 4.0 bedeutet auch klassische Anwendungsentwicklung. Oft geht es da um Netzwerke eine hohe Abstraktion der Produktionslogik. Im Kern der Maschinen werden weiterhin C/C++ artige Programme laufen aber der ganze Netzwerkkram, die Logik kann man bedenkenlos weiterhin auch mit Java und C# umsetzen.
    Man will dafür sogar Web und App Anwendungen entwickeln. Dann sieht der Chef Zuhause über sein Tablet ob und wie die Produktion läuft. Für diese Anwendungen braucht man App und Web Entwickler.

    Auch für für die intelligenten Hausgeräte braucht man oft Apps und Webanwendungen.

    So gesehen werden die Hersteller eher Programmierer suchen die Apps und Weboberflächen entwickeln können, statt ihre bereits vorhandenen Embedded Entwickler zu ersetzen.

    Man wird weiter C++ brauchen aber eine neue goldene Zeit sehe ich nicht wirklich. Zu viele Faktoren relativieren die Sache.

    Im schlimmsten Fall nimmt die Leistungsfähigkeit der Chips immer drastischer zu bei sinkenden Stückkosten. So dass der Einsatz effektiver Sprachen wie C und C++ immer weniger zwingend wird.
    Gut möglich dass man in Zukunft fast in jeden Mikrocontroller ein fertiges Embedded OS installiert und dann mit einfachen und extrem komfortablen Scriptsprachen arbeitet.



  • wenn Computer nicht mehr so zügig schneller werden wie früher, aber die Ansprüche der Software an Geschwindigkeit weiter zunehmen - könnte dann nicht irgendwann eine Zeit anbrechen, in der man für jedes Quäntchen mehr an Tempo dankbar sein wird und aus diesem Grund hardwarenahe Sprachen wie C/C++ oder sogar Assembler in der Library- und Anwendungsprogrammierung aufblühen?



  • Der Massenmarkt der Computer Nutzer wäre mit der heutigen Rechenleistung eigentlich für lange Zeit bedient.
    Im Internet surfen, Musik und Videos konsumieren, Texte bearbeiten. Diese Aufgaben benötigen nicht so schnell immer mehr Leistung.
    Man kann diese Aufgaben auch auf einem 10 Jahre alten Rechner erledigen oder auf einem noch älteren.
    Viele tun dass mit ihren Smartphones und deren Leistung ist im Vergleich zu aktueller Computer Hardware deutlich niedriger.

    Es gibt aber einen Bereich der nicht satt wird: Spiele. Trotz allem Fortschritt und auch wenn Grafikwelten heute schöner aussehen als jemals zuvor.
    Es ist extrem viel Luft nach oben offen. Man kann heute locker ein Spiel entwickeln dass auch die beste Grafikkarte vollkommen überlastet.
    Deswegen müssen Spiele immer noch sehr viele Einschränkungen und Tricks anwenden um spielbar zu bleiben.

    Das rührt daher dass Spiele oft eine Modellierung unserer Realität ist. Man will idealerweise dass ein Spiel so fein, glaubwürdig und fotorealistisch wird dass es von der Wirklichkeit nicht zu unterscheiden ist.
    Und dafür braucht man neben dem Entwicklungsaufwand Unmengen an Rechenpower.

    Deswegen ist der Spielemarkt die Branche die bisher jede aktuelle Hardware ausreizt.
    Und oh Wunder die Spieleengines sind dominiert von C/C++/Assembler.



  • @User8383484

    Der Massenmarkt der Computer Nutzer wäre mit der heutigen Rechenleistung eigentlich für lange Zeit bedient.
    Im Internet surfen, Musik und Videos konsumieren, Texte bearbeiten. Diese Aufgaben benötigen nicht so schnell immer mehr Leistung

    das ist gerade der Bereich der am meisten von C/C++ profitiert und der ständig mehr Geschwindigkeit fordert - Chrome z.B. besteht aus ein paar Mio Zeilen C++ und ganze Video-Decoding auch, die Javascript-Engines sind auch in C++ geschrieben, das wäre ohne C/C++ und die granulare Verwaltung von Resourcen wie es C/C++ erzwingt gar nicht machbar oder viel weniger performant

    bei Spielen geben ich dir 100% recht - aber der Internet-Bereich ist definitiv die anderen 50% - auch wenn das die meisten gar nicht wahr nehmen



  • Vieles wird heute in ASICs implementiert, besonders auf mobilen Geräten (inkl. Notebooks) um Performance in Chips und nicht Software auszulagern. Deshalb sehe ich den Bedarf auf Consumer-Software gar nicht, das schnellster Code wichtig werden soll. Es wird nur noch gescriptet, den Rest macht ein ASIC (Cryptographie, 3D, Bild-Manipulation, Spracherkennung, Sprachausgabe usw.).

    Und mit dem ganzen Cloud-Gedöns wird C++ auf Consumer-Geräten noch unwichtiger.
    Jetzt könnte man sagen, auf Cloud-Seite wäre C++ ja dann wichtig. Nur komisch das die ganzen Cloud-Anbieter (AWS, Google, Azure usw.) immer nur VM-Sprachen bewerben. Weil die dann einfach nur ein paar Server mehr hinstellen, ist billiger als C++-Code zu optimieren.



  • Vieles wird heute in ASICs implementiert

    einiges - vor allem das was es schon als ASIC gibt sonst ist die
    Entwicklung viel zu teuer

    Bild-Manipulation, Spracherkennung, Sprachausgabe usw

    die wohl eher nicht

    es ist noch erstaunlich viel auf Software basierend - oder warum denkst du
    das die heutigen Handys Dualcores usw. mit GHz fahren? Weil alles so schön mit ASICs abgedeckt wird?



  • Asics sind außerdem so schlecht zu updaten ...



  • Asics sind außerdem so schlecht zu updaten ...

    danke für DAS Hauptargument

    sorry Artchi damit schrumpft der Anteil an ASICs und dein Erfahrungswisse
    noch weiter

    mehr als die Mobilkommunikation, GPS, Lagesensoren, Display-Steuerung usw. wird wohl nicht in Hardware erledigt



  • und so allgemeint - wir benutzen doch kaum Software die NICHT in C++ geschrieben ist

    Java/.Net-VMs
    SQL-Server und viele andere DBs
    VStudio
    Office
    so gut wie alle Spiele am Markt
    Windows und fast alle Default-Tools (ausser Kernel)
    Chrome
    Firefox
    Skype
    TeamViewer
    TeamSpeak

    und das sind nicht alles alte Tools oder welche die nicht weiter entwickelt werden sondern Bedarf an C++ Features haben



  • Es gibt aber auch FPGAs. Die sind konfigurierbar. Sie sind noch nicht so klein und schnell wie ASICS aber die Entwicklung geht immer weiter.

    Manche erwarten dass eine Art FPGA Technologie in Zukunft den Weg in die Prozessoren findet. Ein Prozessor soll dann bekannte Algorithmen oder häufige Aufgaben dann automatisch oder über Libs auf den FPGA Teil der CPU verlagern können.

    Aber noch sind leistungsfähige FPGAs teuer. Aber könnte sich ja ändern. Ich denke flexible nicht fix verbundene Transistoren werden in der Zukunft sicher noch eine große Rolle spielen. Auch im Bereich der KI Forschung und neuronalen Algorithmen.



  • klar gibt es FPGAs (und kleinere werden kommen)

    aber die sind wieder viel schwieriger zu programmieren - und von imperativ/functional/Software zu Hardware ist keine trivial Transformation

    deswegen machen das auch nur wenige in sehr speziellen Bereichen, vergleichbar mit GPU Programmierung - da bekommst du auch nicht mal eben Performanz mit eine bisschen Aufwand geschenkt (wenn dein Algorithmus nicht sowiso schon trivial parallelisierbar ist)

    ich glaube nicht das dort die Zukunft liegt - FPGAs sind ja auch nicht erst ein paar Jahre alt

    und die trotzdem werden die Software-Anforderungen weiter steigen - auch wenn dann kleinere FPGAs oder ASICs die ganz grossen Aufgaben machen, die Anforderungen steigen und steigen immer weiter bis das Handy dann ein Holodeck erschaffen kann - es gibt keine jetzt-reicht-es-Grenze nach oben

    solange keiner einen Super-Mini-Rechner baut der kaum Strom braucht und unberegrenzte Leistung wird es bedarf an Sprachen geben die schnellen/kleinen/Resourcen sparenden Code erzeugen können



  • @Gast3

    Da hast du nicht wirklich Unrecht. Trotzdem sind einzelne Recheneinheiten ob in Form von ASICS wie in Grafikchips oder FPGAs ein Faktor der die Leistungsfähigkeit von Rechenmaschinen beeinflussen wird.
    Die Zahl der CPU Kerne wächst immer weiter und Grafikchips können nicht nur Grafiken berechnen.

    Während die Anzahl von Recheneinheiten in CPU und GPU immer weiter ansteigt gibt es für einzelne Recheneinheiten nur noch begrenzte Steigerungsmöglichkeit in der Taktrate.

    Aber ich glaube auch nicht dass diese Form der Leistungssteigerungen dazu führen werden dass man keinen großen Wert mehr auf performanten Software legt.



  • Gast3 schrieb:

    solange keiner einen Super-Mini-Rechner baut der kaum Strom braucht und unberegrenzte Leistung wird es bedarf an Sprachen geben die schnellen/kleinen/Resourcen sparenden Code erzeugen können

    Eigentlich schon. Aber für Android war der Einsatz von Java für sämtliche Apps anscheinend kein Widerspruch mit den Anforderungen mobiler Geräte.
    Obwohl man meinen könnte dass solche Geräte besser mit C++ Anwendungen fahren würden. Weniger Akkuverbrauch und performanter.
    Aber vermutlich hat man sich für Java aufgrund der Verbreitung entschieden. Damit eine möglichst große Armee von Java Entwicklern massenweise Apps für Android entwickeln konnte.

    Man hat jedenfalls gesehen es geht und ging ohne C++. In großen Teilen jedenfalls.



  • Aber für Android war der Einsatz von Java für sämtliche Apps anscheinend kein Widerspruch mit den Anforderungen mobiler Geräte.

    Doch, ists trotzdem ...

    Android bringt halt als default Windows System was mit, was komplett auf xml und Java aufbaut. Reine native C/C++ Anwendungen sind halt einfach nur sch... zu implementieren, weil alles oberhalb vom primitiven Framebuffer server in java realisiert ist. Und auf Events die da laufen musst schon reagieren.

    Aber Performant gehen Dinge damit wirklich nicht.
    Mach mal ne eigene Sensorfusion mit nem gescheiten Filter latenzarm auf Java-basis 🙂
    simples Rendern mit JOGL als performanz nachweis zählt ned, weil Opengl ansteuern kann jede Sprache die C Support mitbringt 🙂 Aber sobald es komplexer wird, ab in ne eigene shared lib und brav die Systemevents von der java app in die lib weiterleiten.

    Allerdings gibts da grad für die Brücke zwischen den Welten (java -> c/c++) nen Tool Support, da träumt man fast als Desktop entwickler ^^
    Verheirate mal Java und ne native dll auf VS/NetBeans/Eclipse/IntelliJ aufm Desktop und zum Vergleich dazu aufm Android SDK
    (oder ich bin zu blöd zu bzw geh aufm Desktop von der falschen Seite ran)

    Dann schau dir mal die ganzen schoenen tollen Java Bibs an, die haben fast alle eine oder mehrere .so im Hintergrund laufen.



  • blubbi12 schrieb:

    Obwohl man meinen könnte dass solche Geräte besser mit C++ Anwendungen fahren würden. Weniger Akkuverbrauch und performanter.

    Ist auch so. Die Frage ist immer nur ob es nicht mit langsamer/weniger effizient auch immer noch gut genug ist.

    blubbi12 schrieb:

    Aber vermutlich hat man sich für Java aufgrund der Verbreitung entschieden. Damit eine möglichst große Armee von Java Entwicklern massenweise Apps für Android entwickeln konnte.

    Ich würde schätzen dass auch die bessere Sicherheit von Java ne Rolle spielt (mach mal nen Buffer-Overflow Exploit mit ner Java-Applikation) und auch dass Java angenehmer/einfacher/schneller zu schreiben ist => spart Entwicklungszeit.



  • "Meine Meinung zu dem Thema ist, dass die Zukunft für C++ (Entwickler) rosiger denn je ist. Denn dort wo Stückzahlen und die Kosten für Hardware ein Faktor sind, sehe ich aktuell enormes Wachstumspotenzial. Seien es die Bereiche autonomes fahren"

    --> wir auch suchen gerade Senior C++ Entwickler in Berlin. AAI testet die Software von selbst fahrenden Autos in einer 3D Simulationsumgebung.

    https://jobs.lever.co/automotive-ai