Work 2

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Work 1

Eiffel Your next project in Eiffel


Contents

1. What is Eiffel?
2. The commercial and political context
3. The criteria
4. Reliability
5. Reusability
6. Extendibility
7. Efficiency
8. With us, everything is the face

(After an article in the special Eiffel issue of the Journal of Object-Oriented


Programming, May 1996.)
Over its ten-year life Eiffel has evolved into one of the most usable software
development environments available today. Other articles discuss its theoretical
contributions. This one addresses a more mundane subject: how practical software
projects can benefit, today, from the power of Eiffel. In so doing it will largely rely
on published assessments from both Eiffel users and book authors. In fact a
quotation from one of the best-known books in the object-oriented field -- Object-
Oriented Modeling and Design by James Rumbaugh and his colleagues, the text
that introduced the OMT O-O analysis method -- provides a good start:
Eiffel is arguably the best commercial object-oriented language available today. [Jim
Rumbaugh et al. in Object-Oriented Modeling and Design, Prentice Hall 1988].

What is Eiffel?
First we should define what the word "Eiffel" means. If you are thinking "a
programming language" you are not wrong (and the preceding quotation shows
that you are in good company). The programming language is indeed the most
visible part, but it is only a reflection of something broader: a comprehensive
approach to the production of quality software. As Richard Wiener wrote:
Eiffel is more than a language; it is a framework for thinking about, designing and
implementing object-oriented software. [Richard Wiener in Software Development using
Eiffel: There is life other than C++, Prentice Hall, 1995.]

The Eiffel approach includes a method (a "methodology", as it is sometimes called)


based on a number of pervasive ideas such as Design by Contract, seamlessness,
reversibility, rigorous architectural rules, systematic use of single and multiple
inheritance, static type checking and several others. Besides a method and a
language Eiffel also means powerful graphical development environments, such as
EiffelStudio, available across a wide number of industry-standard platforms and
supporting analysis and design as well as implementation, maintenance and
evolution.
The language itself, indeed (which Wiener calls an elegant and powerful language
for object-oriented problem solving") is not just a programming language but
extends to the phases of system construction that both precede and follow
implementation. This is sometimes hard to accept if you have been raised in the
view that software development must involve a sequence of separate steps; that
one should initially use an analysis method and then at some point switch to a
programming language, with perhaps a design method in-between. This view is
detrimental to the software process and to the quality of the resulting product, as it
does not support the inevitable back-and-forth hesitations that characterize real
software development.
Wisdom sometimes blooms late in the season. However careful you may have
been at the analysis stage, some great ideas will hit you - or your implementers -
past the point at which you thought you had all the specifications right. Why
renounce the benefit of such belated but valuable ideas? Eiffel and the associated
Business Object Notation approach to analysis and design accommodate them
naturally, by providing a single conceptual framework from the beginning to the end
of the process.
Here Eiffel does not have much competition. The most bright-eyed Smalltalk or C+
+ enthusiast would not seriously claim that one can do design, let alone analysis, in
his language of choice. And users of any of the popular O-O analysis notations
know that at some stage they must stop working on their model and move on to the
implementation in some programming language. Eiffel is unique in helping you for
all of these tasks, without ever introducing the impedance mismatches that
characterize other approaches.
As a reviewer wrote:
As a design language, Eiffel continues to be a better model for object- oriented
programming than Ada. It is even better than the new Ada 9X standard. [Richard Riehle in
HP Professional, October 1994, A Tour of Eiffel.]

The commercial and political context


The next few sections give a glimpse of the technical contributions of Eiffel, or
more precisely of what other people have written about them. But of course the
best technology in the world requires infrastructure and support to succeed.
Eiffel has plenty of these. It has been around for more than a decade. Eiffel is
available from several commercial and open-source providers. The number of
licenses sold is in the tens of thousands. Reusable library classes are in the
thousands.
The platforms covered range from Unix (all of Unix, the famous and the arcane)
and Linux to OpenVMS, OS/2, Windows 3. 1, Windows NT, Windows 95 and 98,
through Windows 7, Windows 10 and Windows 11.
Particularly impressive is the growth of Eiffel usage in education. Eiffel is quickly
becoming the language of choice for teaching modern software technology,
including, increasingly, introductory programming. A dozen of excellent textbooks
are now available from Prentice Hall, Addison-Wesley, Macmillan and others, with
about as many announced just for the coming months.
It is not just the professors who like the approach. Here is just one typical comment
on student reaction, from an institution (Rochester Institute of Technology) having
adopted Eiffel as its first-year introductory language on a massive scale:
We were pleased to discover many of our more skeptical students turning around and
admitting that Eiffel was a "fun" language in which to work. [Jim Heliotis in the Proceedings
of OOPSLA 95, Experiences teaching objects: A new curriculum for computer science
students.]

A Computer World article confirmed the need for Eiffel in training the high-powered
software professionals of tomorrow. Quoting Amy Cody-Quinn from Management
Recruiters International, the journalist writes
There is a big problem with people who say they know C++ - but they don't really know
how to do objects. If they have Eiffel on their resume, then we know they really have the
proper understanding of what they are doing. [Leslie Goff in ComputerWorld, Object Edge,
December 18, 1995.]

But it would be a mistake to think of Eiffel as an academic tool. A little-known fact is


that some of the biggest object-oriented projects ever undertaken (at least the
successful ones - other O-O languages have had their share of large-scale
failures) are being done in Eiffel. The hot areas at the moment are banking and the
financial industry (in particular some very large derivative trading and investment
management systems), telecommunications, health care. These are all areas in
which all that counts in the end is quality and time to market, so that projects need
to select the best technology available. Quoting from an article by Philippe
Stephan, the system architect of such a project (Rainbow, a major derivative
trading system built with ISE Eiffel):
We evaluated three major object-oriented languages for the project - Smalltalk, C++ and
Eiffel - and chose Eiffel. [...] Rainbow currently comprises over 400,000 lines of code, for
about 3000 classes. [Current figures are way over these mid-1995 counts. ] The
developers feel very productive. This was confirmed when Rainbow's financial backers
brought in object professionals to audit the project. The auditors evaluated the project
during July 1994 and were impressed with the productivity of the Rainbow development
group. [Philippe Stephan in Object Magazine, July-August 1995, Building financial
software with object technology.]

The development group in question is remarkable for being made only for a third of
software professionals. The others are professionals from other disciplines (such
as trading and financial analysis), who, Stephan writes,
can express business concepts in Eiffel because they can focus on design and
implementation, rather than struggling with memory management problems and
debugging.

The result has received lavish praise from such publications as ComputerWorld
and analysts:
Industry experts briefed on Rainbow said they were impressed with the results. CALFP is
"progressive" in [...] committing the organization's mission-critical systems development
efforts to this architecture, said Richard Crone, senior manager of financial services at
KPMG Peat Marwick in Los Angeles. "What's unique here is that [CALFP is] delivering this
system end-to-end using object-oriented technologies", said Henry Morris, a research
analyst at International Data Corporation (IDC) in Framingham, Mass. [Thomas Hoffmann
in ComputerWorld, May 8, 1995, Object- Oriented financial package tames transactions.]

Along with these Eiffel mega-projects, you will also find myriad smaller endeavors.
Many consultants, in particular, have found for themselves the key competitive
advantage that they can gain from Eiffel's excellence. In ensuring this spread of
Eiffel throughout the industry, the benefit of cheap yet complete environments such
as EiffelStudio for Linux has been immeasurable.
Also crucial to the development of Eiffel has been the neutral status of its definition,
now controlled by a consortium of vendors and users, NICE (the Nonprofit
International Consortium for Eiffel). NICE has already produced a library standard
and expects to produce soon the language standard that should shortly thereafter
enjoy a smooth ride through ANSI and other international standards bodies.
The pace of Eiffel history has been accelerating in the past few months. This has
been picked up by many journalists. As Dan Wilder wrote:
With an open specification for both the language and the kernel libraries, and support from
multiple vendors, Eiffel now stands poised to take off. [Dan Wilder in Linux Journal, June
1995, Introduction to Eiffel.]

You might also like