Was ist euer Statement, dass C++ so brutal schwierig sei?
Was ist euer Statement das C++ so brutal schwierig sei, wenn man mehr als hello world machen will ? Level: Hardcore.
1 Stimme
8 Antworten
Hallo. C++ hat mittlerweile eine längere Geschichte und ist das Produkt verschiedener Designentscheidungen. Wahrscheinlich ist das das Problem: Man versucht immer wieder, den schweren Tanker in eine Richtung weiterzuentwickeln, in der er für die schnelle Erledigung gängiger Routineaufgaben attraktiver wird. Dies erfordert jedoch tiefe Erweiterungen der Sprache bei gleichzeitiger Gewährleistung der Abwärtskompatibilität. Jeder, der schon einmal darüber nachgedacht hat, so etwas mit einem seiner eigenen Projekte zu machen, weiß, was das für ein Krampf sein kann.
Dennoch ist C++ kein inkonsistenter, aus der Luft gegriffener Unsinn. Es braucht nur etwas Gehirnschmalz, um zu verstehen, auf welcher Abstraktionsebene bestimmte Features realisiert sind. Und dann kommt es auf den Programmierer an, ob er einen bestimmten Standard tatsächlich stilsicher nutzen kann, ohne in die Falle zu tappen, etwas in einer Legacy-Manier zu tun, was die Sprache zwar ermöglicht, aber nicht dem Selbstverständnis des Designs entspricht.
Sogar C++ Lead Developers (Jahresgehalt in Deutschland 2021 bis etwa 62.000 EUR) geben zu, dass sie den aktuellsten C++ Standard nicht mehr in allen Details kennen oder gar täglich parat haben.
C++ und so manche merkwürdige Konstruktion in der Standard-Bibliothek dazu ist auf dem "Mist" von Leuten gewachsen, die fanatische OO-Puristen waren. Man denke nur an die STL (welche inzwischen gar nicht mehr so populär sein soll).
Anerkennenswert aber ist, dass moderne C++ Compiler den ANSI-Standard C mit unterstützen — und das in der Weise, dass man sich als Praktiker die selbst genutzte Teilmenge von C++ gut so zuschneiden kann, dass sie kaum mehr ist als C erweitert um das Klassenkonzept aus C++.
Wer diesen Weg tatsächlich geht, wird mit so einem Subset oft glücklicher sein als mit C# oder Java.
Die zukunftsträchtigste Programmiersprache scheint ganz klar C# zu sein, vor allem dann, wenn erreicht wird, dass sich C und C++ Code mühelos in C# Code einbetten lässt (was man ja anstrebt).
Der große Nachteil von Java ist, dass sich Java-Code nur schwer mit in C oder C++ geschriebenem Code integrieren lässt. Nachdem nun aber alle Rechte an Java Oracle gehören, wird sich das wohl auch nicht mehr ändern.
Betonköpfe mögen das so sehen - Praktiker, die nach möglichst flexibler Lösung suchen, sehen es anders.
Windooof wurde zum zocken erfunden, nicht zum programmieren... immer wieder lustig diese windoof "Programmierer" die es grad Mal schaffen ne variable zu deklarieren aber noch nie was von Speicherverwaltung gehört haben, macht ja allesdie runtime loool
Unsinn.
Satya Nadella (derzeitiger CEO von Microsoft) ist alles andere als doof. Pack dich besser an der eigenen Nase.
Was hat der CEO von Microsoft jetzt mit programmieren zu tun? Nix. Ausserdem nutzt Microsoft selbst Linux, weil die wissen das deren Produkt dafür nix taugt. 😂
Die Sprache C# wurde zwar von Microsoft definiert ist aber nicht auf Windows begrenzt.
Mit Mono gabs schon lange eine Linux Implementierung davon und seit DotnetCore läuft auch das offizielle Dotnet von Microsoft auf Linux.
Die Sprache an sich ist hald ähnlich wie Java.
...noch nie was von Speicherverwaltung gehört...
Unwissenheit mit Arroganz gepaart...😅
Was hat eine Programmiersprache mit dem Betriebssystem zu tun?
Im Prinzip ist es mir doch völlig Wurst für welche Plattform ich ein Programm schreibe. Die Speicherverwaltung wird vom jeweiligen Compiler/System und dessen Routinen übernommen.
Die Zeiten als jeder Programmierer auf eigene Faust im Speicher herumgepfuschte sind zum Glück vorbei. Ich kann mich noch mit Gänsehaut an die Zeiten erinnern, als Programme nach dem Beenden ihren "Dreck" zurückließen. (Das gabs auch unter Linux und Co)
Davon abgesehen kann ich auch noch heute unter jedem System an der Speicherverwaltung vorbei arbeiten....
dass sich Java-Code nur schwer mit in C oder C++ geschriebenem Code integrieren lässt. Nachdem nun aber alle Rechte an Java Oracle gehören, wird sich das wohl auch nicht mehr ändern.
Den Zusammenhang sehe ich nicht. Die Markenrechte von Java gehören Oracle, der Code ist Open Source.
Eines der aktivsten großen Projekte in Java befasst sich genau mit diesem Thema: https://openjdk.java.net/projects/panama/
Danke für den Link.
Dass als Java nur bezeichnet werden darf, was der Inhaber aller Rechte an der Marke Java als Java bezeichnet wissen möchte, hat man ja schon mal erlebt: Nur aus dem Zwang heraus entstand C# (was sich im Nachhinein als Vorteil erweist).
Nochmals danke für den Link.
Ganz besonders lehrreich finde ich folgenden Vortrag über das Java Native Interface: https://www.youtube.com/watch?v=cfxBrYud9KM
Der Schmutz kommt erst gar nicht bei mir drauf... wenn ich schon Java "Programmierer" lese werf ich die Bewerbung in die Papiertonne
Welche Bewerbung? Wie kommst Du auf die Idee, jemand würde sich bei Dir bewerben? 🤭 Kannst Du überhaupt einen Programmierer einstellen oder bezahlen? (Ich habe zB. einen Tagessatz von 4000€. Nicht , weil ich gierig bin, sondern um mir unliebsame Kunden vom Hals zu halten)
Bleib lieber bei Deinen üblichen Themen. Zu Politik kann jeder eine Meinung haben und äußern.
Auf dem Gebiet der Programmierung hast Du es mit Fachleuten zu tun, denen Du nicht das Wasser reichen kannst.
Fragen macht klüger, wenn man sich an guten Antworten und Erfahrungen nährt und sich nicht an eigene Meinung und Dogmen klammert.
Du lässt den Leuten, welche Antworten ja nicht mal eine Option, welche Deine These ablehnt!
@grtgrt und @JCMaxwell haben recht gute Erläuterungen auf eine unausgegorene Fragestellung geliefert.
Ich habe den gesamten Werdegang eines Programmierers, mit allen Irrungen und Wirrungen, von der Pike an durchgemacht. Angefangen mit purem Maschinencode, Assembler, Basica, GWBasic, Pascal, C, C++, Java, Javascript bis zu C#. Zwischendurch auch Exoten wie Ruby, Perl usw.
Wichtig war immer, das die Sprache die Anforderungen des Projektes erfüllt. C++ ist nicht schwerer oder leichter als jede andere Sprache. Was bringt es mir wenn ich ein Projekt in einer wunderbar "leichten" Sprache wie Delphi entwickeln will, aber mir keine passenden Bibliotheken zur Verfügung stehen? Dann habe ich einen riesen Aufwand die entsprechenden Schnittstellen zu schreiben.
...auf der anderen Seite gibt es auf ingenieurtechnischen Gebiet eine riesigen Fundus an Pascalroutinen, dann wäre es Schwachsinn kein Delphi einzusetzen, auch wenn diese Sprache heute kaum noch zeitgemäß erscheint.
Was die Geschwindigkeit der compilierten Programme angeht ist der Unterschied nur marginal.
Wenn Du C++ nur für "brutal schwierig" hältst, hast Du keine Ahnung vom Programmieren im Allgemeinen. Ich entwickle Programme/ Routinen erstmal komplett unabhängig von einer Sprache. In der Regel brauche ich dafür nicht einmal eine Computer. Mein Hirn, ein Bleistift und mein kleines Notizbuch (so ein Ding aus Papier) reichen völlig aus. Das Ganze ist Anfangs lediglich ein abstraktes Gerüst, welches man durch Recherche mit "Leben" füllt.
Nein C++ ist nicht schwer, wenn man sein Handwerk beherrscht. Bis dahin ist es eben nötig zu lernen. ...In meinem Fall 36 Jahre.
Die Grundlagen sind in jeder Sprache nahezu gleich. Es gibt keine großen Unterschiede in der Verwendung von Variablen, Schleifen, Abfragen. Letztlich nimmt eine hoch entwickelte Sprache wie C++ dem Programmierer den ganzen lästigen Verwaltungskram ab und er kann sich dem Wesentlichen widmen.
Ich muss mich nicht darum kümmern wie ein Fenster/ Objekt dargestellt wird/agiert, wo eine Variable im Speicher ihre Entsprechung findet oder welcher Prozessorkern welche Methode ausführt. Das übernimmt der Compiler oder die Laufzeitumgebung für mich.
Zu guter letzt, ist Deine Option "lahme Schnecken" ein Fehlschluss. Selbst Javascript arbeitet mit einem modernen JIT-Compiler und steht anderen Sprachen kaum noch nach.
Im Fazit ist Deine Fragestellung nichts weiter als eine Ausrede, welche bestenfalls Deinen Unwillen stützt etwas nicht zu lernen.
Ich hatte in den letzten Jahren eine Menge Leute hier, welche dem Irrglauben erlagen, Batch sei eine ganz toll einfache Sprache und schon an etwas Banalem wie der For-Schleife das Handtuch werfen mussten. (Vom übrigen inkonsistenten Regelwerk ganz zu schweigen). Dagegen ist C++ geradezu überschaubar.
Egal ob C++ , Javascript oder Batch, wichtig ist allein die Wahl des passenden Werkzeugs für ein Projekt. Für manches braucht es einen "Presslufthammer" für etwas Anderes einen Uhrmacherschraubenzieher....
Ich finde C++ ehrlichgesagt nicht sonderlich schwer. Die Libraries musst du nicht auswendig können dafür gibts ja Internetseiten oder gedruckte Dokus und die Grundlegende Sytanx ist nichts besonderes.
C++ ist nun mmal màchtigwr als andere Sprachen und bietet viel mehr Möglichkeiten der Optimierung an Details.
Das hat nun mal seinen Preis.
Andere Sprachen mögen einfacher sein, können dann aber eben nicht so viel.
Das liegt also in der Natur der Sache.
Csharp ist windooof Zeugs, welcher ->echte<- Programmierer nutzt sowas? Noch nie gesehen.