On Tue, 26 Jun 2001, Aleksei Guzev wrote:
> Every strong-typed language implies a lot of text being not a code, but
> declarations.

Have you seen type-inference? Some languages actually analyze your code
for types and "templatize" your code according to what you *don't* write. 
You type code in the listener, and it answers with the "declarations",
which you don't have to put anywhere in your files, as they are
generated by compilation of the code.

> Ruby should provide a short-time development and therefore
> no type-checking.

Short-time development should mean no type-checking when it makes
development shorter, and type-checking when it makes development shorter.
There's a balance you have to get.

> Generally, classes are equal when they provide equal interfaces. Class B
> is a subclass of A when it provides all the methods of A and some
> methods in addition. "<" in Ruby is a shorthand allowing programmer to
> shorten the code.

In Ruby, A == B means it's _the_ same class, and A < B means all objects
that inherit from A also inherit from B, that is, the set of A objects is
smaller than the set of B objects. Ruby provides "class A<B" as a notation
consistent with Class#<.

Two classes A,B such that A<B could have an equal number of methods. They
could also have equal interfaces (but the Ruby interpreter couldn't tell)

matju