3 ms·
If C++ wants to continue evolving, it needs breaking changes. It needs to impose a migration duty to the user, but that is not going to happen. So it will die
by 29athrowaway 3y ago
If C++ wants to continue evolving, it needs breaking changes. It needs to impose a migration duty to the user, but that is not going to happen.
So it will die a death by entropy where noone can know the language.
- tempodox 3y ago> it needs breaking changes. Then nobody will use the new compiler because nobody wants to rewrite millions of LOC and introduce new bugs.
- 29athrowaway 3y agoAI will do it one day.
- layer8 3y agoIntroduce new bugs, sure.
- random_mutex 3y agoThat's what will end the AI hype.
- eej71 3y agoI think the great challenge with breaking changes is demonstrating how other systems have done breaking changes with great success. They are quite rare. And no, the python2->python3 migration is not one of them. Neither is ip4->ip6.
- Sankozi 3y agoThe important part about breaking backward compatibility is allowing forward compatibility. Java is good in that regard, for each breaking change, you could still create a library that worked for Java N and Java N+1. It is possible to have a network supporting IPv4 and IPv6. I don't think the speed of migration is an issue. It is not a tremendous success but it is not a failure either. In Python forward compatibility was often impossible. The migration benefit was low and the cost was high. Python is a great example how not to break things. I am little surprised that whole language is still popular after such failure of leadership.
- Const-me 3y ago> that is not going to happen It’s even worse. They happily introduce breaking changes for some things, but not others. I have once wasted days of work updating a codebase to build with C++/20 because the new standard suddenly changed the type returned by `u8` string literals (available for a decade already, it was introduced in C++/11) from const char* into const char8_t*, and they made these types incompatible.