Isn't it reasonable to desire a language that is both backwards compatible and not very complex?
Isn't it reasonable to desire a language that is both backwards compatible and not very complex?
So, instead the committee focuses on adding features such that if you migrate parts of your old code or add new code to an old project, the new code can be much simpler than it would have had to be before and the old code that no one wants to touch still compiles right along side the new stuff.
Want C++ to be simpler? Use the new features instead of the old features. Use unique_ptr instead of raw pointers. Use constexpr if instead of SFINAE. Use range based for loops. Yay! C++ is Simpler!
My perspective on this is a little bit different. The answer in my opinion is no.
Let us define what compelx means : If you accept a language is a system, comprised of components (features), then defining complexity is very simple. As you may know in a system, every component interacts with every other component (unless otherwise strictly said). So the moment keeping track of these interactions becomes more than what we can track easily, we call that system a complex system.
So what you are saying is basically means adding components to a system (which is in it is already a complex system because of backward compatibility with C) without introducing complexity and not becoming a complex.
That is not simply possible.
1) You can design a simple language and keep it that way by not adding features.
2) You can remove old unused features to keep the complexity level.
Basically think about complexity from graph theory perspective. Verticies are features and edges are interactions between features.
But given an already-complex language, you're not going to get a not-very-complex language that is backward compatible, no matter how reasonable it is to want one. It's simply not possible.
What people really want is a simpler language that doesn't change the parts they use. But there's nothing hindering them from continuing to do so. Just use the parts you need, and the complexity of the rest doesn't affect you much.