Hacker News new | ask | show | jobs
by mhixson 4560 days ago
If by "syntax compatibility" he means code that compiles in one version does not compile is another, that's definitely true. Name collisions with the new default methods in Java 8 are one source. If your Comparator-implementing class has a method "void reverseOrder()", that will no longer compile.

Here's a couple of recent examples the Guava authors have fixed. Fortunately they were in internals and not their public API, so users won't care.

https://code.google.com/p/guava-libraries/source/detail?r=7d... https://code.google.com/p/guava-libraries/source/detail?r=25...

1 comments

This happens for all languages and is not usually considered as "a language breaking backward compatibility", it's purely a library concern.

What is meant by "breaking backward compatibility" is when the grammar is altered in a way that makes existing sources no longer compile.