This site's content was compiled from 1993 to 2006. Beyond that, Google is your friend.
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:

Above: A Magic Browser window showing multi-column display.
It is interesting to compare the Delphi and Eiffel versions. The Eiffel version...
contains approximately three times as many lines of source code. Much of this is due to assertions and extra white space in the Eiffel version, but there are also situations where the Eiffel code is more verbose than the Delphi code. For example, Eiffel's lack of object creation on the right-hand-side of an assignment instruction leads to situations where a line of Delphi code might require half a dozen lines of Eiffel code plus several local entities.
took approximately three times as long to write. This is mostly due to the difficulties encountered with successive beta versions of the compiler, but is also due in part to the longer compile cycle. A complete build takes two minutes with Visual Eiffel, versus five seconds with Delphi (which is based on Pascal - a language that lends itself to fast single-pass compilation).
compiles to an executable about three times as big - 900kB versus Delphi's 300kB. For a while it looked as if we would manage to keep the size difference within a two-to-one ratio, but successive versions of Visual Eiffel produced larger and larger executables for the same source code.
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.

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.
After applying optimizations from the latest beta of Visual Eiffel, the size of the executable has halved, and the size of Eiffel executables vis-a-vis Delphi executables is no longer an issue.
The Eiffel version now has a smaller disk footprint than the Delphi version (although the memory footprint of the Eiffel version is 50% larger)
An updated version (with HTML tables and other enhancements) was awarded equal third place in the 1998 Eiffel Struggle competition
Sadly, I had to leave this project. Peter Ward said he wasn't selling enough copies, and didn't pay me the money he owed me.
Bertrand noticed the part in this article about how Eiffel's lack of a creation expression was putting it at a disadvantage compared to Delphi. He later said this is what caused him to change his mind about adding creation expressions to Eiffel.
Delphi added the 'result' reserved word, inspired by Eiffel, as an alternative notation for the return value of a function (although I'm not sure if 'result' has survived into Delphi for .NET)
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."