Felix Grant discovers that, despite appearances, Eclipse is all about clarity
In intelligence circles, the rules for choosing a name for an operation generally include the requirement that it give no clue as to the nature of that operation’s aims or objectives. People who set up large software consortia seem to think in much the same way. While application software tends to have names reflecting function (think of Word, Mathematica, TableCurve), desirable attributes (Excel, FlexPro, etc) or both (DesignEase, Kaleidagraph), projects seem drawn to inscrutability. Why name an entity whose mission is clarity with a word implying obscurity?
Because clarity is, at heart, what Eclipse is all about: provision of a free and open software framework for transparent applications development, and an active user community around it. Java-based, born of IBM as a successor to VisualAge Micro Edition, now under the direction of a not-for-profit industry consortium with components from many different companies, it has grown into an intriguing example of the way standards can evolve out of cooperation within a competitive market.
Being primarily an end user, not a software developer unless a pressing outgrowth of my main concerns requires it, I let much of its early progress pass me by with only peripheral attention. Then, a year and a half ago, the Eclipse Workbench made its appearance in a large mainstream science data analysis product, Insightful’s S-Plus 7, and I belatedly took close notice for the first time. In June of this year, when I had just about caught up, Wolfram also released a Workbench version of its own. One lesson that I have learned, much to my own surprise, is that this trend is not only relevant to developers – the past 18 months have won me over to a wholly unexpected degree.
Workbench is just one part of an Eclipse range that is too great, and too dynamic, to comprehensively deal with here. On the other hand, without some idea of that range, the importance of Eclipse and its Workbench for science users is lost. I’ll touch on a small sample, but refer interested readers to the Eclipse website (see sources) for the rest.
There are five main components: a core platform (RCP), a bundling framework (from the OSGi Alliance), a toolkit of interface ‘widgets’ (SWT) topped by a helper classes toolkit (JFace) and, finally, the Workbench itself. The Workbench is the developer’s doorway onto use of the whole structure.
The S-Plus Workbench, showing the Resource Perspective with an XML project skeleton in the main window. Overlaid at lower right, for comparison, are the open perspective selectors for S-Plus (background) and Wolfram (foreground) Workbenches.
Creating a new project with Wolfram Workbench’s wizard.
Viewed together, the common Eclipse foundations and approach of Wolfram (top left, behind) and S-Plus (bottom right, in front) Workbenches is clear to see.
Though my selected Insightful and Wolfram examples are of particular interest to scientists (and there are many others; the Photran IDE for Fortran, for example), we benefit as much as anyone else from broader acceptance of a standard. In fact, widespread adoption is arguably of greater significance in the long term than local usages within the scientific genre, since it solidifies standards acceptance and creates a widening skills pool. Adobe, for instance, has indicated its intention to shift development into an Eclipse framework, and what Adobe does is inevitably felt across the spectrum of graphics-oriented information and communication technologies. Which development environments survive and which disappear is never certain, but nobody can safely ignore Microsoft for long. Teamprise, a Source-Gear division that deals in products and approaches using Microsoft’s Visual Studio Team system, has acknowledged the importance of Eclipse by releasing a plug-in to enable VST access.
Plug-ins are important to Eclipse, more so than their name implies, serving as modular components that replace hard code functions typically used elsewhere. The RCP (Rich Client Platform) core is itself built from substructures that can be used to build other applications, and on top of it (or, for that matter, subtracted from it) plug-ins provide the building blocks to provide specific requirements. The S-Plus Workbench from Insightful is an example: it is a specialised plug-in developed by Insightful, not a new structure.
Insightful’s incorporation of the Workbench into Enterprise Developer editions of S-Plus, apart from being my personal wake-up call, serves as an example of Eclipse being offered onward by a software vendor for its customers’ own use. This is more significant than it sounds: it represents an implicit shift from a market centred on competing proprietary applications to one viewed by providers as an ecology within which those applications support central concepts. This is not a new view of the world sprung fully formed from noting, of course; the trend has been there for a long time; it is, nevertheless, a usefully visible marker.
The S-Plus plug-in doesn’t, at one level, do anything new: you are still writing a program in the S language, to meet a data analysis need. From another standpoint, it is very new indeed. The 16 Workbench views provided by S-Plus Workbench’s customisable perspectives (see the ‘Workbench crib sheet’ box for brief explanations of terms) provide an approach to that programming task that is not only more structured, but also more general. That, in turn, permits a rapid acclimatisation for anyone who has already used Eclipse Workbench in other tasks. By extension, it means easier and more efficient communication (including problem solving and creative development discussion) across parochial task or application boundaries.
In the long run, the benefits of this for institutional or corporate adopters will be a growing synergy yielding simultaneous infrastructure savings and productivity gains. For individuals like me, there are significant advantages too. The personal overhead inherent in having to maintain at least minimal competence in (for example) S and Mathematica syntaxes, alongside a plethora of other proprietary and generic high level languages in which work or output may be required, is already considerable. Different development environments doing the same things in different ways, with different conventions, multiply that overhead greatly, and moving between larger entities, as a freelance has to do, brings it into particularly sharp focus. The prospect of a common framework across multiple environments, with generic language output taken care of, is close to bliss – and the past few months exploring the S-Plus and Wolfram workbenches really do suggest that the bliss is achievable. Economies of scale, however, mean that the greatest benefits will accrue as organisation size grows.
The version 3.0 Workbench accompanying S-Plus 7 includes S-Plus, Resource, CVS (version control) Repository, Debug and Team synchronising perspectives. As I finalise this for press, release 8 is in beta with a new, improved version 3.2 significantly beefed up to provide a fully fledged debugging environment, with common controls on the toolbar through other perspectives. Persistent breakpoints permit detailed step-by-step examination of program execution progress through different views – tracking expressions and resource allocation, calling functions, evaluating and reviewing variables, and so on. The breakpoints view is well organised, allowing multiple organisation types to best reflect the task in hand with direct linking to the script editor for informed code editing on the fly, and the profiler’s function calls view is particularly useful in organising the flow of S structures.
The Wolfram perspectives list, as can be seen in an accompanying illustration, is reassuringly similar. S-Plus is obviously missing, three additional entries relate to Java and one to Plug-in Development; the debugger is comparable with the implementation in S-Plus 8. The usefulness of Workbench tools in general, and the debugger specifically, are even more immediately apparent in a pure mathematical environment than in a statistical one – not greater, necessarily, but more clearly visible. The speed and efficiency of different algorithms for tackling the same problem, to take an obvious instance, can be watched and profiled with great clarity; the structured outlining of source code instantly illuminates what is going on; hover-based help and rich error reporting lubricate passage through unfamiliar territory.
When I first looked at Insightful’s Workbench, it was with some trepidation; it seemed like yet another thing to learn, when I already had quite enough to remember and would rather be sploshing about on remote beaches. It soon won me over, however – not least because it offered a more generically familiar superstructure to my work there. Within seconds of opening the Wolfram Workbench, the full benefits were obvious: the flying hours already gained with the S-Plus version were transferable, and after a short adjustment I could concentrate on what I was supposed to be doing. Wolfram and Insightful implement their own perspectives in slightly different ways, but not sufficiently so to slow down use for more than the first minute or two.
An interesting difference between the two is in marketing approach. Insightful bundles the Workbench with a single product version, the top of the range Enterprise Developer edition of S-Plus. Wolfram offers it as a separate add-on for use with ‘products such as Mathematica, gridMathematica, and webMathematica’. So far, as I finalise this at the beginning of October, Wolfram’s is still a pre-release product only available to customers signed up for the Premier Service package, although the website refers to open sale ‘later in the summer’. Wolfram tell me that other administrative matters have absorbed attention, and full release through the web store, is still planned ‘shortly’.
If you don’t presently use an IDE at all, does any of this have anything to do with you? If all you ever need to do in either S-Plus or Mathematica is interact with a single native file through the exploratory graphical user interface, then perhaps not. How many users of such heavyweight products does that describe, though? If what you are doing involves marshalling other material (external data files, code editing, multiple documents especially if they reference each other) then I’ve come to think that the answer is, in most cases, ‘yes’.
In either Workbench version the resource perspective (similar enough to the project tree in many software products to be immediately accessible) is worth getting to know just for its management capacity, even if you make no use of anything beyond that. Every cautious new user exploring the possibilities will find their own favourite feature to love; what did it for me was the ability to place task markers throughout the project structure – effectively a central hot-linked ‘to do’ list, keeping track of progress and action across the span of your material.
At the other end of the scale, and with relevance even at the single file level, it’s possible to add in output code support. S and Mathematica each have an internal structural logic that speaks directly to my own background, experience and nature – that, of course, is what they were designed to do. C and its descendants, on the other hand, were designed with other priorities in mind and frankly make my head hurt – not because there is anything wrong with them, but because the are wired up differently from me. With plug-ins available for the workbenches, I can gaily do my statistical or mathematical thing in the place where I’m happiest, then let the plug-in write out C++ code. Well, perhaps ‘gaily’ is an exaggeration; I don’t pretend that this is a click-and-go process but, with some determination and some help from friends and colleagues with greater nuts and bolts experience in this sort of thing, I was able to get things set up with only a modicum of pain. Any user with access to an IT support department ought to have no trouble – and, of course, it’s a one-off investment of time for a permanent and worthwhile pay off in convenience and efficiency.
For the end user, a great advantage of proprietary tools built on shared open-sourced, third-party foundations, as Insightful and Wolfram have here, is that development is not limited to that conducted by the immediate provider. Development at the Eclipse Foundation means development in the underpinning of your proprietary Workbench installation. Under the guidance of a tolerant and long-suffering university IT department, and taking advantage of Eclipse’s modularity, I was able to build a Workbench variant myself, using Eclipse tools to replace components of an existing one with upgraded versions. Believe me, if I can do it, anyone can.
There is some haziness about the license for Eclipse. It’s free, and open-source, but it’s not the same as the GNU General Public Licence (then again, the GPL has itself changed in some respects). Legal people with whom I checked suggested that resellers (like Wolfram and Insightful) would be advised to read the licence carefully, but that end users producing configurations for their own internal use needn’t have any cause for worry.
Another small cloudlet concerns the competition for open source Java hearts and minds between Eclipse and Sun Microsystems’ NetBeans. While the two platforms have many similarities, they are not identical and have significant differences too; will one of them occlude the other? When Eclipse first appeared, with OTI (the original Canadian developer) bought up by IBM, it seemed a gamble; it seems much less so now, with several market colossi having committed to it. NetBeans shows no sign of conceding, though; it had a head start on Eclipse and Sun (which three years ago opted not to join the Eclipse consortium) and released a new version 5 in February this year, which in some ways offers a more glossily seductive front end. It’s a rash person who would make bets on such an issue, but my gut feeling is that both will continue to coexist, with increasing accommodation between them producing a bipolar mixed economy. Certainly coexistence and plurality seems the healthiest outcome, encouraging competitive incentives in both camps and cross fertilisation of ideas. A lot will probably depend on users – not just in science, but in the larger world.
The proprietary copies of Workbench that I’ve been using are not really mine, having been supplied for review purposes and not for commercial use. Nevertheless, I shall look out for them from now on, and recommend their procurement by clients. I shall also keep an interested eye on continued development and have started a longer term, more detailed self education in the modelling provision (see box: A Model Example), which is not only of particular interest in my line of work, but may also impact back on me through its wider implications. The Web Tools Platform (see box: Spinning a Tail) is another area of generic interest. My money is on Eclipse being an increasingly important part of the information universe in general; I am never likely to be an expert in its mysteries, but I certainly can’t afford a return to ignorance of them either.
Spinning a tail
While not specific to science usage, the world wide web started life as a tool for addressing science’s informational and communicative superstructure functions. A decade and a half later, its filaments spun out across the globe, it has become essential to them. XML has also embedded itself in several semantic and operational aspects of web usage, not least for scientific aspects. For the moment and for the immediately foreseeable future, at least, science without development of new web tools is inconceivable.
Eclipse’s WTP (web tools platform) is taking its place as a significant incubator of such tools, with a focus on application-building infrastructure. A range of source editors (CSS, DTD, HTML, XML, and others), J2EE and database tools, are among the offerings on the menu. Big names involved (and so increasing WTP’s clout and credibility) include BEA Systems, IBM, Oracle, SAS and Versant among others.
A model example
The Eclipse Modelling Framework (EMF), one of the projects more obviously relevant to science users, provides resources through which a structured data model can be used to develop applications and code. It seems to have been in existence for about four years, but moved to higher prominence in the first half of 2006 as one of the Eclipse Foundation’s ‘top level’ projects. Under the leadership of representatives from IBM and Borland, it also has declarations of commitment from other significant industry entities including Oracle and Compuware.
Beyond the specific importance to science, the emphasis of EMF on providing open source implementations of modelling standards makes it a good example of the direction and effects through which Eclipse has been accepted in the IT markets. At the same time, in a virtuous circle, it is also an illustration of the way open standards are being driven by Eclipse’s growth and success.
A core meta model known as Encore links to editing and code generation tools; beyond that lie an XML schema manipulation API (called XSD) and a service development architecture (SDO). A graphical modelling framework, a search and retrieval query, a transaction layer, a validation framework, an extensible client/server system, capped off by a sharing and distribution system, provide the underpinning. On top of these are numerous components for development, transformation and integration, including implementations of ODM and UML2 (the Object Management Group’s Ontology Definition Metamodel and second generation Universal Modelling Language, respectively). Backing it all up is a set of ongoing technology and research projects.
Modelling is important enough, of course, to be represented elsewhere in the Eclipse universe. The Generative Modelling Tools project is one instance, demonstrating the operational scope of model-driven approaches to software development and engineering.
Workbench terminology crib sheet
The Eclipse Workbench is an environment containing menu bar, tool bars, and perspectives. Menu bar and tool bars are what they sound like, and what you would expect from experience with any current application or OS GUI.
‘Perspective’ is the name given to a particular set of tools, views and layout. Most of the visible screen space within the Workbench will be occupied by the perspective currently in use, other open perspectives being minimised to toolbar buttons. Many (not all) applications built on the Workbench are constructed as specific perspectives rather than as fundamentally designed component structures.
A ‘view’ shows, and in many cases allows interaction with, particular information. An editor showing and altering the content of a text file, for example, is a view; so is output from a program.
Views may be native to the basic Workbench (most of these are file system related) or designed for particular purposes. Applications built on the Workbench will usually (again, not always) have their own additional purpose-designed views. Views may be maximised or minimised independently of one another within a perspective.
For fuller information, see the ‘concepts’ section of the Workbench User Guide and the online Eclipse documentation.
- Eclipse Foundation, Eclipse, www.eclipse.org
- InsightfulS, Plus Workbench, firstname.lastname@example.org
- Object Management Group, UML2 and Ontological Definition Metamodel, email@example.com
- Teamprise, Teamprise suite, including Eclipse plugin for Visual Studio, firstname.lastname@example.org
- Wolfram Research, Mathematica Workbench, email@example.com