// guess the programming language of the day

$ whois eiffel

Eiffel

first released in 1986 · by Bertrand Meyer

$ guessprog --inspect eiffel

year
1986
paradigm
object oriented
family
other
memory
automatic gc
binding
static
safety
strong

EIFFEL(7)

AUTHORS
Bertrand Meyer
HISTORY
Bertrand Meyer designed Eiffel in 1985-1986 at Interactive Software Engineering, the company he founded in Santa Barbara, California, to build reliable, reusable object-oriented software. Its central idea is Design by Contract: routines declare preconditions, postconditions and class invariants that are checked at run time. Meyer popularised the approach in his book "Object-Oriented Software Construction". The name honours Gustave Eiffel, whose tower was built on time and within budget, something Meyer wanted for software too.
USAGE
Eiffel is a niche language today, maintained by Eiffel Software with its EiffelStudio IDE and used in a few industrial and teaching settings. Its bigger legacy is Design by Contract, which influenced many later languages and libraries.
SEE ALSO
Eiffel on Wikipedia ↗
$ cat account.e
class ACCOUNT

feature
    balance: INTEGER

    withdraw (amount: INTEGER)
        require
            positive: amount > 0
            enough_money: amount <= balance
        do
            balance := balance - amount
        ensure
            decreased: balance = old balance - amount
        end

invariant
    never_negative: balance >= 0
end