This site's content was compiled from 1993 to 2006. Beyond that, Google is your friend.

Magic Browser: A Commercial Eiffel Application

This article previously appeared at elj.com in 1997, and has been lightly edited for this presentation.

Yorkshire (UK) software house The Digital Window Ltd has been associated with the development of a series of multimedia applications for Unix workstations, written in ISE Eiffel 2.3. These innovative and visually sophisticated applications - Media Language and Garden Framework - run on Sun workstations, include visual graphical icon and hypertext linking and use specialised file formats.

The aim has been to build object-oriented components for building and delivering attractive and engaging interfaces to browsable hypermedia applications.

In 1995 the decision was made to produce a Windows 3.1 application based around the emerging HTML format. Unfortunately, there was at the time no sufficiently-capable Eiffel compiler for Windows. Delphi was used instead, and the Paris Multimedia Browser was quickly and painlessly produced.

Mid 1996 saw the release to beta testing of Visual Eiffel from Object Tools of Germany (formerly SIG Computer). For the first time, it was possible to develop serious Windows 95/NT applications entirely in Eiffel, without recourse to even one line of C code. This depended upon the ability of Visual Eiffel to call the low-level Windows API directly, and upon some low-level Eiffel library features to massage the data types between Windows and Visual Eiffel.

The decision was taken to redesign and rewrite the Paris Multimedia Browser in Eiffel. The Eiffel product is called Magic Browser, and was released in 1997.

It is impossible for a small software house to keep up with the Microsofts and Netscapes of the world in a features race. As a result, Magic Browser doesn't have all the features of the latest HTML browsers - there are no scrolling marquees or JPEG support, for example. Instead, Magic Browser has a simple, effective, alternative paging interface, together with other features to support it's role as a convenient offline HTML browser, for example:

Magic Browser screenshot

Above: A Magic Browser window showing multi-column display.

It is interesting to compare the Delphi and Eiffel versions. The Eiffel version...

At first glance, that looks rather disappointing for Eiffel. But the source code line count is of no concern to us (and Eiffel source code is much more readable than Delphi source code). Also, the 'time to write' was largely due to the immaturity of the Eiffel compiler - we would not expect to encounter this same situation on a future project. Finally, the executable size was a concern to us as the Paris Multimedia Browser had been marketed as suitable for distribution on floppy disk together with the content to be browsed. However, as the floppy disk gradually becomes a relic of the past, the "tubby executables" will become less of a concern.

On the plus side, the Eiffel code is clean, readable and readily extendible, whereas I felt the Delphi code was getting to the point where further enhancements were becoming more and more difficult. The Eiffel code has much potential to be turned into component libraries, whereas the Delphi classes are not so general-purpose (due to Delphi's lack of multiple inheritance, genericity and garbage collection).

The Eiffel version certainly took more effort to write. But the Eiffel code will live longer, grow more smoothly, and be re-used in more future projects.

Visual Eiffel graphical browser

Above: Visualising inheritance and client relationships with the Visual Eiffel graphical browser.

Runtime performance of the Delphi and Eiffel products is about the same - Delphi's low-level bit-twiddling is faster, but its Visual Component Library (whilst a delight to use) is not as fast as the direct API programming used in the Eiffel version.

The current release of Magic Browser must be considered an evaluation release - there are still some known bugs, and HTML tables are not yet working. We expect to have these sorted out within a few weeks, after which we expect Magic Browser to establish a little niche in the specialist end of the Browser market.

Updates (1998):

Updates (2006):

Using Eiffel

Roger Browne says:

"People sometimes tell me how lucky I am to have had the chance to work on an Eiffel product. They're damn right - Eiffel software development is both satisfying and enjoyable."

Peter Ward says:

"Working with gifted software engineers and choosing Eiffel to develop real working components, and employing them in building applied hypermedia projects with a variety of end-users, has proved very interesting and very exciting. I hope that in the months to come, we can realise some of the real benefits and advantages and justify the risk."