In order for e4 to succeed, it will need to have a solid tooling story. There are some outstanding issues in PDE that need to be solved to enable working against the various targets e4 is aiming to support.
Target Platform Issues
: Target Platforms should be more first class
: Associate target definitions on a per-project basis (multiple target platforms)
Application Model / Services Tooling
See e4/Eclipse Application Model. When we come up with a strong consistent story of what a Service is, how it exposes its Properties, Capabilities and State, we'll also want some Tooling to create these descriptions and do some consistency checks.
See e4/Architectural Foundations. When we come up with a consistent Story for managing asynchronousity / concurrency, we might want some tooling to Refactor or migrate existing code into the new Story; do consistency checks on concurrent access etc.
Macro Recording / Script Editor
See e4/Commands. When it's possible to record a macro of operations on Eclipse, we'll want a macro / script editor (with content assist, of course) to edit that script as well as tools to organize / replay scripts, assign them to menu items, toolbar buttons etc (similar as in various Office products)
If there is a pervasive security model for e4 there will likely need to be tooling around it. This could be anything from a user/role mapping to sophisticated component selection for roles.
Client / Server Log Viewer
See Client / Server split. When the Application is split between Client and Server, we'll want to log interactions between the two (for problem determination), or replay interaction logs against a Server only for Unit Testing.
The question is, what else do people want? What do they envision as the tooling story for e4?
Should we have more templates? There aren't many templates available in Eclipse... how can we make this easier?
The following notes were taken at the Tooling/Build breakout session at the e4 summit on May 22nd.
Number in brackets indicates priority. Ie: these things should be in place within X months for successful self-hosting to be possible.
- tooling for dependency injection - we may be able to cannibalize this from existing DI projects. (1)
- model tooling - there is already a plethora of tooling available for EMF. (1)
- tooling for scripting languages (JS - JSDT, ATF, DLTK, Action Script, etc) (1)
- distributed debug/cross-language debug, with emphasis on the later. There may be the beginnings of such tooling in ATF and Firebug (for example). (1)
- general web tooling (3)
- cross compilation to Action Script/GWT (3)
- cross language refactoring (2)
- css editor/UI editor (3)
How do we consume tools? This is particularly difficult when we move the e4 tooling itself to e4 - we will drag along any dependencies
- PDE build is not enough - do we extend, replace or rework it? Do we go towards a unified build process based on workspaces?
- Can we make the build incremental?
- integrated assembly/provisioning/co-ordination
- dependency injection makes for easy testing
- do we need JSUnits? There are existing open source projects, but the licenses are unknown
- how do we do distributed testing?
- code generators for non-java languages
This is A.LOT.OF.WORK.