Until recently, I was affected by the Eclipse 4 UI only as an end-user (with all the issues discussed elsewhere).
Yesterday I worked on a requirement that sounds like a perfect candidate to get my hands dirty on the new API: a command to open an editor into a specific part stack which is not the editor area.
I was quite surprised to find myself walking in discouraged areas: literally all the new "API" I'm using isn't actually API, all have "x-friends" lists and since I'm not listed as a friend I'm told that I'm not welcomed to use these packages.
Having coined notions like "gradual encapsulation" [1] and even "decapsulation" [2] I'm not utterly scared by using a few classes & methods that I wasn't expected to. But seeing the entire wealth of o.e.e4.ui.workbench and o.e.e4.ui.model.workbench behind fences ("private party - by invitation only") makes me feel I'm walking the wrong alley.
What's the message behind these x-friends declarations?
- these models shouldn't be used programmatically?
- these API are not yet finalized? (schedule?)
- nobody working on this cares about API cleanness, the x-friends are simply forgotton remnants of the days of incubation?
- these parts of the Eclipse SDK are actually still in incubation?
As usual I'm happy the technology allows me to ignore the restrictions, but - as usual - I'm very much interested in learning about the intention behind those fences.