[…] Genode’s C++ dialect evolved primarily from an economic perspective. Earlier in the project, when haunted by memory-corruption problems or sporadic data-race conditions, operating-system development sometimes felt like the misery of spending only a miniscule fraction of the day with creating new and exciting things while 95 percent of the time went down the drain with the question: What the heck is going on? Worse, the most obnoxious bugs turned out to be shamefully mundane. Finding such an issue did not felt like a victory but rather a defeat. A missing lock guard, an off-by-one, a missing virtual destructor, an arithmetic overflow, or an uninitialized variable - a tiny artifact left in a weak moment and overlooked by reviewers - ensued sometimes days of hunting. […] Over the years, a stringent and strongly opinionated dialect of C++ evolved, which dramatically improved the situation.
Note: this is a “part 1” article; hopefully there’s more of those to come from Norman Feske.