4 ms·
What does "backwards compatibility" even mean? That you can combine new code with old code (a.k.a. ABI compatibility)? That you can compile old code with a new
by tomp 7y ago
What does "backwards compatibility" even mean? That you can combine new code with old code (a.k.a. ABI compatibility)? That you can compile old code with a new compiler (modular compiler, old frontend + new backend, should work)? That you can mix old code and new code in the same file (why would you want to do that, presumably new code is also better, otherwise what's the point of changes in the first place)?
- mantap 7y agoIn the context of C++ it means that you don't have to make changes to your code when a new language version comes out. Because old broken features are preserved for eternity even if severely dysfunctional. Most of the hard work of learning C++ is learning all the "gotchas" that will sneak in and cause undefined behaviour or worse. That's why people have a love/hate relationship with it. The language is full of BS but the path of least resistance is to learn the ins and outs of the BS rather than to do a full rewrite of your huge codebase in a sane language. Learning the ins and outs of C++ is a one time hit, after that you can use it quite happily. So new projects get started in C++ and the cycle repeats.