Monday, March 29, 2010

Eclipse is hard to learn - what I think e4 should learn

I've been developing RCP apps for a while now. I'm not to deep into modeling (what seems to be the hype these days), I focus on ordinary user intefaces and solid business backends. I have been teaching RCP programming for a while, but now I'm back into coding full time.

I do not think I know every secret of the platform, but I am able to build useable applications, I made some progress with RAP and RIENA lately, which I both seem to like.

Teaching RCP programming reminded me always of what it was to me, at least a really hard learning curve. So many times it seemed to be guesswork when something didn't work as expected, a single typo in plugin.xml and the view doesnt show up, forgot the icon for an editor, the editor doesnt show and its all up to you and your google skills to solve the problem. So in the meantime e4 is coming up, what I like is the idea of dependency injection, what I have to get used to, is that modeling is there now, too. But what I truly think should be there is a clear diagnosis option. One should be able to get a clear answer to "why it doesnt work". Even if I think of the OSGI output if there is something wrong in the bundles dependencies. Last time I had a wrong version number in a plugin. It once again was pure guesswork to find the error.

Coding for over 20 years gave me many dislikes, and these days I really wonder how I will manage to do this for the next 20 years. I love coding, and I think that RCP is truly a powerful platform. But it should make some more noise in terms of predictability and it should be easier to understand. I've been teaching old dogs and youngsters and all of them had these moments of "why must this be so complicated".

e4 should be easier to learn and understand, thats what I think should be the primary goal. It must be an attractive platform to developers, no matter what level of experience they have. Every Newbie can learn to to some VBA code with Microsoft Access and even though it has its limitations, thats what eclipse should be too. Easy too learn and with a clear message on the reason of failure.

Last time I had a user report a bug that entries in a table got duplicated when he tried to use my dialog. It was just that I did'nt call TableViewer.cancelEditing in some special usage scenarios. A TableViewer  is an all over present interface element. Even after years of using it, I simply didn't know of the necessity to call cancelEditing. When its so hard for me, with so many years of coding, and a true motivation behind it, how does this appear to the newbie ?

6 comments:

Lars Vogel said...

I agree that e4 should be easy to program.

How do you think e4 can be improved?

patrick said...

Great article. This is something that I've been thinking about too, especially providing clear feedback for errors. I agree this should be a focus for e4, which I suppose means that I should roll up my sleeves and get to work :-)

Daniel said...

"how does this appear to the newbie?"

You feel like a complete idiot (once again). You think you know Java and there is not much that can surprise you. Then you try to write a Eclipse Plugin and feel like writing Ook!. It starts with a lot of casts because in one condition you really get Object x, in a slightly different you get a completely different object from the same method call.
If you just want to write a small plugin to make your work easier (compare to a macro in Access), the learning curve is way to steep and you end wasting more time this way than doing it all manually.

Yves YANG said...

I agree with you. The "easy" is the key word to focus. It is exactly my focus as e4 committer. I believe XWT (the declarative UI based on XML) can really simplify the UI development via tools like e4/XWT Visual Designer in visual development, and PMF for code generation from business model.

Yves YANG said...

I agree with you. The "easy" is the key word to focus. It is exactly my focus as e4 committer. I believe XWT (the declarative UI based on XML) can really simplify the UI development via tools like e4/XWT Visual Designer in visual development, and PMF for code generation from business model.

Joheinz said...

That's the way to go! Good and honest article.