Reasons for using Eiffel

Revision as of 08:47, 20 November 2006 by Manus (Talk | contribs) (Added links to Eiffel Software pages)

The step away from the main stream of languages is a difficult one. Leaving common ground is worrying. There is always the need to justify unorthodox decisions. This page tries to capture reasons to convince you, your friends, you boss, your client or your grandmother to use Eiffel and EiffelStudio.

You can also read the following articles from Eiffel Software for more reasons:

Reasons for Eiffel

Eiffel is object-oriented 
While you might think that every modern language is calls itself object-oriented, there are very few languages that have the object-oriented paradigm so deeply integrated into the language as in Eiffel. Eiffel was built around object-orientation. Objects just feel right in Eiffel. Contracts make you understand inheritance. Even if you will change to another language later, object-orientation will never be the same to you once you have developed in Eiffel.
Eiffel is fast 
Eiffel compiles to C, which is then directly translated to the machine code of your target platform. With that you can exploit the full speed of your target architecture. Eiffel can be used in embedded environments or on mainframes. Eiffel competes with C and C++ in terms of speed, not with Java or C#.
Eiffel has a garbage collector 
Memory management is very error prone. Detecting memory leaks is a tedious job that can endanger the reliability of the application. Eiffel was designed from the start to be a language that uses garbage collection. That way, developers do not have to free memory explicitly. EiffelStudio offers a fast moving garbage collector.
Eiffel is mature 
Development on Eiffel started in 1985, long before Java (1991) or C# (2001). During more than two decades, Eiffel has been constantly improved and revised.
Eiffel is standard 
Eiffel is standardized by ECMA standard 367, ISO/IEC DIS 25436
Eiffel is strongly typed 
Eiffel offers a static type system. By this, it can detect conceptual errors much easier than with language with a weak or no type system like C++ or Smalltalk.
Eiffel has powerful constructs 
Eiffel offers constructs like generics (somewhat like Templates) or agents (also known as delegates), constructs that were only recently added to Java 1.5 or C# 2.0. Also, Eiffel has some unique concepts like Design by Contract or full-featured multiple inheritance.
Eiffel is highly portable 
EiffelStudio has been ported to nearly all major operating systems, from Windows, MacOS X, Linux, FreeBSD to VMS. Portable libraries like EiffelVision2 make it possible to write applications for one platform and compile it for any other platform.
Eiffel is built on 'Design by Contract' 
Design by Contract (DbC) is what made Eiffel famous. Using DbC, you can clearly define what your implementation expects from and what it provides to the caller. This behavior is checked at run-time, making it much easier to find bugs. The contracts are also used from documentation and play an important role for inheritance.

Reasons for EiffelStudio

EiffelStudio is open-source 
EiffelStudio is supported by a company 
EiffelStudio has a power IDE 
EiffelStudio offers incremental compilation 
EiffelStudio adds run-time checking 
EiffelStudio has a powerful interactive debugger 
EiffelStudio allows you to draw UML and BON diagrams