Remix.run Logo
shultays 5 hours ago

  “We must minimize the need to change existing code. For adoption in existing code, decades of experience has consistently shown that most customers with large code bases cannot and will not change even 1% of their lines of code in order to satisfy strictness rules, not even for safety reasons unless regulatory requirements compel them to do so.” – Herb Sutter

  with large code bases cannot and will not change even 1% of their lines of code in order to satisfy strictness rules
Do people really say this? Voice this in committee? I have been in a few companies, and one fairly large one, and all are happy to and looking forward to upgrade newer standards and already spend a lot of time updating their build systems. Changing 1% of code on top of that is probably not really that much compared
loup-vaillant 4 hours ago | parent | next [-]

> Changing 1% of code on top of that is probably not really that much compared

Quite a few companies have millions and millions of lines of code. Changing 1% of it would mean changing more than 10K lines of code, perhaps even more than 100K. In much bigger code bases, where changing anything has a risk of breaking something — not just because you might make a mistake, but because your program is full of Undefined Behaviour, and changing anything might manifest latent bugs.

Given that, I'm not surprised people say that Sutter quote with a straight face.

bregma 3 hours ago | parent | prev | next [-]

Many of my customers are in an industry with a huge C++ code base and it's all under active development. Safety certification requirements are onerous and lead-times for development are long: many are now experimenting with C++17 and C++20 is on the long-term horizon but not yet a requirement. Because of the safety certification requirements and the fact that the expected lifecycle of the software is the order of decades after their products have been released, changing any lines of their code for any reason is always risky. Lives can be at stake.

But this is a multi-billion-dollar industry. If you're working on scripting a little browser "app" for a phone things may be different.

nicce 19 minutes ago | parent [-]

Is there a lot of manual work for getting the new certificate? E.g. is human rewiewing the code? If not, someone should build CI pipeline for the certification process.

Someone 5 hours ago | parent | prev | next [-]

Could be selection bias. Companies (or departments within companies) who are still actively developing their C++ code probably tend to hire more developers and consultants than companies who are doing minimal maintenance on their code base, and that might correlate well with the “two factions of C++” discussed here.

“Our code is an asset” ⇒ code kept up-to-date

“Our code is a burden, but we need it” ⇒ change averse

otabdeveloper4 an hour ago | parent | prev | next [-]

> Changing 1% of code on top of that is probably not really that much compared

Changing 1% across all modules is a nightmare. Changing one module which is 1% of the code is nothing.

rwmj 3 hours ago | parent | prev | next [-]

People just don't make mass changes to existing working code. Mostly they cannot. Even if the tooling was available, which it's not, it's also about reeducating their developers, who don't want to or can't change. Plus it'd have to be recertified. It's all cost with no benefit.

Except, allegedly, at Google. But is there any evidence they actually do this, eg. in public code bases? Or is it just hype?

Hilift 5 hours ago | parent | prev [-]

Are you referring to his book written 20 years ago or 25 years ago? "customers with large [C++] code bases" there aren't that many of these. Vendors, government. With code bases that have stewards, not programmers.