Eiffel closely follows Dr. Meyer's work in Object Oriented Software Construction, Second Edition. Eiffel differs from most popular languages in several ways.
The goal of the language, libraries, and programing methods is to create reliable, reusable software modules. It supports multiple inheritance, genericity, polymorphism, and encapsulation. It's most important contribution to software engineering is Design by Contract, where assertions, preconditions, postconditions, and class invariants are used to assist in documenting program correctness.
Eiffel also offers multiple class inheritance. Many people (such as the designers of Java) have objections to multiple inheritance. The Eiffel implementation of multiple inheritance overcomes these objections as the result of careful study, proper theory, and mindful implementation. A simplistic treatment of Multiple Inheritance leads to problems. However, by the creation of some straight-forward language rules, multiple inheritance becomes a useful technique in Eiffel programming.
Eiffel is an excellent implementation of pure OOP theory. The language has formal support for abstract data types. In accordance with Self Documentation, a software text should be able to reproduce its design documentation from the text itself. Eiffel accomplishes this by using a formalized implementation of the Abstract Data Type.
Moreover, if you use the Eiffel Studio software development platform, you will discover an environment where software engineering is performed in an object-oriented interface. However, many programmers disliked it because it was far different than user interfaces to other integrated development environments.
- http://www.eiffel.com/ --- the web site of ISE, the company that sells Eiffel
- Object Oriented Software Construction, Second Edition, by Bertrand Meyer, Prentice Hall, 1997, ISBN 0-13-629155-4; contains a very detailed treatment of the beliefs about object-orientation behind Eiffel.
- http://smalleiffel.loria.fr/ --- SmallEiffel is a fairly complete Eiffel compiler, released under the GNU GPL.