Gibt es immer weniger Leute, die sich mit C++ auskennen?



  • Ich habe so das Gefühl, dass es immer weniger wird, mit den Leuten, die sich mit C++ auskennen und dies auch in ihren Projekten anwenden. Auch im Kollegenkreis kenne ich kaum einen, der wirklich viel mit C++ zu tun hat. Da sind alle anderen Sprachen vertreten, aber C++ so gut wie nie und schon gar nicht bei neuen Projekten.

    Ich habe das Gefühl, dass man C++ meidet, wenn man es kann und das kann man wohl mittlerweile bei der Mehrzahl der Software-Projekte.



  • Ich würde sagen das ist wohl so.
    Es gibt nen Haufen Dinge die immer noch gerne bzw. sogar fast ausschliesslich mit C++ gemacht werden. Aber für den Grossteil der Softwareentwicklung, speziell Anwendungsentwicklung, ist C++ relativ uninteressant.



  • Grad irgendwelche Geschäftsanwendungen werden gerne mit Java oder C# oder sowas zusammengeklickt. Wieso? Naja Performance braucht man da nicht so extrem, und meistens arbeiten da auch sehr viele Leute mit, die keine/kaum Ahnung von Software-Entwicklung haben. z.B. Wirtschaftsinformatiekr doer BWL, die sich JAVA mal nebenbei beigebracht haben.



  • Kann ich als Student nicht unbedingt bestätigen. Es gibt zwar offensichtlich mehr Leute die Java kennen, einfach weil wir Java im ersten Semester gemacht haben, aber auch erstaunlich viele die C++ bevorzugen. (Nahezu alle die beide Sprachen können...) An der FH haben sie im zweiten Semester sogar eine relativ gute C++(11) Vorlesung gehabt, da war ich schon fast etwas neidisch. 🤡



  • Nun ja, aber Informatiker sind selten an der Programmierung beteiligt, sondern eher in der Planung, Forschung etc. Für das reine Entwickeln von Anwendersoftware braucht es keine Wissenschaftler, sondern Programmierer, sprich Fachinformatiker oder meist sind es auch Leute aus anderen Bereichen, die das einfach können und seit Jahren machen.

    Um API-Aufrufe von ein paar Frameworks zu verdrahten und einen DB zu entwickeln und und zu normalisieren brauch es wirklich keinen Informatiker. Das sind eher die, die die DBs entwerfen und Programmiersprachen etc. Also wirklich die harte Arbeite machen und auch können.

    Ich habe in meinem Berufsleben als Programmierer gerade zwei mal Informatiker als Kollegen gehabt. Einer war gerade mit dem Studium fertig und musste das Programmieren wirklich erst lernen. Der andere hatte sich die wichtigen Sachen auch nur neben dem Studium beigebracht, weil im Studium ganz anderen Themen gefragt waren, da ging es nur am Rande um die reine Softwareentwicklung.



  • Nun ja, aber Informatiker sind selten an der Programmierung beteiligt, sondern eher in der Planung, Forschung etc. Für das reine Entwickeln von Anwendersoftware braucht es keine Wissenschaftler, sondern Programmierer, sprich Fachinformatiker oder meist sind es auch Leute aus anderen Bereichen, die das einfach können und seit Jahren machen.

    Das ist schlichtweg falsch.

    brauch es wirklich keinen Informatiker

    Man brauchts im Prinzip nichts, nur Luft zum atmen.

    Rande um die reine Softwareentwicklung

    Was ist reine Softwareentwicklung? Wenn Suchen und Sortieren nicht dazugehoert, dann hast wahrscheinlich du eine falsche Vorstellung.



  • knivil schrieb:

    Rande um die reine Softwareentwicklung

    Was ist reine Softwareentwicklung? Wenn Suchen und Sortieren nicht dazugehoert, dann hast wahrscheinlich du eine falsche Vorstellung.

    Ich gehe eigentlich davon aus, dass "Sortieren koennen" nichts ist, was einen Informatiker speziell auszeichnet. Derartige Kenntnisse sollten auch zum Handwerkszeug von FIAEs und anderen Leuten, die sich mit Programmierung beschaeftigen, gehoeren.



  • knivil schrieb:

    Rande um die reine Softwareentwicklung

    Was ist reine Softwareentwicklung? Wenn Suchen und Sortieren nicht dazugehoert, dann hast wahrscheinlich du eine falsche Vorstellung.

    Auf den Unis werden gern immer wieder die ganzen Grundlagen unterrichtet. Wie die ganzen Algorithmen funktionieren etc.
    Das braucht man in der Anwendungsentwicklung quasi nie.

    Viel interessanter sind da Software-Design Dinge. Design-Patterns, diverse Idiome, Dependency-Management, wie man richtig dokumentiert, was eine robuste Implementierung auszeichnet, wie und wann man refactoren sollte uswusf.

    Wie viel man davon an den Unis/FHs mitbekommt weiss ich nicht.



  • Cppnichtmehrgefragt schrieb:

    Ich habe so das Gefühl, dass es immer weniger wird, mit den Leuten, die sich mit C++ auskennen und dies auch in ihren Projekten anwenden. Auch im Kollegenkreis kenne ich kaum einen, der wirklich viel mit C++ zu tun hat. Da sind alle anderen Sprachen vertreten, aber C++ so gut wie nie und schon gar nicht bei neuen Projekten.

    Ich habe das Gefühl, dass man C++ meidet, wenn man es kann und das kann man wohl mittlerweile bei der Mehrzahl der Software-Projekte.

    Naja, es werden mehr stumpfe Programme verlangt. Wolfram Alpha ist mir viel zu komplziert, kann es da keine App geben, die nur quadratische Gleichungen löst?



  • knivil schrieb:

    Rande um die reine Softwareentwicklung

    Was ist reine Softwareentwicklung? Wenn Suchen und Sortieren nicht dazugehoert, dann hast wahrscheinlich du eine falsche Vorstellung.

    Er meint wohl, dass heutzutage fertige API Implementierungen verwendet werden um eine Suche oder eine Sortierung durchzuführen, niemand mit Verstand programmiert heutzutage seinen Suchalgorithmus wie Quicksort & Co sofern er keinen Spezialfall behandeln muss selber, wenn es dafür in Java, C# usw. fertige Lösungen in der API gibt und da muss ich ihm Recht geben.

    Denn die Zeit, die du mit selber implementieren verschwendest treibt nur die Stundenzahl und somit die Kosten nach oben und deine Lösung ist dann noch lange nicht besser, als die, die Oracle mit der JRE liefert.
    Dazu kommt dann noch, dass es gerade bei so gewöhnlichen Anwendungsprogrammen ja auch kaum etwas bringt, da noch viel Zeit und Gehirnschmalz reinzustecken, denn das wird ja nicht bezahlt.

    Ein guter Software Entwickler ist heutzutage also genau dann gut, wenn er ohne viel darüber nachzudenken schnell weiß, welche fertigen API Funktionen er benötigt und welche dafür am besten geeignet erscheinen, sofern es mehrere Lösungsmöglichkeiten gibt und die fertigen pi Lösungen dann verwendet, anstatt das ganze Zeugs wieder von vorne im Alleingang zu programmieren.

    Natürlich schadet es nichts, wenn er die Hintergründe versteht und so etwas auch selber implementieren könnte, mit diesem Hintergrundwissen wird er gut einschätzen können, was nötig ist, aber er sollte es auf keinen Umständen selber implementieren, denn das ist zu teuer und wird auch in der Regel nicht bezahlt.



  • Zu 99,999999% hat man als Software-Entwickler nix mit dem zu tun was ein Informatiker gelehrt bekommt. Da braucht keiner wissen wie man durch einen B+-Baum traversiert, oder welche Grundlagen endliche Automaten haben. Auch muss ich nicht wissen wie man eine Datenbank programmiert, sondern wie man sie anwendet und welche speziellen Unterschiede es gibt.

    Das sind alles Erfahrungswerte mit konkreten Implementationen, die machen einen guten Entwickler aus und nicht ob er nun viel Wissen über die theoretische Informationsverarbeitung hat.

    Es gibt auch Fällen wo die absolut notwendig ist, aber die sind im Alltagsgeschäft soooo selten. Da kommt man mit Wissen über Programmiersprachen, Frameworks etc. viel weiter als mit der Kenntnisse über verschiedenen Suchalgorithmen. Bei Algorithmen, wenn man denn tatsächlich noch was selbst implementiert muss ich wissen wie die O-Notation in auf- oder absteigender Weise funktioniert(log, x^2, x!, etc.) und dann vergleiche ich die aktuellen Algos welcher da passen könnte und setze das um. So was habe ich schon als 15-Jähriger am Amiga in Assembler gemacht, da brauch ich kein Studium für.

    Bei den meisten Stellenbeschreibung brauch es kein Informatiker, sondern Leute die niederschreiben können was Kunden wollen und das mit vorhandenen Mitteln verdrahten. Nix davon lernt man an der Uni. Schließlich wollen die selten einen neuen Algo sehen, oder eine neue Programmiersprache oder Datenbank entwickelt haben. Sowas ist doch extrem selten, auch wenn es vorkommt.

    Für das Alltagsgeschäft braucht es keinen Informatiker. Ich hole mir auch keinen Mathematiker, wenn ich mal die Quadratmeter meine Wände ausrechnen will. Wenn die Wände Wölbungen haben ist das was anderes, aber in allen anderen Fällen ist da einfach kein Bedarf.

    Wer nicht studiert, kann sich ja mal Onlinevorlesungen anschauen. Die Themen sind sehr interessant und meist nicht all zu schwer, aber als Programmierer ist es allenfalls gut mal was von gehört zu haben. Die Erfahrung mit konkreten aktuellen Implementierungen von Frameworks, Sprachen, IDEs, Tools, Webservern, Betriebssysteme etc. ist viel viel viel wichtiger als zu wissen was der Unterschied zwischen Injection- und Quicksort ist. Und selbst das Wissen kann sich wirklich jeder aneignen.



  • InformatikerkeinCoder schrieb:

    Zu 99,999999% hat man als Software-Entwickler nix mit dem zu tun was ein Informatiker gelehrt bekommt.

    hoffentlich muß ich niemals eine Software warten, die jemand entworfen hat, der von so etwas überzeugt ist.

    präzises Denken und die Fähigkeit zur Verallgemeinerung resp. Abstraktion dürften wichtige Voraussetzungen sein, um Software zu entwerfen, die korrekt, wartbar, erweiterbar, mit anderen Worten: gut ist.

    Natürlich spielt auch Erfahrung eine wichtige Rolle, gerade beim Programmieren lernt man durch Fehler (vor allem durch Fehler, deren Auffindung mal ein durchgearbeitetes Wochenende gekostet hat) besonders rapide.



  • hab noch Effizienz vergessen, als weitere Eigenschaft guter Software.



  • Er meint wohl, dass heutzutage fertige API Implementierungen verwendet werden um eine Suche oder eine Sortierung durchzuführen, niemand mit Verstand programmiert heutzutage seinen

    Ich implemetiere gerade golden section search, weils nicht in einer Quasi-Standard-Bibliothek enthalten ist.

    Denn die Zeit, die du mit selber implementieren verschwendest treibt nur die Stundenzahl und somit die Kosten nach oben und deine Lösung ist dann noch lange nicht besser, als die, die Oracle mit der JRE liefert.

    Es gibt mehr Anwendungsbedarf als nur Datenbankanbindungen.

    Zu 99,999999% hat man als Software-Entwickler nix mit dem zu tun was ein Informatiker gelehrt bekommt.

    Das ist doch alles Bullshit. Beispiel Kommunikation mit eingebetteten Geraeten: Den Parser fuer den RS232-Stream habe ich als endlichen Automaten modelliert und implenetiert. Ach fehlertolerant soll das Protokoll auch noch sein ... war Teil meiner Vorlesungen. Mein Lieblingsbeispiel sind ja immernoch Sortiernetzwerke: VLIW-Architektur (128 Register), 8 Befehle parallel, swap_if direct als Instruktion unterstuetzt. Toll! Ach ja, es gibt eine C-Kompiler fuer diese Architektur, sonst nix.

    Bei den meisten Stellenbeschreibung brauch es kein Informatiker

    lol ... die meisten Stellen haben auch nichts mit Software zu tun.

    Die Themen sind sehr interessant und meist nicht all zu schwer

    Wenn sie aus dem Grundstudium sind, dann wohl nicht. Numerisches Loesen partieller Differentialgleichungen finde ich schon hart.

    aber als Programmierer ist es allenfalls gut mal was von gehört zu haben

    Ich bin Softwareentwickler.

    Und selbst das Wissen kann sich wirklich jeder aneignen.

    Immer diese leeren Aussagen. Auch hier sage ich: Nein, falsch. Jemand hat mich vor kurzem nach Greensfunktionen gefragt, dieser jemand wird es wahrscheinlich nie verstehen oder auch nur benutzen koennen.



  • knivil schrieb:

    Er meint wohl, dass heutzutage fertige API Implementierungen verwendet werden um eine Suche oder eine Sortierung durchzuführen, niemand mit Verstand programmiert heutzutage seinen

    Ich implemetiere gerade golden section search, weils nicht in einer Quasi-Standard-Bibliothek enthalten ist.

    Denn die Zeit, die du mit selber implementieren verschwendest treibt nur die Stundenzahl und somit die Kosten nach oben und deine Lösung ist dann noch lange nicht besser, als die, die Oracle mit der JRE liefert.

    Es gibt mehr Anwendungsbedarf als nur Datenbankanbindungen.

    JA und was genau programmierst du nun?

    Sicher keine Oberfläche für die Gehaltsabrechnung.
    Also etwas spezielles, wo es nicht anders geht, genau wie ich sagte.



  • Sicher keine Oberfläche für die Gehaltsabrechnung. Also etwas spezielles, wo es nicht anders geht, genau wie ich sagte.

    Ach was denkst du denn, was Softwareentwicklung ist? Oberflaechen fuer Gehaltsabrechnung nicht. Aber Oberflaechen muss ich auch entwerfen, beispielsweise als GUI fuer Gereate Tests, die nicht-Informatiker intuitiv verstehen und benutzen koennen.



  • Ist schon witzig wie immer jeder glaubt dass alle das machen was er auch macht. Dass die meisten Stellen genau die Kenntnisse erfordern die er auch hat bzw. für seinen Job braucht.



  • Dass die meisten Stellen genau die Kenntnisse erfordern die er auch hat bzw. für seinen Job braucht.

    Normalerweise hat man in seinem Leben mehrere Anstellungen. Im naechsten Job brauche ich vielleicht Datenbanken. Aber Aussagen wie 99.9... sind einfach nur Mist. Als Gegenbeispiel diene ich und es gibt mehr als nur mich.

    Wenn man im Beruf spaeter nix von der Informatikausbildung macht oder braucht, wozu studiert man es dann?



  • Cppnichtmehrgefragt schrieb:

    Ich habe so das Gefühl, dass es immer weniger wird, mit den Leuten, die sich mit C++ auskennen und dies auch in ihren Projekten anwenden.

    Bei uns gab es vor drei Jahren die Frage, auf mehr .NET mit C# zu setzen oder einen neuen Bereich in C++ zu programmieren. Ursprünglich war der Plan, deutlich mehr mit C# zu machen. Die neuen Libs entstehen aber in C++, C# wird eigentlich nur noch für die GUI verwendet.

    Cppnichtmehrgefragt schrieb:

    Ich habe das Gefühl, dass man C++ meidet, wenn man es kann und das kann man wohl mittlerweile bei der Mehrzahl der Software-Projekte.

    Das kann durchaus sein, Java ist noch stark, C# ist prinzipiell auch keine schlechte Sprache. Allerdings finde ich schon, dass C++11 einen guten Schub gebracht hat.

    Bei mir im Forum fragte kürzlich jemand, wie man denn Libs in C++ findet, ob es da ein Verzeichnis wie CPAN gibt? An solchen Fragen scheitern manche. In anderen Sprachen wird vieles mitgeliefert. C++ wirkt auf viele erstmal sehr kompliziert und klein, die Vorteile von C++ erkennt man häufig erst, wenn man über viel Programmiererfahrung verfügt. Die Anzahl derer, die über viel Programmiererfahrung verfügen ist aber eben nie die große Masse.

    C++ wird vielleicht eine Nische werden, aber es wird immer eine besondere Nische sein. Und da wird man auch sehr genau wissen, was man an C++ hat. Man muss aber klar sagen, dass das Zusammenklicken von Masken für eine Datenbank schon seit 10 Jahren machbar ist, ohne eine Zeile Code zu schreiben. Dafür braucht man aber auch keinen Entwickler. Als echter Entwickler befindet man sich ja häufig bereits in einer Nische.
    Wir entwickeln hier einen 3D-Anwendung: Konstruktion und Verrechnung von 3D-Objekten/IO/Visualisierung. Das klickt man eben nicht zusammen. Das macht aber eben auch nicht jeder.



  • hustbaer schrieb:

    Ist schon witzig wie immer jeder glaubt dass alle das machen was er auch macht. Dass die meisten Stellen genau die Kenntnisse erfordern die er auch hat bzw. für seinen Job braucht.

    Es war von Anwendungssoftware die rede, er schrieb:
    http://www.c-plusplus.net/forum/p2360940#2360940

    Wer für µC programmiert braucht natürlich dieses Wissen, da stört die fette API, aber das ist eben keine Anwendungssoftware.
    Und das ESP im Auto ist auch keine.

    knivil sollte also beim Thema bleiben, wenn er unter Anwendungssoftware etwas ganz anderes versteht, als es die meisten tun.


Log in to reply