Whenever I read one of these "desires to fix programming languages", I laugh. I have been programming since the 80's and I too went through that phase right after college. However, I never had to work with all these silly pseudo-languages that come and go. We used ASM and C. Then Byorn Stroustroup (?) comes along and says, "hey, I hate programming, I'll add a bunch of junk to keep myself from making mistakes." I would've suggested he find a new line of work instead. C++ is a mess. It's poorly conceived, coerced and unnatural. It does nothing that a professional programmer can't accomplish in plain old C. As is usually the case, it causes more problems than it fixes, or it fixes one set but creates another set. Considering that most of the world is embedded micro-controllers, those of us who program them don't have gigabytes of memory or gigahertz processors as we need to be more efficient. Over 20 years this has taught me to appreciate C and ASM more. I'm glad I never got my wishes to have a bullet-proof language. I suggest if you're having issue with a particular part of a language, create a preprocessor directive and use it! For example, if your problem is:
if (x = y)
this can be fixed by defining:
#define IS_EQUAL ==
then used everywhere as:
if (x IS_EQUAL y)
No need to suggest the world change, or hope someday this 'gets fixed' for you. The C preprocessor is probably the most overlooked part of C. You can easily invent an entirely new language using the preprocessor. In fact, Linus Torvalds, who is a pretty awful programmer, took to using the preprocessor in ways most professionals would recommend against. But he recognized that it could keep him from repeating certain mistakes he tended to make.