Hallo alle, ich habe kürzlich gesagt bekommen, dass im nächsten C-Standard, welcher noch dieses Jahr rauskommen soll, die If-Bedingungen abgeschafft werden soll. Es soll dann ausschließlich nur noch Switch-Case zur Verfügung stehen, aus sicherheitskritischen Aspekten. Vermutlich werden zuviele Programmierfehler mit einem klassischen If-Else gemacht. Was haltet ihr davon? Dann muss ich ja sämtliche Programme umschreiben? Jan
:
Verschoben durch User
Das hatte ich auch gelesen. Aber was ich noch blöder finde ist das automatische twittern aller Makros.
Jan schrieb: > Es soll dann ausschließlich nur noch Switch-Case zur Verfügung stehen Ist zwar C++ und nicht C, aber was solls ;) C++ Core Guidelines: To switch or not to switch, that is the Question https://www.heise.de/developer/artikel/C-Core-Guidelines-To-switch-or-not-to-switch-that-is-the-Question-3985896.html
Und in C++20 werden rohe Zeiger [deprecated], damit sie in C++23 abgeschafft werden können ;-)
Man hätte auch C++ abkündigen können, weil es links und rechts von anderen "besseren" Programmiersprachen überholt wurde. Mal ehrlich, ich programmiere auch ab und zu noch ein bisschen in C++. Aber diese Programmiersprache ist doch längst über ihren Zenit hinaus gealtert. Man sollte sie so lassen, wie sie ist und seine Zeit in Nützlichere Entwicklungen stecken. Ich stelle mir vor, wie in diesem Gremium lauter alte Opas (wie ich) kauern, die schnell noch ihr persönliches Gimmick einbauen wollen, bevor Ihre Augen versagen und damit ein anderer Beruf fällig wird. Komischerweise ist C++ stärker gealtert, als ihr Vater C. Sollen sie doch C verbessern, davon könnten mehr Leute profitieren.
Jan schrieb: > die If-Bedingungen abgeschafft werden > soll. Ich mag das auch nicht. Ich benutze dafür oft ?:
1 | Palmström programmiert vor zwölf Experten |
2 | die berühmten "Formeln ohne 'if'", |
3 | deren Möglichkeiten zu erhärten. |
4 | |
5 | Jeder sieht bewundernd Trick und Kniff |
6 | und erkennt sofort den Nutzen, denn: |
7 | Zwölf Experten einig (!) - ohne 'falls' und 'wenn'. |
KLEN
Peter D. schrieb: > Jan schrieb: >> die If-Bedingungen abgeschafft werden >> soll. > > Ich mag das auch nicht. Ich benutze dafür oft ?: Alles anfänger hier... Erfahrene verwenden:
1 | (bedingung)&&(falls_wahr(),1)||(falls_falsch(),0); |
Und bei gcc kann man für den conditionell ausgeführten code zur vereinfachung noch dashier verwenden: https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html In C++ gehen vermutlich auch lambdas dafür.
Wilhelm M. schrieb: > Und in C++20 werden rohe Zeiger [deprecated], damit sie in C++23 > abgeschafft werden können ;-) In PC Anwendungen (also wo Effizienz nicht absolut höchstes Gebot ist) wäre das alles andere als Schlecht. Die sind praktiwch die Hauptursache für unerkannte bufferoverflows und ähnliche Angriffsvektoren. Nicht umsonst handhaben Rust und GO das anders.
:
Bearbeitet durch User
Stefan U. schrieb: > Man hätte auch C++ abkündigen können, weil es links und rechts von > anderen "besseren" Programmiersprachen überholt wurde. Oh, welche (ausgereiften!) Sprachen bieten denn eine derart mächtige Unterstützung von Meta Programmierung und Abstraktion bei extrem höher Performance, direkter Kontrolle über die Speicher Nutzung, und Eignung für eingebettete Systeme?
Das ist PR010418, mit dem der C11/C++17-Standard an den Sprachgebrauch einiger Unverbesserlicher angepasst wird.
Ralf S. schrieb: > Ein Fehler, gegen den auch kein Wiederstand mehr hilft ;) Auf der Straße des geringsten Widerstandes, versagen die stärksten Bremsen.
Dr. Sommer schrieb: > Stefan U. schrieb: >> Man hätte auch C++ abkündigen können, weil es links und rechts von >> anderen "besseren" Programmiersprachen überholt wurde. > > Oh, welche (ausgereiften!) Sprachen bieten denn eine derart mächtige > Unterstützung von Meta Programmierung und Abstraktion Lisp > bei extrem höher Performance, Maximal funktional, nix ist ausgeklammert. > direkter Kontrolle über die Speicher Nutzung, Nimmt allen Speicher, auch den swap > und Eignung > für eingebettete Systeme? http://www.ulisp.com/
Die "mächtige Unterstützung von" irgendwas ist gerade aus der Mode gekommen. Heute sind Programmier-Werkzeuge gefragt, die alles von ganz alleine machen und jeden denkbaren Programmierfehler ausschließen. Je weniger der blöde Programmierer tippen muss bzw. kann, umso weniger macht er kaputt. Je weniger komplex die Sprache ist, umso korrekter die Programme. In Zukunft brauchen die Manager nur noch ihre Mindmaps und Powerpoints durch die KI wolfen und heraus kommt das fertige Produkt. Hätten einige jedenfalls gerne so. Guckt eich doch nur mal an, was für ein Bullshit regelmäßig bei Heise beworben wird.
Stefan U. schrieb: > Je weniger komplex die Sprache ist, umso korrekter die > Programme. In Zukunft brauchen die Manager nur noch ihre Mindmaps und > Powerpoints durch die KI wolfen und heraus kommt das fertige Produkt. Höre ich da "Cobol"? :-) > Hätten einige jedenfalls gerne so. Guckt eich doch nur mal an, was für > ein Bullshit regelmäßig bei Heise beworben wird. Früher war mehr Lametta bei Heise.
Programmiersprachentheaterintendant schrieb: > Lisp Dynamische Typisierung ist auch nicht soo dolle. Es kann halt auch nicht alles was C++ kann. Es wird wohl einen Grund geben warum das weiterhin verwendet wird, und was genutzt wird sollte auch weiter entwickelt werden. Stefan U. schrieb: > Die "mächtige Unterstützung von" irgendwas ist gerade aus der Mode > gekommen. Soso, deswegen erlebt C++ also seit C++11 eine kleine Renaissance mit der besseren Metaprogrammierung. Stefan U. schrieb: > Je weniger komplex die Sprache ist, umso korrekter die > Programme. Sieht man ja an C, die unendlichen Fummeleien mit strcpy, strlen usw die früher oder später zu Buffer Overflows führen sind natürlich verschmerzbar, hauptsache man muss nicht std::string schreiben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.