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