This chapter is from the book

This chapter is from the book

Eclipse has taken the computing industry by storm. The download data for the Eclipse Software Development Kit (SDK) is astounding and a true ecosystem is forming around this new phenomenon. In this chapter we discuss what Eclipse is and
who is involved in it and give you a glimpse of how large a community has put its weight behind this innovative technology.

An open source project would be nothing without a supporting community. The Eclipse ecosystem is a thriving one, with many
research projects based on Eclipse, commercial products that ship on top of Eclipse, lively discussions in newsgroups and
mailing lists, and a long list of articles and books that address the platform. The following pages will give you a roadmap
of the community, so that you will feel more at home as you come to wander its winding streets.

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.