Entwickelt überhaupt noch einer beruflich mit C++?



  • thesenfilm schrieb:

    Ich behaupte mal, modernes C++ ist tot. ...

    ich hab zwar nur hobbymäßig mit C++ zu tun, aber ich neige dazu, solchen Glaskugel-Aussagen wenig Glauben zu schenken. Zu oft wurden schon Sachen totgesagt, die auch Jahrzehnte später noch aktuell sind (z.B. ABAP/4).
    Heute wird viel HTML5/JavaScript propagiert, obwohl man sich über die Schwächen von JavaScript durchaus im Klaren ist (ok, nicht immer). Wie sich das über die nächsten Jahre entwickeln wird, kann man nur schwer abschätzen. Auch für C++ kann man nicht abschließend beurteilen, wohin die Reise geht. Kann mich irren, aber kann man nicht auch schon mobile Apps mit C++ entwickeln bzw. gibt es nicht Pläne dazu?

    Was ich aber eigentlich sagen will: Erlerntes ist meist nicht vollkommen nutzlos. Selbst wenn du heute C++ lernst und in 10 Jahren niemand mehr was davon wissen will, erleichtert es dir ggfs. den Umstieg auf andere Sprachen. Und wirklich sichere Aussagen über die künftige Entwicklung in diesem Umfeld wirst du wohl auch nicht finden, auch wenn sicherlich zahlreiche "Experten" das zu wissen glauben.



  • @thesenfilm:
    Du bist für meinen Geschmack einem Hype erlegen.

    Browser (ohne JavaScript-Interpreter): Wird künftig wohl in JavaScript gemachst

    Glaub ich so nicht ganz. Eine Interpretersprache ist immer noch wesentlich langsamer als eine Compilersprache. Und wenn dann Späße wie 3D Unterstützung hinzukommen, würde ich definitiv nicht auf JavaScript bauen.

    Serverseite: Facebook will von C++ auf D wechseln, Google auf Go, gibt weitere Sprachen (z.B. Rust); ist nur eine Frage der Zeit, bis C++ da abgelöst wird.

    Ja, Hypefirmen setzen Hypeprogrammiersprache ein. Mal schauen wie lange es dauert bis sie wieder wechseln.

    Aber: Alte Besen kehren gut. Und so manche Firmen programmieren noch mit Cobol oder Fortan... Und so ein Projekt von Fortran auf D zu portieren kostete eine Menge Geld. Also warum sollte ich als Unternehmer auf eine neuen Sprache setzen, wenn es doch die alte noch tut. Die Sünden der Vergangenheit, rächen sich bis in alle Ewigkeit.

    - Oberflächen (Office, Videos, Schaltpläne, 3D-Modelle): Rendern kann die Grafikkarte, der Rest ist egal. Oberflächen gehen einfacher mit Reflection, C++ ist dafür jedenfalls nicht geeignet.

    Oberfläche mit Reflection? Ähh ja... Was hat denn Reflection mit Oberflächen zu tun? Und erkläre mir mal bitte wie das besser gehen soll als mit einer guten IDE, wo man die Oberfläche zusammenclickt, und per doppelclick auf den Eventcode kommt.

    ...



  • DieEntwicklung schrieb:

    $subject

    Ja. Hat aber bei mir nichts mit dem Web zu tun. Ich lasse Zeug berechnen. Einiges davon braucht viel RAM und/oder Zeit. Das Layout der Daten im Speicher ist da auch wichtig. Dafür ist mir C++ noch am liebsten von den Sprachen, mit denen ich Erfahrungen gesammelt habe.



  • DocShoe schrieb:

    Ich mache beruflich sowas Ähnliches wie C++, ist allerdings von Borland/Codegear/Embarcadero. Wird von denen auch C++ genannt, ist aber nicht mal zu sich selbst kompatibel und treibt einen wöchentlich zur Weißglut.

    Ah. Ein Leidensgenosse 🙂



  • thesenfilm schrieb:

    Ich behaupte mal, modernes C++ ist tot.

    Ich muss mich dem Grundtenor hier anschliessen. Ich vertrete die Meinung, "für jedes Problem die richtige Sprache". GUIs gehen einfacher mit C#. Debugging ist auch schöner mit C#. Allgemein ist man IMHO für BuntiKlicki eher bei C#. Bei Web eher bei Javascript. Und bei Algorithmen und allgemein überall wo es auf Performance ankommt bei C++ oder sogar noch tiefer (Assembler).

    z.B. ist es bei Steuergeräten für Massenprodukte (Autos, Kühlschränke, etc.) so, dass man erst mit einem "großen" Controller anfängt und wenn man sein Programm fertig hat und somit weiß welche Anforderungen an RAM, Flash, etc. wirklich nötig sind, exakt den Controller auswählt, der die Anforderungen gerade so erfüllt. Die wenigen Cent die sich pro Controller sparen lassen schlagen sich eben einfach über die große Anzahl der Produkte gehörig niedriger. Deswegen wird auch niemand, der bei Verstand ist, jetzt auf einmal dort Java oder so einsetzen, denn die "Grundanforderugen" sind einfach ein Vielfaches höher als von einem C++ Programm.

    Schon allein wegen solchen Anwendungen wird C/C++ auch auf lange Zeit nicht tot sein.



  • Morle schrieb:

    z.B. ist es bei Steuergeräten für Massenprodukte (Autos, Kühlschränke, etc.) so, dass man erst mit einem "großen" Controller anfängt und wenn man sein Programm fertig hat und somit weiß welche Anforderungen an RAM, Flash, etc. wirklich nötig sind, exakt den Controller auswählt, der die Anforderungen gerade so erfüllt. Die wenigen Cent die sich pro Controller sparen lassen schlagen sich eben einfach über die große Anzahl der Produkte gehörig niedriger. Deswegen wird auch niemand, der bei Verstand ist, jetzt auf einmal dort Java oder so einsetzen, denn die "Grundanforderugen" sind einfach ein Vielfaches höher als von einem C++ Programm.

    Und aus einem ähnlichen Grund laufen google, Facebook etc. alle auf einer C++ Basis. Wie Andrei Alexandrescu letztens mal gesagt hat: Wenn du es schaffst, bei Facebook 1% mehr Performance rauszuholen, hast du allein durch die damit gesparten Energiekosten eine Vielzahl an kompletten Jahresgehältern für dich und alle deine Kollegen reingeholt...



  • was wären denn die Alternativen, wenn es um die Programmierung von Libraries oder von hochperformanten großen Softwaresystemen geht?

    C++ hat mit C++11 gerade erst einen großen Sprung nach vorn gemacht, nicht nur, was den Programmierkomfort angeht.



  • Morle schrieb:

    z.B. ist es bei Steuergeräten für Massenprodukte (Autos, Kühlschränke, etc.) so, dass man erst mit einem "großen" Controller anfängt und wenn man sein Programm fertig hat und somit weiß welche Anforderungen an RAM, Flash, etc. wirklich nötig sind, exakt den Controller auswählt, der die Anforderungen gerade so erfüllt.

    Führt das nicht automatisch zu fettem Code?

    Wenn ich einen leistungsfähigen Chip habe, bei dem ich weiß, dass ich üppig Ressourcen zur Verfügung habe, dann programmiere ich doch sicher auch entsprechend, weil Zeit ja auch Geld kostet.
    Warum sollte man dann einen fertigen fetten dahingeschludderten Mockup noch optimieren, um einen noch viel kleineren Chip möglich zu machen?



  • großbuchstaben schrieb:

    was wären denn die Alternativen, wenn es um die Programmierung von Libraries oder von hochperformanten großen Softwaresystemen geht?

    Wenn es um Performance geht, dann wären die Alternativen alle Sprachen, die sich für die Systemprogrammierung eignen.

    Also C, C++, D, Pascal, Fortran, Ada usw..

    Bei großen Softwaresystemen würden dann von denen durch den Sieb fallen.
    D.h. einige Sprachen sind für Großprojekte nicht so gut geeignet.
    C gehört sicher dazu, obwohl es natürlich sehr viele Großprojekte gibt, die C aus historischen gewachsenen Gründen nutzen.



  • thesenfilm schrieb:

    - Serverseite: Facebook will von C++ auf D wechseln,

    Hast du dafür auch eine Quelle?

    - Spiele: Das Bottleneck ist künftig die Netwerkanbindung, Sprache spielt keine Rolle, sofern eine gute Grafikbibliothek bereitsteht.

    Und die wird worin geschrieben?



  • Schwach.
    Auf einem C++ Board mit mehreren tausend Mitgliedern haben sich gerade mal 7 Leute als berufliche C++ Progger geoutet.



  • Schorle schrieb:

    Wenn es um Performance geht, dann wären die Alternativen alle Sprachen, die sich für die Systemprogrammierung eignen. Also C, C++, D, Pascal, Fortran, Ada usw..

    wenn ich mir die Kombination (Verbreitung x Codebasis x Libraries x Performance x Großprojekt-Tauglichkeit x C-Kompatibilität) von C++ ansehe, scheinen mir Alternativen aber schon rarer zu werden.



  • Hallo,
    noch einer der professionell C++ programmiert hier!
    Server Anwendung im Telekom Bereich. Multi-Platform, Win/Linux.

    Wobei ich mich den Thesen von thesenfilm allerdings weitestgehend anschliesse.
    Ich stöbere regelmässig Jobangebote durch und da sieht es bei C++ sehr mager aus.
    Und das bessere und schönere C++ ist mit D ja eigentlich auch schon gefunden, wenn man's wirklich braucht. (imho)
    Oder anders gesagt: Wenn die Nachfrage nach Software im Kerngeschäft von C++ noch wirklich gross wäre, dann wäre D weiter verbreitet. 😉
    Die Wartung existierenden C++ Codes wird aber vermutlich noch Jahrzehnte anhalten.



  • volkard schrieb:

    Ob C++ lebt, wenn man als unregistrierter User im C++-Forum behauptet?
    Das ist einfach, ich zähle mal in diesem Thread:

    | reg | unreg 
    -----+-----+-----
    lebt |  6  |  2
    tot  |  0  |  3
    

    Und du?



  • Noch einer mit C++, Bereich Industrieautomatisierung, Testsysteme für den Automotive-Bereich.

    Windows C# und C++ (VS 2013 und 2010), Kollegen auch noch LabView.
    Linux (ARM und Intel) C und C++, bei mir gerade g++ 4.6.3 Debian-armhf.

    C++ begegnet mir in diversen Bereichen:

    Embeddedanwendungen im Auto, in Steuerungen und Messgeräten. Hier mal ein Interview mit jemanden von einem führenden deutschen Messtechnikhersteller:
    http://www.karriere-ing.de/arbeitswelt/article/105638/0/Gestern_Assembler_heute_CC/

    Gerade im embedded Bereich wird aber viel offshore entwickelt. Bei einem Steuergrät mit dem ich kürzlich zu tun hatte, war zwar alle Hardwareentwicklung und das Projektmanagement in D, die Softwareentwicklung aber in Moldawien.

    Viele Windows Software für den Automatisierungsbereich wird mindestens teilweise in C++ (oft zusammen mit C#) entwickelt, z.B. im SPS-Bereich bei Siemens oder Beckhoff, oder Robotersoftware bei Kuka. Kuka setzt z.B. ein Echtzeitbetriebssystem parallel zu Windows ein, bei solchen Sachen sind auch deutsche Anbieter führend
    http://www.acontis.com/
    http://www.kithara.de/

    Dann fällt mir der ganze CAD-Bereich ein. Die großen Systeme wie CATIA usw. sind alle in C++ geschrieben. Eigentlich kenne ich gar kein professionelles CAD was nicht in C++ geschrieben ist.

    Gibt diverse Systemhäuser in D, die in C++ Plugins für die großen ausländischen CAD-System entwickeln. Aber auch kleinere deutsche Anbieter im Bereich CAD oder Robotersimulation (Famos, EasyRob).

    Am CAD-Bereich hängt der ganze Bereich Koordinatenmessmaschinen und Laserscanner, da gibt es auch viel C++ (Leica, Zeiss, Steinbichler, Gom, ...)
    Leica Geosystems ist z.B. Förderer der Point Cloud Library
    http://www.pointclouds.org/about/

    Ähnlich wie beim CAD gibt es hier auch diverse Mittelständler in D, die Plugins für die großen Systeme der Branche in C++ entwickeln:
    http://www.innovmetric.com/polyworks/3D-scanners/home.aspx?lang=en
    http://www.duwe-3d.de/polyworks-software

    Es gibt eine ganze Menge Dinge die auch hierzulande in C++ gemacht werden, von Leuten, die hier nie auftauchen werden. Warum sollten sie auch.

    [Nachtrag]
    Die in der Industrie weit verbreitete Bildverarbeitungsbibliothek Halcon ist aus Deutschland und in C++ geschrieben
    http://www.mvtec.com/de

    Viele Unternehmen im Bereich Industrial/Automotive Communication arbeiten mit C++
    http://industrial.softing.com/de/produkte/funktionalitaet/software/opc-development-toolkits/opc-unified-architecture/windows/opc-ua-c-server-development-toolkits.html
    http://vector.com/



  • thesenfilm schrieb:

    - µC (Industriesteuerungen, Fahrerassistenzsysteme): Künftig mehr als genug Rechenpower, Sprache sollte Sicherheit vor Geschwindigkeit einstufen (d.h. kein UB).

    Bei Kleinserien, wie großen Industrieanlagen, spielen Hardwarekosten keine große Rolle. Hier war und ist Rechenleistung noch nie wirklich ein Problem.

    Bei großen Stückzahlen, wie im Auto, spielen die Hardwarekosten eine große Rolle. Spart man am uC 1€ ein und verkauft sein Steuergerät 1mio mal, dann hat man 1mio Euro mehr eingenommen.

    Da investiert man dann gerne mal 100k mehr in die Entwicklung und lässt die Leute in C programmieren damit die Anwendung auf dem viel zu kleinen uC läuft.



  • Auto-Progger schrieb:

    Bei großen Stückzahlen, wie im Auto, spielen die Hardwarekosten eine große Rolle. Spart man am uC 1€ ein und verkauft sein Steuergerät 1mio mal, dann hat man 1mio Euro mehr eingenommen.

    Da investiert man dann gerne mal 100k mehr in die Entwicklung und lässt die Leute in C programmieren damit die Anwendung auf dem viel zu kleinen uC läuft.

    Ja, aktuell lohnt sich das. Aber schau dir die Entwicklung an:

    \lim_{t\to\infty}\mathrm{Preis}_\mathrm{µC}(t)\to 0
    limtGehaltProgrammierer(t)\lim_{t\to\infty}\mathrm{Gehalt}_\mathrm{Programmierer}(t)\to \infty

    Mit anderen Worten: Je länger man wartet, desto weniger lohnt es sich, am Endgerät zu sparen. Ergo lohnt es sich immer weniger, in C zu entwickeln.

    Und selbst Facebook, wo selbst 1% Performance ein Jahresgehalt ausmachen kann entwickelt in hautpsächlich PHP. Und zwar, weil da mehr Entwickler verfügbar sind und schneller entwickelt werden kann.



  • thesenfilm schrieb:

    Und selbst Facebook, wo selbst 1% Performance ein Jahresgehalt ausmachen kann entwickelt in hautpsächlich PHP. Und zwar, weil da mehr Entwickler verfügbar sind und schneller entwickelt werden kann.

    Am Ende wirds doch wieder C++ (HipHop for PHP). Den ganzen langweiligen Scheiss ohne Herausforderung, den kann man ja von einem Scriptkiddie schreiben lassen. Die Programmierung für echte Männer, die wird dann in C++ erledigt. Eben damit die Scriptkiddies weiter arbeiten können. Vergleichbar zB mit einem Krankenhaus, wo der Chefarzt (C++ Entwickler) die Patienten rettet, damit die Zivis (gleichzusetzen mit den PHP Schreibern und alles was sich sonst noch so anmaßt "Programmierer" zu nennen) weiterhin Patienten haben, denen sie das Essen bringen und den Arsch abwischen können. Natürlich müssen und können nicht 50% der Angestellten in einem Krankenhaus Chefärzte sein. Genauso ist es aber auch bei den Softwareentwicklern. Ist aber auch gar nicht nötig, da ~98% der "Programmierer" überhaupt nicht die Skills haben, um wirklich wichtige Software zu entwickeln.



  • Am Ende wirds doch wieder C++ (HipHop for PHP). Den ganzen langweiligen Scheiss ohne Herausforderung, den kann man ja von einem Scriptkiddie schreiben lassen...

    👍

    Und am Ende kommt so guter Code heraus, das jede Form der Weiterentwicklung für den Arsch ist...

    @thesenfilm:
    Der Preis von Mikrokontrollern fällt nicht kontinuierlich, sondern er steigt am Ende des Supportzeitraums wieder an.

    Man setzt kleine Mikrokontroller auch deswegen ein, um Strom zu sparen, übermäßige Wärmeentwicklung zu verhindern und da sie robuster sind als ihre schnelleren Varianten.

    Was nutzt die ein schneller Kontroller, wenn er binnen einem Tag die Batterie frisst und dabei als Heizung dient? Wärme steht in diekten Zusammenhang zwischen der Empfindlichkeit/Lebensdauer eines Systems. Apropo Wärme: Mikrokontroller sind auch gerne etwas größeren Umwelteinflüssen ausgesetzt als ein PC's. So ein Auto muss schon Temperaturunterschiede von 40° verkraften. Und je schneller eine CPU ist, desto empfindlicher ist sie auch.

    Aus dem Grund setzt man kleinere Mikrokontroller ein. Und da stört die Entwicklung mit moderenen Programmiersprachen. Wohl auch da einige einen Garbage Collector aufweisen, und diese die Entwicklung von Echtzeitanwendungen verhindern.



  • Die ganze Argumentation ist doch fuern Arsch.


Anmelden zum Antworten