[gelöscht]
Was haltet ihr von der Programmiersprache C++?
Mit der Zeit hat es deutlich Anteile am Markt verloren. Aber ist immer noch sehr stark präsent.
Es gibt aber auch Leute die behaupten C++ sei eine tote Sprache und die gegenwärtige Nutzung wäre damit zu erklären weil es noch viel C++ Code und Entwickler gibt.
Manche halten C++ für veraltet, dabei werden die Neuerungen ab C++11 entweder ignoriert oder sogar als eine negative Entwicklung bezeichnet, wodurch die Sprache noch komplizierter und chaotischer geworden wäre.
Richtig daran ist das C++ einen nicht zwingt die modernen Konzepte und Funktionen zu nutzen, man kann damit immer noch so programmieren wie ausschließlich vor 20 Jahren. Aber wenn man sich auf die modernen Alternativen stützt hat man eigentlich immer noch eine moderne Sprache vor sich. Was denkt ihr?
Und C++ existiert ganz sicher nicht wegen der Altenpflege von altem Code. Ein Blick in die Welt leistungsfähiger Game Engines zeigt mir dass diese Programme aus C++ Code bestehen die nur paar Jahre alt sind. C++ ist immer noch Teil sehr moderner Software. Gerade die breite Nutzung von C++ in der Spieleindustrie zeigt welchen modernen Ansprüchen C++ immer noch genügt.
Es ist verständlich dass diese Leistungsfähigkeit in Büroanwendungen nicht in hohem Maß gefragt ist und man lieber zu Sprachen tendiert die man zumindest subjektiv zu einem bestimmten Zeitpunkt im Vergleich als einfacher betrachtet hat.
Hinzu kommt dass es heute schlicht viel mehr Sprachen gibt als früher. Viele Sprachen sind für bestimmte Bereiche und Aufgaben angepasst.
Es ist also ziemlich normal das C und C++ über die Jahre an Anteile verloren haben. Ich glaube nicht dass dies das Ende von C++ ankündigt. Vielmehr nutzt man C++ heute meistens dort wo es auch am besten geeignet ist. Wobei ich mich aber frage ob diese Ansichten nicht auch schon 5 oder 10 Jahre zu alt sind? Nimmt man die Neuerungen von C++ bis C++20, lässt sich dann auch noch sagen dass Büroanwendungen mit Java einfacher sind als mit C++?
Wenn ich an so tolle Frameworks wie QT denke muss ich eigentlich sagen dass kaum etwas dagegen spricht Desktop Anwendungen mit C++ zu entwickeln.
Ein anderer Bereich wo C++ kaum zu verdrängen ist, ist der Embedded Bereich. In diesem Bereich herrschen C und C++. Wo Rechenpower und Speicherplatz begrenzt sind und einen starken Einfluss auf die Preisentwicklung des fertigen Produkts haben kann man nicht so etwas wie Java nehmen oder JavaScript (es gibt einige Entwicklerboards für Anfänger die sich mit JavaScript/nodejs programmieren lassen).
Es gibt zwar immer leistungsfähigere Mikrocontroller und Speicherplatz wird immer günstiger, diese Entwicklung wird aber eher den Anteil von C++ gegenüber C anheben.
stefanhusmann
Es ist ein seltsames Phänomen, dass gerade die meist gehassten Sprachen (C, C++, Java, PHP), für die es angeblich so viel bessere, modernere, überlegene Alternativen gibt, in der Praxis immer noch die meistgenutzten Sprachen sind. Möglicherweise sind sie gerade deshalb die meistgehasten Sprachen, weil sie auch die meistverwendeten sind.
Wobei ich hauptsächlich über den Open Source-Bereich und die dort vorhandenen Großobjekte rede, da mir der Überblick fehlt, und ich auch nicht professionell programmiere. So etwas wie Inkscape, Libreoffice oder Gimp "mal eben" in z.B. Rust neu zu programmieren, tut sich dann doch keiner an, und den alten Code wegwerfen will auch keiner.
Grundsätzlich teile ich daher deine Ansicht.
[gelöscht]
stefanhusmann schriebEs ist ein seltsames Phänomen, dass gerade die meist gehassten Sprachen (C, C++, Java, PHP), für die es angeblich so viel bessere, modernere, überlegene Alternativen gibt, in der Praxis immer noch die meistgenutzten Sprachen sind. Möglicherweise sind sie gerade deshalb die meistgehasten Sprachen, weil sie auch die meistverwendeten sind.
Könnte sein. Subkulturen und die typische Motivation dahinter gibt es auch in der IT. Manche legen Wert darauf anders als der Mainstream zu sein. Subjektiv wird dass zwar mit teilweise zutreffenden sachlichen Argumenten untermauert, aber manchmal merkt man dass das Hauptmotiv die Abgrenzung zum normalen ist.
Typische Argumente sind Sprachen wie C, C++, PHP oder Java wären deswegen so verbreitet weil sie vorher da waren, viele Leute es gut beherrschen und es viel Code davon gibt dass man pflegen und vorteilhaft nutzen kann. Deswegen würde die neue und bessere Programmiersprache noch ein Nischendasein genießen aber mit der Zeit werde es sich durch seine Vorteile durchsetzen.
Meine Meinung dazu ist dass das zum Teil der Wahrheit entspricht und ein völlig normaler Vorgang ist. Etwas dass die meisten nutzen muss nicht besser sein als eine neue und von einer Minderheit genutzten Sprache. Auf der anderen Seite ist es äußerst unwahrscheinlich dass sämtliche neuen Programmiersprache die es so gibt sich alle irgendwann durchsetzen werden. Wahrscheinlicher ist dass die meisten oder sehr viele sich nicht durchsetzen werden. Weil sie neben der subjektiven Wahrnehmung oder dem Motiv einer Subkultur nicht wirklich echte Vorteile bieten und weil es einfach zu viele sind um sich alle durchzusetzen.
stefu
Moin!
Ich bin Pragmatiker - ich nutze das, was funktioniert und ich kenne.
Wenn dass, was ich kenne nicht für ein Problem funktioniert, lerne ich etwas Neues.
Die Diskussionen darüber ob C noch aktuell sei oder nicht finde ich zwar immer wieder anregend, doch nicht fruchtbringend.
C - sowie auch C++ - sind Programmiersprachen, die nicht ohne Grund erfolgreich sind. Sie decken einen immens großen Anteil dessen, was benötigt wird ab.
Ich selber lernte Pascal und BASIC. Etwas PHP. Das war es.
Damit kam ich bis jetzt durchs Leben. Insbesondere Visual BASIC unter Windows via Visual Studio hielt mich davon ab andere Sprachen überhaupt in Erwägung zu ziehen - es funktionierte sehr gut und reichte mir mehr als aus.
Python, Java, Perl ... alles tolle Sprachen - ohne Zweifel.
Und dennoch sah ich für mich keine Notwendigkeit zu wechseln.
In erster Linie C und eventuell später C++ eigne ich mir aktuell an.
Nicht, weil ich etwas programmieren möchte (die Zeiten sind bei mir schon lange vorbei), sondern weil ich diese Sprache immer noch für so wichtig, aktuell und universell halte, dass ich sie verstehen möchte.
Was mir an C gefällt ist, dass es eine sehr flexible Programmiersprache ist, die neben Hardwareprogrammierung auch Betriebssysteme ermöglicht und zudem von Textverarbeitung bis Grafikbearbeitung, von Spielen über Commandline alles abdeckt.
Dabei ist C portabel, u. a. dank ANSI-Standard für C.
C ist modular aufgebaut und hat recht wenig Schlüsselwörter mit denen sich nahezu alles bewerkstelligen lässt.
Und auch der Kernel von Linux ist in C geschrieben, was die Sprache für mich zusätzlich interessant macht.
Und wer C kann, kann einen Großteil von C++. Übernimmt also vorhandenes Wissen und ergänzt es um das Objektorientierte.
Abgesehen davon ist ein großer Vorteil der Maschinencode beim Kompilieren. Das sorgt u. a. - so verstehe ich es als Laie - für bessere Performance als bei Programmiersprachen, die Laufzeitumgebungen nutzen, die zur Laufzeit kompilieren (wobei das natürlich auch Vorteile haben kann).
Was ich wichtiger finde ist, dass C sich ebenso wie C++ weiterentwickelte.
Nur so konnten C++ und C nämlich überleben.
Ich würde als Laie sagen, dass C und C++ noch so einige Jahre vor sich haben.
Es ist jedoch nicht auszuschließen, dass sie mal abgelöst werden - der Feind des Guten ist das Bessere.
Persönlich finde ich, dass die Programmiersprache mit der man zum Erfolg kommt, die "richtige" ist. Ob Python, Java, Perl, Ruby, C oder sonst was sei dahingestellt.
Und ebenfalls als Laie denke ich mir, dass es nicht nur Bequemlichkeit sein kann, wenn der Großteil in C/C++/C# entweickelt wird.
Aber wir Laien irren uns auch mal gerne. 🙂
WorksAsIntended
Ich sehe im Bereich HPC erst mal noch keine Alternative, langsam kommen die meisten User dort wenigstens von Fortran weg. Diese Welt ist einfach ultra konservativ, was wohl vor allem daran liegt, dass weniger das Programmieren als die Modelle im Vordergrund liegen und die Bereitschaft neue Sprachen zu lernen damit gering ist.
C++ kann einfach sehr performant sein und es gibt verdammt gute Compiler dafür. Einige neue Bibliotheken sind für c++ auch sehr interessant, mit wt gibt es ein schönes neues Anwendungsfeld zum Beispiel, das auch wieder mehr enduserorientierte Software in c++ erzeugen könnte. Ich nutze es mittlerweile sehr gerne für interaktive Anwendungen. Ich denke nicht, dass C++ so schnell sterben wird und hoffe es nicht.
C zu lernen ist nicht schwachsinnig vor c++, aber es gibt verdammt viele die meinen sie könnten c++ obwohl sie nur einen c-dialekt schreiben, der zwar funktioniert aber c++ nicht nutzt.
Ich persönlich habe mir vorgenommen ein wenig Rust zu lernen, ich denke, da könnte zukünftig auch einiges drin sein.
[gelöscht]
Ich kann mir auch vorstellen dass es in Zukunft deutlich weniger Monopole geben wird. Es gibt manchmal die Erwartungshaltung dass eine neue Sprache kommt und die könnte man dann wie C/C++ auch Jahrzehnte lang nutzen bis sie vielleicht auch mal ersetzt wird.
Weist vieles aber nicht auf die Entwicklung einer multipolaren Welt? Nicht nur im politischen Sinne. Ich finde die Vielfalt steigt fast in allen Bereichen stark an und einzelne Akteure haben es immer schwieriger ihren Monopol zu bewahren.
Man könnte auch fragen was werden die Menschen in China und Indien an Programmiersprachen hervorbringen oder nutzen? Werde alle einem globalen Trend folgen?
Was passiert wenn ein Bruchteil der Chinesen morgen anfängt Rust zu lernen und anzuwenden? Kommt der globale Erfolg der Sprache dann automatisch?
Werden die Chinesen immer aus Gründen der Marktanforderung westlichen Konzepten, Sprachen, Symbolen und Ideen folgen? Oder werden sie durch ihre wachsende Rolle selbst einige Richtungen vorgeben können.
Die Zukunft der Programmiersprachen könnte schnelllebiger und vielfältiger sein als man vielleicht erwartet. Man sollte sich nicht darauf einstellen dass man die Gelegenheit bekommt 10 Jahre sich auf eine neue Sprache zu spezialisieren. Rust könnte demzufolge nur ein Nachfolger von vielen zu C/C++ sein.
Die Weltbevölkerung wächst ja auch. Damit wächst auch der Raum für die Koexistenz vieler Monopole. Wenn man im asiatischen Raum 100 Mio. Menschen hat die eine bestimmte Programmiersprache beherrschen, ist die Wirtschaft dort nicht auf die 100 Mio. Programmierer einer anderen Sprache im Westen angewiesen.
Und wenn diese 100 Mio. Entwickler im Osten sich nicht für Rust entscheiden wird Rust nie der allgemeine Nachfolger von C++ wie man es sich vorgestellt hat, es wäre dann nur ein Nachfolger in einer multipolaren IT Welt.
stefu
In meiner Laien Idealwelt wird es irgendwann so sein, dass ich sagen kann portiere mir source A die Sprache XYZ um, damit ich hier etwas ändern kann, was mir in Sprache UVW nicht möglich ist und anschließend sogar wieder von XYZ, das ich kenne, in UVW umwandle.
Will sagen, dass jeder das nutzt, was er kann, mag und/oder für die Aufgabe am besten geeignet ist. Dann jedoch voll automatisch konvertiert wird in jede x-beliebige Sprache.
Vielleicht Utopie. Dennoch glaube ich fest dran, dass so etwas mal Realität wird.
Programmieren, wie wir es heute kennen, wird bestimmt in 8-9 Jahrzehnten belächelt werde...
sanni
Dann würden Sprache XYZ und UVW Gleiches können. Eine Sprache wäre schonmal überflüssig...
stefu
Weiß ich nicht.
Glaube ich nicht. Schon heute führen viele Wege nach Rom.
Ich kann - je nach Aufgabenstellung - mit C, C++, Python, Java, Perl, ... gleichermaßen zum Erfolg kommen. Dennoch gibt es einen Grund, warum es alle Sprachen gibt...
Es könnte auch interessant sein zum Lernen.
Ich weiß wie es in xyz geht. Schaue mir an, wie es unter uvw gemacht wird...
sanni
Also ohne eine objektive Einschätzung kommst du, glaube ich, nicht wirklich weiter. Und da fängt es doch an tiefenpsychologisch/wirtschaftlich komliziert zu werden.
Entweder gibt es jemanden, der damit Geld machen möchte oder es ist einfach nur eine Geschmackssache, weil ich mit einer Sprache irgendwie besser klar komme.
Klar mag es auch Gründe geben wie z.B. Interpretersprache oder kompilieren. Ob es möglich ist ob du über solche Bedürfnisse oder andere eine passende Sprache basteln kannst, da wird es interessant.
shibumi
Tu mir bitte einen Gefallen und lass die Finger von C oder C++ wenn du nicht genau weißt was du tust. Es gibt schon genug sicherheitskritische Anwendungen.
Nimm lieber Rust oder Java
[gelöscht]
Man sollte aber nicht der Illusion verfallen dass Programme mit Rust frei von Sicherheitslücken sind. Korrekt ist dass die Konzepte in Rust die Tendenz zu unsicherem Code senken. Mehr aber auch nicht. Weniger talentierte oder unvorsichtige Programmierer werden auch mit Rust Sicherheitslücken einbauen. Davon abgesehen entstehen Sicherheitslücken auch bei den besten Programmierern.
Gab es überhaupt irgendeine Untersuchung ob Rust Programme in der Praxis erheblich weniger von Sicherheitslücken betroffen sind? Oder sind das bisher nur theoretische Vorteile der Sprache? Der Theorie zufolge müssten Rust Programme mindestens etwas sicherer sein, aber manchmal überrascht die Praxis doch, weil unbeachtete Faktoren einfließen oder die in den Himmel gelobten Konzepte wirken sich erstaunlich wenig aus.
Es gibt auch Leute die meinen dass die Kompetenz eines Programmierers abnimmt wenn er Sprachen nutzt die vorgeben für ihn möglichst viel abzunehmen. Wenn jemand Rust benutzt in dem Glauben dass die Sprache quasi von selbst für die Sicherheit sorgt, dann könnte das auch fatale Folgen haben.
shibumi
Naja es gibt halt bei Rust andere Dinge auf die man achten muss. Aber die banalen dinge entfallen bei Rust halt. So kram wie sicheres Memory Management, Buffer Overflows, etc. Und gerade die einfachen Dinge sind es in 90% der Fälle die für SIcherheitslücken wie 'heart bleed' gesorgt haben. Mit Rust wäre heart bleed nicht möglich gewesen.
jefaridas
shibumi schriebMit Rust wäre heart bleed nicht möglich gewesen.
Das stimmt nicht, Rust hat einen unsafe-Modus mit dem sowas durchaus möglich wäre. Und da es schon wieder los geht, dass der unsafe-Modus in Foren wie Stackoverflow als Lösung für manche Probleme vorgeschlagen wird, ist es nur eine Frage der Zeit bis jemand ohne es zu hinterfragen sowas macht... Wenn der Programmierer nichts denkt hilft auch die beste Sprache nichts.
[gelöscht]
Ein unsafe-Modus? Ich dachte Rust zeichnet sich gerade dadurch aus dass es zum sicheren programmieren quasi zwingt. Und das sei gerade bei weniger erfahrenen Programmierern sinnvoll. Wenn sich das aber ausschalten lässt untergräbt man diesen Vorteil der Sprache. Vor allem wenn es damit öfter Probleme gibt und dann den Anfängern geraten wird den Safe Modus auszuschalten.
[gelöscht]
Gibt es schon sicherheitskritische Software das mit Rust entwickelt wird?
Man kann ja mal ein paar Fuzzer darüber laufen lassen und nach gröberen Fehlern suchen die zu einem Sicherheitsproblem werden können.
Es wird definitiv Fehler geben.
stefanhusmann
Ihr driftet ab. In diesem Thread soll es um C++ gehen, nicht um Rust.
[gelöscht]
C++Jüngling schriebWas haltet ihr von der Programmiersprache C++?
Abstand.
Es ist weder eine "höhere Maschinensprache" wie C, noch eine vernünftig handhabbare "höhere Programmiersprache" wie Java oder Python.
IMHO ist es eine Vereinigung aller Nachteile von C mit allen Nachteilen von Java.
[gelöscht]
Schard-nologin schriebC++Jüngling schriebWas haltet ihr von der Programmiersprache C++?
Abstand.
Es ist weder eine "höhere Maschinensprache" wie C, noch eine vernünftig handhabbare "höhere Programmiersprache" wie Java oder Python.
IMHO ist es eine Vereinigung aller Nachteile von C mit allen Nachteilen von Java.
Kannst du auch konkrete Argumente nennen oder ist deine Meinung über C++ generell schwammiger Natur?
Deine Meinung und der Erfolg und praktische Einsatz von C++ stehen im krassen Widerspruch.
stefanhusmann
Grundsätzlich schon, und deshalb habe ich die Beiträge auch nicht abgetrennt. Aber da ging es dann beitragsweise doch nur noch um Rust, und nicht mehr um die Vorteile gegenüber C++.