Reasons for using Eiffel

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, your 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) and agents (similar to delegates in .Net), constructs that were only recently added to Java 1.5 or C# 2.0. Also, Eiffel has some unique concepts like Design by Contract and 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.
Eiffel has received the ACM Software System award.

Reasons for EiffelStudio

EiffelStudio is open-source 
EiffelStudio has been released under the well-known Gnu Public License, making sure that the source code will be available in the future and giving you the power to read and modify the system if you need.
EiffelStudio is supported by a company 
Eiffel Software remains the driving force behind EiffelStudio. A horde of full-time employees are working to improve EiffelStudio, react on your questions and provide commercial support if needed.
EiffelStudio has a power IDE 
EiffelStudio features everything that you can expect from a modern IDE, starting with syntax highlighting, organization of your classes, interface extraction of features and classes, hypertext-like browsing, refactoring, and many more.
EiffelStudio offers incremental compilation 
Changed just a single line in your huge system ? No need to wait for minutes or even hours for a recompilation. Even for a million lines of code, recompilation is a matter of seconds.
EiffelStudio adds run-time checking 
Run-time checks of contracts and assertions are an inherit part of Design by Contract. With EiffelStudio, you get a tool for enabling efficient checks for just parts, or for the full system. Problems get reported where they happen, when they happen.
EiffelStudio has a powerful interactive debugger 
The IDE integrates a full-featured debugger that makes it easy to trace what is really happening during execution.
EiffelStudio allows you to draw UML and BON diagrams 
Sometimes a picture can say more than a 1000 words. EiffelStudio integrates an interactive tool to draw UML and BON diagrams. The tool features full round-trip engineering: Any change in the diagram is directly reflected in the code, and any change in the code is directly reflected in the diagram. So, your diagrams never become outdated.