So there are many people around asking themselves why the hell did they rewrite the whole foundation of the Eclipse SDK while I as a user of the SDK don’t gain any benefits on first sight.
I’m try to collect some of the reasons why I think Eclipse 4 is superior to Eclipse 3 (and Eclipse 3 RCP) in the next few weeks and cover them in a blog post like this one.
Easier to add features / fix bugs
I’ve just released a feature to Eclipse 4 which took me no more than 5 minutes to implement (Bug 355763). I’ve also worked on the same feature in 3.x and there it took me around 2 days to understand how this whole thing works and another few days coming up with a fix which finally could not be applied because it didn’t worked in some corner cases (Bug 355750).
Advantage 1: Committers can fix bugs much faster
Not every feature is hardcoded in the workbench plugin
Many features like e.g. the collapsing of empty containers is not hard coded into the workbench code itself but implemented with so called addons who listen to the workbench application model and react upon changes in there (e.g. the removal of children in a container, …) but because the thing is an addon and you miss the durable feature (like many people did in 3.x for a long time) and don’t find a committer to implement it for you can now do it your own by replacing only a small discrete piece of code.
Advantage 2: Developers can add features / fix problems themselves without waiting for up-stream committers to implement it for them
Advantage 3: We the platform committers don’t own all the worlds problems because we have to implement it in our code and have to deal with the maintenance
I’ve been wanting to contribute my spare time to the eclipse platform but back in the time of 3.x it was really difficult with a very steep learning curve. This new way of looking at the platform actually induced me to try again and I’ve found it a lot easier to submit patches.
The title should be “Why is Eclipse 4 platform better than Eclipse 3 platform”.
I appreciate e4 efforts and new technology, but technology alone can not create a successful product (think about OS2 vs. Windows 95). What I would like emphasize here: by all the enthusiasm about technology the final product will be also measured by such boring things like usability or number of bugs. Just yesterday I’ve tried (again) to use 4.2 M6 for debugging. It took me less than 5 minutes to find 2 show-stoppers. One was that the command listeners receive NO events at all and second one is that debugging was just broken. After not being able to set a breakpoint in a .class file I quickly switched back to 3.8 M6 where I was able to debug and do my job in exact the same workspace. So I still think that 4.x is not ready for the end users, even it uses superior technology as 3.x.
I/we know that there are bugs and we are trying hard to fix them. I’ve followed your bug reports and i know that the team takes them very serious.
I hope you keep trying and pushing things forward by filing bugs,…. .
I’ve used the title because upcoming posts will provide informations about unique SDK 4.x features and i wanted a have all of them grouped under the same title.
BTW please try latest nightly builds there are many problems fixed.
Meta-reason: Because some people know how to learn lessons;-)
Making an MultiPage editor where pages are not for same file (like it is fo build.xml) but are for example HTML template combined with a acompanying class was horrific and never worked well in 3x. Is there a chance this will be possible in e4 without for example loosing functionalities (some shortcuts fail.. etc) ?
Not in 4.2 but we might have something similar in the queue for 4.3 where you can put child-editors inside an Tab which makes things feel like it is one editor though in reality there are multiple of them Remy Suen showed implementing split editors with this feature but it could be applied to different editors within one Tab without problems.
There are some internal arrangements needed which are too risky at this point in time of 4.2.
hope you are right 🙂 …
more than few years have passed since few bug reports were made in 3.x for this but never gotten fixed. Probably too complicated to implement properly, so I just hope it will not be impossible in e4 as well … and someone makes a small sample plugin 🙂