groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From C├ędric Champeau <>
Subject Re: TeamCity back on track
Date Wed, 21 Sep 2016 13:55:17 GMT
The elephant i see is that now that IBM (and Google is around the corner)
> uses the OpenJDK, the OpenJDK implementation becomes the defacto standard
> so recent 3rd party libraries tend to use OpenJDK specifics in their
> implementation. Before, it was less an issue because there was multiple
> implementations of the JDK. If we don't do something now, the platform will
> calcified and we will not be able to change anything in the OpenJDK in the
> future.
> I understand that breaking a 3rd party library doesn't let a lot of option
> apart fixing the library itself or removing the use of it. But the future i
> see if we don't do that now is the death of innovation of the Java
> platform.

I understand the temptation to enforce encapsulation as much as possible
too, but the thing here is that I can hardly imagine the consequences of
such a decision. That you prevent calling `setAccessible` on non exported
packages make sense, but forbidding it on visible classes seem to go a bit
too far. It is, more or less, removing setAccessible altogether. It is
today very hard to evaluate the consequences of doing this. It could very
well kill Groovy too. And working with -add-exports is not a long term
solution (we know it's temporary until everything is a module).

The risk of such a decision is also that migrating to JDK 9 becomes too
painful, and people do not upgrade at all. We're trying to make it easier,
with Gradle, to do so, but there's nothing we can help for "runtime magic".

View raw message