John,
Please me be equally provocative. Suppose I decide I'd like EMF to
progress a lot faster, after all, it's very limiting maintaining all
this binary compatibility and it would be so wonderful to fix mistakes
of the past. So, all things considered (well, all things considered
that matter, i.e., just my own opinion), I'm going to make changes to
introduce EMF 3.0, and of course I'm going to release it into the
train as I've always done. Unfortunately EMF's plugins are
singletons, so everyone on the train will have have to consume what I
provide; no EMF 2.10 won't be on the train. It will start use
dependency injection right in the core, so adopters will depend on
those bundles too; dependency injection is great. Yes, that means
you too, Eclipse platform, you must live with whatever I decide it
best for my project's future; just go read the rules and if in doubt
ask John about the subject, he's stated his opinion very clearly. I'm
well within my rights to disregard anyone's and everyone's feedback as
I see fit. Of course I know you adopters won't all be pleased, but I
can find one or two who are will be ecstatic, so clearly I'm right,
and in any case, I'm not on this earth specifically to please anyone.
I know it will be very hard for everyone to change their bundle
constraints, and to use the new refactored bundling of EMF, but it's
for the long term good of EMF, progress is king, and nothing you say
will sway me from my course. And don't bother making any technical
arguments because firstly, I'll throw those back it into your face and
scream "progress and the committers are king," and secondly, I'll just
argue that I'll find some way eventually, hopefully, probably, maybe,
to address them all, so please be patient and expect and accept my
half baked ideas in M2. I'm so looking forward to your feedback
(which of course I can ignore as I see fit) as you help me find the
flaws in my designs. And by the way, the more noise you annoyed
adopters generate, the more I'll argue that my whole approach of
simply inflecting all this upon you without warning and without
recourse has worked a charm. Isn't that all simply charming?
Everything I said above is 100% counter to what I've grown to expect
from other projects at Eclipse and what I feel is expected (and yes
required) of me personally as a steward for widely adopted technology.
So I'm definitely not pleased by your provocative commentary. I
suggest you be careful with that approach because in open source what
goes around comes around.
More constructively, I suggest you move this to a branch and provide
branch builds for adopters; it's seems you've not made that decision
yet. Technically you'll need to consider carefully the poor
interaction between arrays and generics. To make to make sure it all
pans out and to understand the cost of doing so, you ought to refactor
the entire platform's code base, Equinox, JDT, and PDE included, to
accommodate this new design. After all, how else can you assess
whether the new approach really makes a significant portion of the
code significantly better? While you're at it, you might decide to
finally get rid of all your existing raw type warnings. If that all
sounds daunting, consider carefully what you're asking of your adopter
community.
Regards,
Ed