Eclipse is an integrated development environment (IDE) for software. It also represents an ideal
, incorporating modularity, extensibility, and community. Contributing to Eclipse: Principles, Patterns, and Plug-Ins
is therefore significantly more than a book about how to write plug-ins for the Eclipse framework. The book--by software patterns guru Erich Gamma and "extreme programming" exponent Kent Beck--explains how new Eclipse modules should interact with existing software elements, and make themselves further extensible. It also emphasizes the importance of packaging new plug-ins and making them available to others as new Eclipse features. The book's emphasis is on community, and helping the Eclipse project grow and improve.
That said, this book is an excellent how-to guide. Gamma and Beck take the time to carefully detail a couple of model plug-in projects--including the industry-standard Hello World exercise--and take care to explain the highly visual Eclipse development process one step at a time. They don't unleash bushels of source code on the reader, but nonetheless manage to walk the reader through a series of progressively more elaborate extension projects that exercise some of the most exciting parts of the Eclipse framework. As you'd expect from a book involving Gamma, discussion of patterns appears with increasing frequency toward the book's conclusion, enabling the reader to expand on the authors' shared wisdom and understand the Eclipse design better. --David Wall
Topics covered: How to extend the Eclipse development environment--both in the narrow sense of writing code that makes the software do something new, and in the broad sense of participating in the Eclipse community. Specific coverage addresses extension points, markers, perspectives, and help. There's also a guide to the Eclipse architecture, framed as a series of "pattern stories."
This book encourages tool building by laying bare the design of an excellent tool platform, Eclipse, and encourages design by building a typical tool extending Eclipse. This tutorial on creating custom tools also provides an explanation of a highly effective software design philosophy. The authors revive the lost art of supporting existing work by building tools. This book improves the software developers skill set by building little tools, and gradually growing those tools into better-than-professional quality products to help a whole community of developers. This book revives that highly-effective practice of tool writing and provides lessons along the way that tool building and design are two of the most leveraged skills for software developers.