There is a much simpler solution to the C++ language: just freeze it.
Fork it if you want or just create your own language. This is what zig creator did.
The idea is that C++ can’t move because of its own weight. Too much history, too much responsibility.
Just freeze it, let new languages create new ways.
It’s not that software written in it will become unmantainable. A frozen, feature complete language can still work. Libraries can implement new protocols.
Leave the name, do something new! Fork it, call it nib, or peeb or zag or even ziggy. Create a new language, call it go, bo, or just pi.
Given enough time Zig will become what C++ is today: its creator long gone, its responsibilities too much, its backward compatibility a weight too heavy.
C++ instead needs language editions, legacy and modern. Let compilers implement a switch for which edition you're targeting. Legacy does not touch backwards incompatibly changes or language features. Modern cleans up everything.
I don't think that would be a silver bullet nor without drawbacks. It can be a rather bitter footgun when the same code can have different semantics in different editions or epochs. Automatic or semi-automatic conversion, as Rust has, helps it a bit, but not fully.
Fork it if you want or just create your own language. This is what zig creator did.
The idea is that C++ can’t move because of its own weight. Too much history, too much responsibility.
Just freeze it, let new languages create new ways.
It’s not that software written in it will become unmantainable. A frozen, feature complete language can still work. Libraries can implement new protocols.
Leave the name, do something new! Fork it, call it nib, or peeb or zag or even ziggy. Create a new language, call it go, bo, or just pi.
Given enough time Zig will become what C++ is today: its creator long gone, its responsibilities too much, its backward compatibility a weight too heavy.