?
Mark Russinovich und mögliche kognitive Verzerrungen
Da ich auch oft "Opfer" von kognitiven Verzerrungen war und bin, möchte ich das Thema C++ und Rust kritisch analysieren.
Speaking of languages, it's time to halt starting any new projects in C/C++ and use Rust for those scenarios where a non-GC language is required. For the sake of security and reliability. the industry should declare those languages as deprecated.
Mark Russinovich
You could say that Mark Russinovich is a hacker's hacker, the foremost Windows hacker, and a reverse engineering wizard. It was he who discovered and blew the whistle on the Sony rootkit scandal, for example, after finding and reverse engineering it on his machine.
https://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootk...
He extensively reverse engineered and documented "Windows Internals" details before joining Microsoft (and before being "encouraged" to change the name of his business to Sysinternals).
His writings and talks on "The case of..." are master classes on reverse engineering.
https://youtu.be/GQ1EDqsA1yk
https://techcommunity.microsoft.com/t5/windows-blog-archive/...
I'm paying attention to him.
https://news.ycombinator.com/item?id=32905885
Also weil Mark Russinovich überzeugende Fähigkeiten hat, soll man seinem Rat folgen und C und C++ nicht mehr für neue Projekte oder Unternehmungen nutzen.
Ich "diagnostiziere" mir
"Autoritätsverzerrung"
Jemandes Status bei der "Beweisführung" zu missbrauchen.
(Meine Beschreibung.)
den "Mitläufereffekt":
Wahrgenommener Erfolg von anderen erhöht die Bereitschaft, sich voraussichtlich erfolgreichen Handlungsweisen von ihnen anzuschließen.
die "Truthahn-Illusion"
Die Neigung, einen Trend zu extrapolieren, ohne ihn zu hinterfragen. Die Sicherheit wächst permanent mit dem Trend. Daher ist zum Zeitpunkt des Trendbruchs die Sicherheit am größten, ebenso wie der Schock über den Trendbruch.
die "Überlebenden-Verzerrung"
Verzerrung zugunsten der „Überlebenden“/„Erfolgreichen“, Erfahrungen „erfolgloser“ Individuen werden nicht gleichermaßen berücksichtigt.
Move-Semantik + std::unique_ptr = "Besitz" in Rust
Zum Kernthema Rust gegen C++.
Rust ist eine Multiparadigmen-Systemprogrammiersprache, die von der Open-Source-Community entwickelt wurde und unter anderem von Mozilla Research gesponsert wird.[11] Sie wurde mit dem Ziel entwickelt, sicher, nebenläufig und praxisnah zu sein.[12] Sicherheit bezieht sich dabei insbesondere auf die Vermeidung von Programmfehlern, die zu Speicherzugriffsfehlern oder Pufferüberläufen und damit unter Umständen auch zu Sicherheitslücken führen, vor allem auch in nebenläufigen Prozessen. Im Gegensatz zu anderen Programmiersprachen mit automatischer Speicherverwaltung verwendet Rust hierfür keine Garbage Collection, sondern ein besonderes Typsystem. Dessen Typsicherheit wurde formal bewiesen.
Rust bietet also sichere Speicherverwaltung durch sein Typsystem und mit den Programmier-Konzepten von "Besitz" und "Ausleihen".
C++ kann die Speicherverwalterei, so weit mir bekannt, nicht in der Kompilierzeit bieten, aber es gibt std::unique_ptr und die Move-Semantik.
Move-Semantik + std::unique_ptr ist schon das, was man "Besitz" in Rust nennt und während der Laufzeit vonstattengeht.
Move-Semantik ist einfach nur eine "Absprache" mit dem Kompilierer, dass er mir keine unnötigen Kopien erstellen soll.
Beispielsweise auf gezeigte Objekte, wo man nur die Adresse des Objekts braucht und nicht das ganze Objekt nochmal unnötig kopiert.
Also man besitzt damit auch die Zugriffsrechte für eine "Speicher-Adresse".
Der "Lindy-Effekt"
Thus, the Lindy effect proposes the longer a period something has survived to exist or be used in the present, the longer its remaining life expectancy.
You can debate what it even means for a language to survive. For example, I’d consider Lisp to be alive and well if in the future people are programming Clojure but not Common Lisp, for example, but others might disagree.
https://www.johndcook.com/blog/2017/08/19/programming-language-life-expectancy/
C 1972 2062
In welcher Form C in bis 2062 überleben wird, kann man wohl nicht so einfach sagen.
Ob es dann wie auch bei Lisp und Clojure sein wird?
Schlusswort
Ich möchte hier durchaus kritisiert werden, um meine eigenen Fehler zu erkennen.
Relevante Stichworte
Urladeverfahren/Bootstrapping
Sehenswertes
What is Bootstrapping? - Computerphile