Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] More info about the project

Vlad Dumitrescu a écrit :
I asked a similar question on the forums, but they are unavailable at
the moment and I didn't get to read the answers. I'll write down the
way I understand the transition process for an existing code base,
please correct any misunderstandings.

I answered on the newsgroups before they went down, but it seems you sorted things out. It might still be interesting to read so I'll forward it here.

One thing about Tom's forward compatibility layer: as far as I know, it's not bundled as an external project yet (just a few classes to embed in your 3.x-compat bundles), and it is incomplete, in the sense that some services are not forwarded yet. I think using that forward-compat' layer is the right approach for migration, I'm just not sure it makes anything easier at this stage :).

Simon

----- Forum message ----
Simon Chemouil wrote :
> Vlad Dumitrescu wrote :
> Hi,
>
> Maybe I'm missing the obvious, but I'm still trying to get all my bearings right.
>
> The existing tutorials are targeting RCP applications. I can't find
> anything about developing plugins that will run in the IDE -- the PDE
> tooling targets 3.6 and less and generates old-style plugins...

As it is now, the plan is that IDE plugin developers should develop their plugins just as they always did, and make sure they're only consuming public API. The only difference is that they should test their plugins against both 3.x and 4.0 if they want to be compatible with both releases.

The "org.eclipse.e4" API is provisional and is used internally by the compatibility layer which is a new implementation of the Eclipse Workbench over the Eclipse 4 Application Platform. Adventurous RCP developers can benefit from the provisional API because it offers new and freer ways to develop apps, but there is not much to gain for plugin developers as it is now.

By programming against the provisional API, a plugin developer loses compatibility with the 3.x series (unless by using a 4->3 compatibility layer), has no guarantee the model or the API won't change, and the gain is minimal: the SDK/IDE look is not a problem for plugins, and plugins themselves extend current bundles/features that are probably not developed using the 4.0 API. If your plugin has dependencies which are themselves dependent on 3.x, the interest is really limited. It can be interesting when your plugin only depends on eclipse core/ui.

As of today, for a plugin developer, the only advantages I can see are:
 * for fun, learning, etc.
* taking advantage of the new modeled UI, contexts, DI, etc, but keeping in mind that you're forced to go back to the 3.x-style API through compatibility for most of the integration with current plugins/features (like JDT, Team, etc).


In the long run, of course, the plan is to have a stable 4.x API that plugin developers code against, but some features are still missing now so the 4.0 story for plugin developers is incomplete.

The early adopters release will allow the 4.0 team to improve the compatibility layer by having plugin developers test their 3.6 compliant plugins on the 4.0 SDK, and report their bugs.

If you still want to write plugins for 4.0 knowing that they'll likely have to mix 3.x and 4.0, but still only be compatible with 4.0, with no API stability guarantee... Well you should go for it, because the 4.x programming model is much more pleasant imo, but keep in mind that by doing so, you will be reaching less users today.

In this case, install model tooling, the E4 SDK and the EMF SDK from the p2 update site already preconfigured in the 4.0 SDK ("E4 2010 updates") and try to mix 3.x and 4.0 tutorials...

By the way, PDE doesn't "generate" for 3.6. It has a target platform, and once you install the 4.0 bundles, you can use them and generate the bundles using them from PDE.


Hope this helps,


Back to the top