FAQ 1 – What is Eclipse?
Eclipse means a lot of different things to different people. To some Eclipse is a free, state-of-the-art Java development environment. To others, Eclipse is a flexible environment to experiment with new computer languages or extensions to existing languages. To yet others, Eclipse is a comprehensive framework that deploys many advanced and modern software design and implementation techniques.
Zawinski’s Law: Every program attempts to expand until it can read mail. Those programs that cannot so expand are replaced by ones that can. —Jamie Zawinski
The official party line is, Eclipse is an open (IDE) platform for anything, and for nothing in particular. Eclipse is open because its design allows for easy extension by third parties. It is an Integrated Development Environment (IDE) because it provides tooling to manage workspaces; to build, launch and debug applications; to share artifacts with a team and to version code; and to easily customize the programming experience. Eclipse is a platform because it is not a finished application per se but is designed to be extended indefinitely with more and more sophisticated tooling. Eclipse is suitable for anything because it has been used successfully to build environments for wide-ranging topics, such as Java development, Web Services, embedded device programming, and game-programming contests. Eclipse has no particular focus on any vertical domain. The dominance of Java development tooling in Eclipse is merely historical. The platform has no explicit or implicit support whatsoever for Java development as provided by the Java development tools (JDT). The JDT has to play according to the same rules as all the other plug-ins that use the platform.
When this book was being written, Eclipse itself could not read mail yet, but, of course, products based on Eclipse do exist that can read mail. That sums it all up.
Speaking more technically, Eclipse is built on a mechanism for discovering, integrating, and running modules called plug-ins. A contributor to Eclipse delivers as one or more plug-ins an offering that manifests itself with a product-specific user interface (UI) in the workbench. Multiple, usually unrelated, products can be installed in one Eclipse instance and happily live and cooperate to perform a certain task. The class of end products includes IDEs, but also so-called rich clients, applications that benefit from the Eclipse Platform design and its components but do not look like an IDE. Examples of the latter category include the latest generation of applications based on IBM Workplace Client Technology, the first of which will be Lotus Workplace Messaging 2.0 and Lotus Workplace Documents 2.0.
This FAQ was originally published in Official Eclipse 3.0 FAQs. Copyright 2004, Pearson Education, Inc. All rights reserved. This text is made available here under the terms of the Eclipse Public License v1.0.