If you go the source dependencies way, you cannot add a public method to any of your types, ever. Because that breaks backward source compatibility. Yes, binary compatibility is hard. But source compatibility is *impossible*.
-
This Tweet is unavailable.
-
-
Replying to @sjrdoeraene @fommil
But source compatibility is *safe* (the compiler checks it), whereas binary compatibility is *risky*. Composing a classpath at the same time as compilation guarantees there's no mismatch between the two... at the not-insignificant cost of having to compile the world.
2 replies 0 retweets 3 likes -
Replying to @propensive @fommil
Binary compat is also safe if your dependencies apply MiMa. And it can be safe in the same way as source compat if someone would just write a link-checker for the JVM (~1 week of work, and maybe Proguard even has an option for that, and I've heard JDK 10 has a tool for that too).
0 replies 0 retweets 1 like -
This Tweet is unavailable.
-
Once again, this is a fallacy. With bincompat I free up the brain cycles I would use to think about *source* compat. And I can *also* free up most of the cycles used to think about bincompat because I have a *tool* to do it for me (which sometimes needs a nudge, but not often).
0 replies 0 retweets 1 like -
This Tweet is unavailable.
-
This Tweet is unavailable.
-
Yeah somehow the effect has been completely wrong. But I never set out to pretend bincompat was *easy*. It *is* hard. My point was: a) forget about source compat because it's way worse (and you don't realize it) and b) here are tools and methods to correctly design for bincompat.
1 reply 0 retweets 4 likes
FWIW, the talk is a really great exploration of the challenges of binary compatibility, and has some good examples of binary-incompatible changes which aren't at all obvious.
-
-
and a proven, slam dunk one about source-incompatible changes
0 replies 0 retweets 1 likeThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.