Eclipse basiert auf einem modularen OSGi Framework (Equinox). In dieses Framework wird eine ganze Menge an PlugIns deployed (OSGi Bundles). Auf eclipse.org werden viele hundert davon entwickelt (wie zum Beispiel SWT) und ein Auszug aus diesen vielen hundert Plugins formen die Eclipse Java IDE wie du sie kennst. Lässt du allerdings einige davon weg, und fügst ein paar eigene hinzu, erhälst du eine komplett andere Anwendung. Diese basiert dann auf Eclipse Technologie (dem Framework + das Set an PlugIns das du einbinden möchtest), ist aber keine IDE wenn du das nicht möchtest. Das ist dann eine Eclipse RCP Applikation. Du kannst massiv von den Eclipse Technologien profitieren, da du eine erweiterbare, modulare Infrastruktur (OSGi) geschenkt bekommst und viele Eclipse PlugIns für eigene Zwecke verwenden kannst.
Ein einfaches Beispiel wäre zB das du bestimmte Teile, wie zum Beispiel den Project Explorer wiederwenden kannst und an deine Bedürfnisse anpassen kannst. Du bekommst Frameworks für alles, von Progress Monitoring, über mächtige Resource API, zu Team Integration für zB CVS. Du baust dir Quasi eine Anwendung aus fertigen Bausteinen und schreibst nur noch die Teile selbst, die es nicht bereits fertig gibt.
Eclipse RCP kann man sich ähnlich wie SWT herunterladen und man hat halt dann einfachere und abstraktere Tools als bei SWT und muss ein bisschen anders programmieren.
Die Eclipse IDE enthält bereits alles um eine RCP zu erstellen. Es ist AFAIR sogar eine Sample RCP im Download enthalten (ein einfacher EMail Client),
Und außerdem basiert RCP auf SWT so wie SWT auf AWT basiert.
RCP basiert nicht auf SWT, und SWT basiert nicht auf AWT.
RCP beschreibt eine Plattform. Meistens wird SWT als grafisches Toolkit verwendet, das ist jedoch keine Vorraussetzung.
1. Warum programmieren dann so viele mit SWT?
Ich würde mal behaupten das deutlich mehr Leute an Eclipse basierten Anwendungen arbeiten, als an Anwendungen die lediglich SWT als Toolkit verwenden.
2. Wie groß wird die JAR-Datei dann, wenn RCP so umfangreich ist?
Es hängt davon ab wieviele Module man in seiner Plattform ausliefert. Das absolute minimum für zB eine Anwendung die lediglich Equinox verwendet dürfte so bei 3MB liegen. Typische RCP Applikationen mit SWT als Toolkit und dem Rumpf der Eclipse UI fangen so bei 12-15MB an würde ich sagen.