Wednesday, June 01, 2005

Eclipse: Adapting and Updating an IDE

Mary Kroening write in Dr. Dobb's Journal:


In the article "Eclipse: A Software Developer's Story" (C/C++ Users Journal, September 2003; http://www.ddj.com/documents/s=9710/cuj0309kroening/), I described how and why we updated our Amzi! Prolog proprietary IDE to one based on Eclipse 2. A lot has happened since then, the least of which is that Eclipse is now at Version 3.1. In this article, I describe the move to Eclipse 3, and share user feedback about the new IDE. To recap:

Prolog differs from conventional programming languages in that it is non-procedural and logic-based. It has built-in search and pattern-matching capabilities--so programs run forwards looking for a match, then backwards on failure or to find additional matches. Unlike other Prolog implementations, Amzi! (http://www.amzi.com/) specializes in embedding Prolog logic-bases in conventional (procedural) languages and tools such as Java, C++, .NET, Delphi, and Web servers.

The existing Amzi! IDE dates from the early 1990s and was showing its age. Consequently, a couple of years ago we started thinking seriously about a replacement. We wanted an IDE that would run on multiple platforms, and we wanted to support all the modern conveniences.

The question was how to do that without a budget of the likes of Microsoft or Borland? When we learned of Eclipse, we were immediately intrigued as it offered:

  • True open source licensing where we could develop and own our Prolog-specific additions yet contribute to the base product for all to benefit.
  • Ready-to-run downloads for a wide variety of Windows and UNIX platforms.
  • Full source code and remote debugging support. The latter is especially important to us because our customers develop Prolog components as part of larger applications instead of stand-alone Prolog programs. Debugging embedded components (especially those running on Web servers) is especially challenging without remote debugging.
  • Our users could develop both parts of their application using the same IDE. That is, they could develop the user interface in Java or C++ and an intelligent logic-base and/or rule-base in Prolog without ever leaving Eclipse.
  • The ability to provide international versions and support other languages (half our customers are outside the United States).
  • An array of modern conveniences such as projects, syntax coloring, file outlining, Ant build tools, slick source code repository interfaces and automatic file versioning.
  • The Eclipse Consortium is supported by all the major computer software developers (except Microsoft).
  • An active developer community providing a variety of extensions for other languages (Java, C++, Cobol) and features (debugging servlets, modeling, even telnet).

However, there were also some downsides:

  • Eclipse is written in Java. So the minimum download for the Eclipse Platform (runtime) and Java is over 30 MB. Our current product download is just over 5 MB, so that is a very large increase for our international customers.
  • The dynamic nature of Eclipse and its extensions presents some performance issues.
  • Project handling is confusing and inflexible, but improving.

On balance, an Eclipse-based IDE would clearly offer many more features than we could ever hope to build from scratch. But could we get Eclipse to adapt to a Prolog developer's needs for building components in a non-procedural programming language, and at what cost initially and for each major upgrade of Eclipse?


Read complete article. . .

No comments: