Digital > Fefes Blog 2.0 > 9b0eebc2
  Leserreporter: Wer schöne Verschwörungslinks für mich hat: ab an felix-bloginput (at) fefe.de!
[zurück][ältere Posting][neuere Posting]  Dienstag, 12 März 2024 | Blog: 6 | No: 51599     feed-image

Warum erzähle ich das alles?

hat sogar das Weiße Haus gegen C++ geschossen!

C++ ist in letzter Zeit ein bisschen unter Beschuss geraten. Zuletzt hat sogar das Weiße Haus gegen C++ geschossen!
Gut, ist ein leichtes Ziel, die Sprache. Ein riesiger Bloathaufen aus Komponenten, die Hälfte deprecated, die andere riecht schon schlecht.
C++ hat mehrere Erneuerungsversuche unternommen, die aber im Wesentlichen alle als Rohrkrepierer endeten oder die Sache schlimmer machten.
Templates waren als Ersatz für den C-Präprozessor gedacht, und sind heute ... programmierbar. Template-Metaprogramming! Nein, kein Witz. Ernsthaft!
std::vector war als Ersatz für C-Arrays gedacht, aber operator[] macht kein Range Checking. Damit ist das schlechter als C-Arrays, weil es sicherer aussieht aber nicht ist.
std::span war als Ersatz für Zeigerarithmetik gedacht, und die Referenzimplementation von Microsoft, die das in das Standardkommittee eingebracht haben, hatte zwingendes Range Checking. Das Standardkommittee sah das und machte es weg. Damit ist std::span jetzt schlechter als Zeigerarithmetik, weil es sicherer aussieht aber nicht ist.
Iteratoren waren als Ersatz für Zeigerarithmetik gedacht, aber sie haben nicht nur kein Range Checking sondern merken nicht, wenn du den Container wegschmeißt und machen dann Memory Corruption. Damit sind sie jetzt schlechter als Zeigerarithmetik in C, weil sie sicherer aussehen aber nicht sind.
Andere Probleme hat C++ überhaupt gar nicht erst angegangen. Erst seit ein paar Jahren haben wir eine Ansage zum Speichermodell.
Ich persönlich habe C++ trotzdem jahrelang zu verwenden versucht, aber mein publizierter Code ist alles C. Dabei wäre es einfach, sowas wie dietlibc für C++ zu haben. Wenn es um die Basisfunktionalität geht. Leider müsste ich für dietlibc++ auch Exception Handling implementieren. Da habe ich ein paar Anläufe genommen, aber die Dokumentation ist unbrauchbar und die Referenzimplementation, die als Teil von gcc kommt, ist unlesbarer Höllencode.
Warum erzähle ich das alles? Weil die C++-Community langsam versteht, dass sie das Auto um den Baum gewickelt haben. Die Rettungsversuche werden langsam geradezu humoristisch wertvoll. Bjarne Stroustrup hat einen geradezu grotesken Vortrag zu C++ Safety auf der Cppcon gehalten. Im Vergleich wirkt der Biden frisch und seinen Herausforderungen gewachsen. Stroustrup versucht da noch das Poblem kleinzureden und wegzudefinieren.
Und jetzt hat es Herb Sutter versucht, ein hochangesehener C++-Kommittee-Krieger, von Microsoft entsandt, der sich seit Jahren am Widerstand der renitenten Leute dort aufreibt. Von dem kam std::span mit Bounds Checking, und der arbeitet auch an den C++ Core Guidelines, die schon die richtigen Fragen stellen, aber am Ende am selben Feature Creep sterben wie C++ selbst. Wenn deine Lösung hunderte von Seiten braucht, dann ist sie bereits gescheitert. JSON hat sich durchgesetzt, weil es auf einen Bierdeckel passte. Wenn deine Lösung mehr als eine Seite Beschreibung braucht, ist es keine Lösung sondern ein neues Problem.



[zurück] [ältere Posting][neuere Posting]
[zurück] [ältere Posting][neuere Posting]

Fefes Latest Youtube Video Links