What benefits
does it have to bind to a specific implementation that is
not
guaranteed to stay as it is?
If used properly, the final keyword should be for immutable
implementations. Otherwise, it could be a questionable use case.
I think all the current uses of "final" in MW core are questionable, then...
If somebody is
volunteering to do the necessary work in the CI
infrastructure, fine.
To me it just seems like just removing the final modifier is the easier
and
cheaper solution, and doesn't have any big
downside.
It depends on how hard is it to set up the library. Ideally, we only have
to find a place where to enable it, nothing more. And I also think it won't
harm existing tests in any way. It doesn't even require a CI change. The
only possible drawback is performance / opcache integration pointed out
by @simetrical. Let me try to upload a test change and see how it goes,
tonight or tomorrow.
Cool, thank you for looking into this!
Sorry if I sounded very negative. I'm trying to be pragmatic and avoid extra
effort where it is not needed. I appreciate your help with evaluating this!
--
Daniel Kinzler
Principal Software Engineer, Core Platform
Wikimedia Foundation