Rosige Zukunft für C++ Entwickler?!
-
starseed84 schrieb:
hier muss ich ein klein wenig widersprechen. Die Embedded Welt befindet sich seit einiger Zeit im Wandel. Design-Patterns und moderne Architekturen sind hier keine Seltenheit mehr, ganz im Gegenteil. Eine typische Embedded-Anwendung ist bei uns heute komplett von Entwurfsmustern und gängigen Architekturen durchzogen.
Gut, ich hinke was embedded angeht der Zeit etwas zurück, bzw. kenne nur sehr wenige Embedded-Programmierer (und die stammen zumeist aus der von dir genannten E-Techniker Fraktion) bei denen sich die Anforderungen noch weit von denen eines Anwendungsprogrammierers unterscheiden.
starseed84 schrieb:
Wo es stark divergiert ist tatsächlich, wie von dir bereits erwähnt, das "Außenrum" um die Anwendung. Der Embedded Entwickler kennt sich z.b. mit PWM aus, wo sich der Anwendungsentwickler mit SQL auskennt (usw.usf.). Der eine Sitzt hier eben öfter mit dem Oszilloskop am Schreibtisch, der andere mit dem Datenbank-Analyse-Tool. Beides anspruchsvolle Dinge
Aber wenn ich es richtig heraus höre, sind die Unterschiede inzwischen weitaus geringer geworden, als noch vor ein paar Jahren. Könnte bedeuten das die Hürde für den gegenseitigen Wechsel des Bereiches niedriger ist (bzw. man es vielleicht überhaupt in Erwägung ziehen könnte*).
* Wenn nicht andere Kriterien dagegen sprechen. Die Firmen im Embedded-Bereich, die ich noch einigermaßen aktuell kenne, sind sehr Außendienstlastig. Sprich man muss schon Spaß daran haben regelmäßig lange strecken zu fahren.
-
Ich denke auch, dass man Embedded zumindest nicht kategorisch ausschließen sollte wobei ich schon acht geben würde, nicht in so eine Legacy-Firma zu kommen, in der man (hauptsächlich) die Sünden anderer ausbaden darf...
Wegen der Außeneinsätze:
Ich fahre ein paar mal im Jahr zu Workshops und zu Kundenterminen und empfinde das sogar als ganz angenehme Abwechslung zum Büroalltag. (Sagen wir mal 20 Tage im Jahr, ganz grob).Ein ehemaliger Studienkollege, seines Zeichens Anwendungsentwickler für C++, der ist fast ausschließlich unterwegs, weil er an einem System für Fertigungsstraßen mit entwickelt.
Kann man also auch nicht pauschalisieren da hilft nur, Augen auf bei der Job-Suche
-
starseed84 schrieb:
...Ich fahre ein paar mal im Jahr zu Workshops und zu Kundenterminen und empfinde das sogar als ganz angenehme Abwechslung zum Büroalltag.
Es mag eine angenehme Abwechslung sein, aber nicht wenn man sich hinter dem Steuer verkrampft - Und leider tendieren Kunden und Firmen nicht dazu, immer an einem Bahnhof zu liegen Und das selbstfahrende Auto gibt es leider noch nicht.
-
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 Leistungdas 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 teuerBild-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 weitermehr 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
TeamSpeakund 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.