Eiffel - For safe software
Eiffel was designed by Bertrand Meyer in 1985. The idea was to correct
the defaults of other classical languages that cause bugs and consume programming
time. It gets inspiration from some theorical languages designed in Universities
and never implemented before. It is the case also of Scala.
It is a purely object oriented language.
The name inspired by Eiffel, the builder of the tower, wants to convey the idea that a well-designed building can go further.
According to the author, it is suitable to produce quality software made by professional
programmers.
Use the language when security is essential. It is often used by hospitals.
Eiffel became an ECMA standard in 2006 under the name ECMA-367, which describes it as an analysis, design and programming language.
Locks against unexpected effects
The language was designed to avoid unintended consequences with arguments passed to functions, such as division by zero. It is a such small error that caused the failure of a launch of the Ariane 5 rocket in 1996.
- Generical classes. Reuse of classes with different types.
- Deferred classes. A kind of interface. Methods are virtual until the compiler make them real, or even inline.
- Multiple inheritance.
- Precondition and postconditions to functions (saying also assertions, programming per contract).
- Inheritable types that are objects of the language also. "Integer" inherits "numeric", etc...
Sample code : Hello world!
class HELLO_WORLD creation make feature make is local io:BASIC IO do !!io io.put_string("%N Hello World!") end --make end -- class HELLO_WORLD
Sites and tools
- SmartEiffel
A free open source port of the language. - Sather
A very similar language, open source. - Visual
Eiffel
Wiki.