3 ms·
“Cleanup” vs “backwards compatibility” is a really tough problem for language designers/maintainers. Breaking backwards compatibility leads to a fractured comm
by yashap 7y ago
“Cleanup” vs “backwards compatibility” is a really tough problem for language designers/maintainers. Breaking backwards compatibility leads to a fractured community (think Python 2/3), as well as resentment from all the users who want stability, and don’t want to waste time on painful upgrades. But over time, not breaking backwards compatibility leads to all sorts of weird warts, adding lots of overhead to learning the language, and using it safely.
Ultimately I think it’s a somewhat natural part of language evolution that they accumulate cruft over time, because the costs of breaking backwards compatibility are too great. And after a few decades or so, new languages come out that are (currently) much cleaner, and they take over until the cycle repeats. i.e. “cleaner Java” will not be a new version of Java, but a new language solving similar problems (Go?).
- Someone1234 7y agoYou can obsolete things without removing them: https://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/deprecation.html https://docs.oracle.com/javase/7/docs/technotes/guides/javad...
- yashap 7y agoGood point, Java could definitely be more aggressive with deprecating, even if they never intend to remove the deprecated methods/classes.