Eclipse ist der Nachfolger von IBM Visual Age for Java 4.0. Der Quellcode für Eclipse wurde Ende 2001 von IBM freigegeben. Die Verwaltung und Entwicklung von Eclipse wurde von der Eclipse-Foundation übernommen. 2001 gab IBM bekannt, dass es Artefakte im Wert von 40 Millionen Dollar an die Foundation gespendet habe. Dazu kommen seitdem noch die Kosten der Softwareentwickler, die von IBM angestellt sind und ihre komplette Arbeitszeit in das Eclipse-Projekt einbringen. Etwa die Hälfte der derzeitigen Entwickler am Eclipse-Basisframework wird von IBM bezahlt.

Bis einschließlich zur Version 2.1 war Eclipse als erweiterbare IDE konzipiert. Seit Version 3.0 ist Eclipse selbst nur der Kern, der die einzelnen Plugins lädt, die dann die eigentliche Funktionalität zur Verfügung stellen. Diese Funktionalität nennt sich Rich Client Platform (kurz RCP) und basiert auf dem OSGi-Standard. Sowohl Eclipse als auch die Plugins sind vollständig in Java implementiert. Als GUI-Framework zur Erstellung der grafischen Oberfläche wurde SWT verwendet. Zur Darstellung der GUI-Komponenten basiert SWT ähnlich wie AWT auf den nativen GUI-Komponenten des jeweiligen Betriebssystems. Eclipse ist daher nicht plattformunabhängig, wird aber für 11 verschiedene Systeme und Architekturen bereitgestellt. Die Plugins lassen sich durch den Download direkt in Eclipse von einem Update-Server oder durch einfaches Entpacken installieren.

WiKi Eclipse

codeproject Hannover

Jeff Eisen Blog

Hannover brings the most significant changes to the Notes client since probably Notes 4.0, when we introduced LotusScript.

The technical key to the changes is the tight integration with Eclipse. I highlight technical, because there is also an enormous emphasis in Hannover on user interface and productivity improvements and innovations such as Activity-based collaboration as well as the productivity editors. The UI I’ll leave to Mary Beth Raven to discuss in her blog. Other stuff, I’ll get to in good time.

For those uninitiated in Eclipse, here’s a quick description of Eclipse and why it matters.

Eclipse is a cross-platform open source Java project with heavy IBM involvement. It began as a platform for building IDEs (compilers, editors, debuggers, etc.) It uses a contribution model, which means that if the platform lacks functionality or behavior, you can add it yourself by writing some Java code, packaging it in something called a plug-in, and installing your plug-in. Example: If Eclipse could compile and edit Java, C++, and Pascal, but you really needed COBOL, you could just write a COBOL plug-in (in Java), install it, and there would suddenly be COBOL related menus, actions, behaviors, etc., throughout the user experience. Eclipse 3.0 introduced RCP – the Rich Client Platform, allowing Eclipse to be used for something other than an IDE by allowing one to get rid of the geeky IDE stuff (such as compilers) and by allowing one better control over the UI in order to make it more polished and customizable (such as for branding).

IBM is building a common platform titled Lotus Expeditor (previously named WED), that packages Eclipse RCP with some extra services (around security, synchronization, data, deployment, and so forth) to be used across the Software Group product set. Hannover is simply a consumer of this Lotus Expeditor common platform.

Note that when I said above that a plug-in is written in Java, that does not mean it must be exclusively written in Java. With Java mechanisms such as JNI — allowing Java code to call out to C++ or other language code — as well as Service Oriented Architecture techniques such as web services (OK, I’ve mentioned SOA — now I’m buzzword compliant), a plug-in can be used to bridge between the Java world and a “legacy” non-Java codebase. This is what Hannover does — integrate Java code packaged in plug-ins with the mostly pre-existing and mostly C/C++ Notes codebase. This existing codebase provides the bug for bug compatibility with older versions of Notes, allowing Notes applications written way back in V1 days to still run in Hannover.

So, why is this Eclipse platform interesting to the Notes/Domino customer base and particularly to the application development community?
* Eclipse’s contribution model allows modification of the Notes user experience and general behavior of Notes in ways never before possible. You can go beyond just affecting your application “rectangle”, making more global cross-application extensions.

* Eclipse allows development for Notes by those without traditional Notes skills, enabling the expansive Eclipse development community to participate in Notes development.

* The common platform used throughout IBM (Lotus Expeditor atop Eclipse) allows you to write a plug-in contributing behavior for one product (such as the newest version of Sametime) and have it work in another product (such as Hannover).

* By standing on the shoulders of others (developing Eclipse and Java as well as extensions), we are able to build a cross-platform product (Windows, Linux, and MAC) much more quickly than if we had to do it all ourselves, greatly improving our time to market and your opportunity to get new value. Eclipse enables us to leverage the skills, creativity, and sheer manpower of the dedicated Eclipse open source community.
While the focus of Hannover is clearly the Eclipse-based client, there will still be a “traditional” technology non-Eclipse version of the Notes client delivered as part of the Hannover release. We have admittedly been not too succinct around the nomenclature of how to refer to the Eclipse vs. the non-Eclipse Notes instantiation. In general, unless I make an explicit distinction, I will be using the term Hannover rather loosely, to refer to the Eclipse-based version of the client.

Finally, a word about the server. Like previous releases of Notes, the basic server instrastructure of Hannover is a Domino server — all you need for the vast majority of the functionality including mail, calendaring, contact management, Notes applications, and composite applications is a Domino server. Some functionality, such as activity based collaboration require more than just plain Domino, but that’s optional.