Reasons for using Eiffel

Revision as of 04:21, 20 November 2006 by Schoelle (Talk | contribs)

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.

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, in
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 standarized by ECMA standard 367, ISO/IEC DIS 25436
Eiffel is strongly typed 
Eiffel offers strongly typed. By this, it can detect conceptual errors much easier than C++ or Smalltalk.
Eiffel has powerful constructs 
Eiffel offers constructs like generics (somewhat like Templates) or agents (also known as delegates), constructs where have only recently been 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. Protable 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 
...