Eclipse: a Platform for Integrating Development Tools

Eclipse: a Platform for Integrating Development Tools

Eclipse: A platform for integrating development tools by J. des Rivie` res J. Wiegand Modern n-tier applications are developed The Eclipse Platform was created to address this is- using components implemented in many sue by providing a common platform for diverse IDE- different technologies, including HTML, based products and facilitate their integration. The Java™, JavaServer Pages™ (JSP™), first part of this paper introduces and gives an his- Enterprise JavaBeans™, connectors, COBOL torical perspective of IDEs, followed by a description or PL/1 programs, and relational database of the technical aspects of the Eclipse Platform. In schemas. Creating an effective integrated the second part, we discuss the efforts of the Eclipse development environment (IDE) for use in community of tool developers to make the Eclipse programming these applications presents Platform ubiquitous. some special challenges because a large number of different tool technologies have to A brief history of commercial IDEs. In the early days be tightly integrated in support of of programming, the only software development development task flows. In order to meet tools that programmers really needed were a com- these challenges, the Eclipse Platform was piler for the language they were programming in and designed to serve as the common basis for a link editor and loader to combine the compiled diverse IDE-based products, providing open files into executable form. Programs were composed APIs (application programming interfaces) to offline; debugging was done primarily with output facilitate this integration. This paper describes statements inserted in the code. With the advent of time-sharing, programs started to be written and de- the overall architecture of the Eclipse Platform bugged interactively by using the computer as well. and the www.eclipse.org open source The earliest commercial IDEs were built for the pro- organization and consortium created to 1 2 gramming languages BASIC and APL. The Emacs facilitate broad industry adoption of this editor 3 is arguably the first language-neutral, exten- platform. sible IDE, and to this day it maintains a loyal follow- ing who prefer it to the GUI (graphic user interface) -based IDEs that followed it. Customers developing applications need a variety of different tools from various tool vendors to support The rise of personal computers saw the creation of the full software development life cycle. Develop- a number of commercial IDEs geared towards pop- ers can be more productive and effective if these tools ௠Copyright 2004 by International Business Machines Corpora- work well together. Integrated development environ- tion. Copying in printed form for private use is permitted with- ments (IDEs) can aid in the integration of tools to out payment of royalty provided that (1) each reproduction is done facilitate the software development process and will without alteration and (2) the Journal reference and IBM copy- succeed in doing so to the extent that the commu- right notice are included on the first page. The title and abstract, but no other portions, of this paper may be copied or distributed nity of tool developers can be influenced to develop royalty free without further permission by computer-based and tools in ways that increase the likelihood of their in- other information-service systems. Permission to republish any teroperation with other tools. other portion of this paper must be obtained from the Editor. IBM SYSTEMS JOURNAL, VOL 43, NO 2, 2004 0018-8670/04/$5.00 © 2004 IBM DES RIVIE` RES AND WIEGAND 371 ular programming languages, including Pascal (e.g., API. 14 This kind of open-ended extensibility is essen- Borland Turbo Pascal** 4), LISP (e.g., Xerox Inter- tial in the commercial IDE arena because no IDE ven- lisp 5), Smalltalk (e.g., PARCPlace Smalltalk 6), and dor could possibly provide a sufficient set of useful Cϩϩ (e.g., Lucid Energize 7). By the early 1990s, an tools to satisfy all customer needs. Which third party IDE was standard fare for most programming lan- tool will be bundled as an add-in for a particular IDE guages. When the Java** programming language ar- is determined by market forces. rived in 1995, the market was soon flooded with Java 8 IDE products, including Borland JBuilder**, Syman- Some IDEs start from a language-specific base and tec Visual Cafe´, 9 Microsoft Visual Jϩϩ**, 10 and expand from there. For instance, Oracle JDeveloper 11 IBM VisualAge* for Java. Suite** 15 is a Java-centric IDE which expanded into UML modeling, well beyond a narrow Java focus. Net- The use of IDEs is prevalent for one simple reason: Beans** IDE16 started as Java-specific, but later they make software developers more productive. Be- evolved into a language-neutral, open source IDE that cause of this utilitarian appeal, IDEs continue to is used within commercial IDE products, including evolve as people find new ways to improve produc- Sun ONE Studio. 17 Microsoft Visual Studio** .NET 18 tivity. Over time, the set of tools integrated into the supports multiple languages within the same IDE and IDE has expanded from simple editors, compilers, provides extensive language-neutral as well as lan- and debuggers to include incremental compilers, guage-specific APIs for use by tools. In the effort to browsers that present the program in meaningful expand their horizons, IDEs must overcome any lan- ways (e.g., classes and methods arranged in a sub- guage-specific biases which may have been built into class hierarchy), automatic code completion, and vi- them. sual editors for creating graphical UIs (user inter- faces). This trend towards more sophisticated and powerful language-specific tools continues, 12 and Eclipse Platform technical overview nowadays includes facilities like built-in editor sup- port for re-factoring code. In the following section, we give a high-level descrip- tion of the Eclipse Platform. 19 The Eclipse Platform Another way to improve productivity is for the IDE is an open-ended, language-neutral IDE. The open 20 to cover more of the software development life cy- source Eclipse Platform 1.0 was released in late cle. For example, most commercial IDEs include op- 2001 and began appearing in commercial products tional version and configuration management for shortly thereafter, the first being IBM WebSphere* 21 source code files because this is a key concern for Studio Application Developer 4.0. The Eclipse working programmers. IDEs are rapidly expanding Platform is aptly described as “an IDE for anything into the other areas, such as software design with and for nothing in particular.” UML** (Unified Modeling Language) modeling tools (e.g., Rational Rose** 13). Figure 1 shows a screen capture of the main work- bench window as it looks with only the standard ge- In reality, working programmers usually do much neric components that are part of the Eclipse Plat- more than write and debug code in a single program- form. The Navigator view (Figure 1, top left) shows ming language. It is commonplace for a program- the files in the user’s workspace; the text editor (top mer to create and manipulate many non-code arti- right) shows the contents of a file; the Tasks view facts such as HTML (Hypertext Markup Language) (bottom right) shows a list of to-dos; the Properties pages. This means that the programmer ends up us- view (bottom left) shows various properties of the ing additional tools not integrated with the IDE.In file selected in the Navigator view. order to address these needs, most modern commer- cial IDEs are designed to be open and extensible so Although the Eclipse Platform has much built-in that new tools can be supplied by third parties (i.e., functionality, most of that functionality is very ge- someone other than the IDE vendor). This is done neric. It takes additional tools to extend the platform by providing a mechanism for the IDE to discover to work with new content types, to do new things with add-in tools on start up, and by publishing APIs (ap- existing content types, and to focus the generic func- plication programming interfaces) for use by these tionality on something specific. The Eclipse Platform tools to integrate their functions with the IDE. For is built on a mechanism for discovering, integrating, example, Borland JBuilder has an Open Tools API, and running modules called plug-ins. A tool provider and IntelliJ** IDEA has a product called Plug-in writes a tool as a separate plug-in that operates on 372 DES RIVIE` RES AND WIEGAND IBM SYSTEMS JOURNAL, VOL 43, NO 2, 2004 Figure 1 Eclipse Platform user interface files in the workspace and surfaces its tool-specific ● Support both GUI and non-GUI-based application UI in the workbench. When the platform is launched, development environments. the user is presented with an IDE composed from ● Run on a wide range of operating systems, includ- the set of available plug-ins. The quality of the user ing Windows** and Linux**. experience depends significantly on how well the ● Capitalize on the popularity of the Java program- tools integrate with the platform and how well the ming language for writing tools. various tools work with each other. The Eclipse Platforms principal role is to provide Platform design goals. The Eclipse Platform was de- tool providers with mechanisms to use and rules to signed and built to meet the following requirements: follow that lead to seamlessly integrated tools. These mechanisms are exposed through well-defined API ● Support the construction of a variety of tools for interfaces, classes, and methods. The platform also application development. provides useful building blocks and frameworks that ● Support an unrestricted set of tool providers, in- facilitate developing new tools. Figure 2 shows the cluding independent software vendors (ISVs).

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    13 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us