RFR(m): 8140281 deprecate Optional.get()
brian.goetz at oracle.com
Wed Apr 27 14:48:32 UTC 2016
So far, this thread has been mostly "I DON'T LIKE THIS CHANGE." But
let's talk about a real underlying issue instead, mkay?
While no one has actually said this (I guess everyone was too busy
slinging rhetoric and raising strawman objections) there is at least one
real issue here, which is:
- I have a library
- I want it to be free of deprecation warnings
- I want it to compile cleanly on platform versions N...N+k, where
something is deprecated with an alternative in M>N, and the alternative
does not exist in N.
That leaves the hypothetical library provider above (which I assume is
Stephen's situation, though it was left unsaid) with some bad choices:
- @SuppressWarnings the use everywhere
- Compile without deprecation warnings
- Have multiple sourcebases
I think the real issue is that @SuppressWarnings is too blunt a tool to
be useful in this situation, so deprecation causes collateral pain for
library developers. If we can make the deprecation more painless for
this class of developers (the ones disproportionately affeted), then I
think much of the noise goes away.
On 4/27/2016 1:42 AM, Stuart Marks wrote:
> On 4/26/16 3:43 AM, Stephen Colebourne wrote:
>> In OpenGamma Strata we have 546 uses of Optional.get(). Renaming this
>> would be painful and add no value.
> Hi Stephen,
> I just sent a reply  to Kevin B, wherein I clarified "rename."
> Briefly, it strictly isn't a rename. The old method would be
> deprecated not-for-removal, and would be left in place indefinitely.
> Does this still create pain? If so, is there some way the proposal can
> be modified to reduce it?
More information about the core-libs-dev