views:

594

answers:

3

I am used to structural programming (eg:C), OO programming(eg:Java), Scripting(eg:Javascript), Web (eg:HTML,JSP,Servlets,CSS) etc.

Now, when I am getting started with Eclipse RCP plugin development, the whole thing gives a strange feel to me in terms of programming. The way things are in Eclipse RCP development is quite different from other languages that I have mentioned above and honestly I don't enjoy the fact much.

Am I the only who feels this way?

What other things you suggest to make my transition into Eclipse RCP life better? (if it can feel any better).

P.S.: I have already seen this thread, for the tutorials, just wanted to know how others feel if their development background is similar to me!

+5  A: 

It may feel different because it is heavily based on OSGI

That involves splitting your application into components, which should typically have a set of responsibilities that can be isolated from the rest of your application through a set of interfaces and class dependencies.

Identifying these dependencies purely by hand can range from rather straightforward for a well designed highly cohesive but loosely coupled application to a nightmare for interlocked source code that you are not familiar with.

So building an RCP application involves respecting the whiteboard pattern on which the services concept of OSGi is build, and that can be quite different than traditional OO development.

VonC
A: 

There are 2 main approaches to building an RCP app
1.) You are using RCP just for the platform features - SWT/startup exe/Auto-update. The application code will be isolated from RCP conventions and libraries as much as possible for the actual app biz functionality.
2.) Your app is completely immersed in RCP. You try to reuse RCP API's wherever possible

I have tried out Option 1. In this case, the experience is very similar to Java development. You might want to try this option out. The advantages are -
-- SWT is very well integrated into RCP. You dont need to run into hoops to get it working. I would recommend SWT over Swing any day as it is very easy for an average programmer to create a responsive and native-feeling SWT app while it takes a Swing expert to create a decent Swing app
-- With a client app, the ability to auto-update is very useful. Eclipse automatically offers this functionality.

RCP stuff you still need to learn are:
-- How the Eclipse classloader works. This is to ensure you can explicitly load resources from your jars in the correct way [NOTE: It is not simple]
-- You will need to package the JVM along with the app. And invoke the JVM on startup using relative naming convention

A: 

Yes, I feel the same way... I have read many articles about eclipse RCP to develop a UI program but still don know if I need to learn SWT and Jface or not! Would anybody help and get me out of confusion?

Youness