4 ms·
Java could really benefit from more pruning/obsoleting. There's far too many "gotcha" pieces that nobody uses because better alternatives have come along, or id
by Someone1234 7y ago
Java could really benefit from more pruning/obsoleting. There's far too many "gotcha" pieces that nobody uses because better alternatives have come along, or ideas have been lost to time. Instead of leaving them in as traps for noobies, they should mark them bad or outright remove them.
- ivan_gammel 7y agoThere's plenty of software worth somewhere between 10^11-10^12$ which is still working because all those legacy APIs still exist. Java is not <put the name of any other platform in permanent beta stage>. It prospered for 20 years and it will stay alive for another half of century, because it is conservative enough.
- 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.
- paulddraper 7y agoOn the other hand, Java code and byte code from 20 years ago still work the same as they did then.