lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Mon, Dec 21, 2009 at 2:09 PM, Mark Hamburg <mark@grubmah.com> wrote:
> It's probably best not to think in terms of inheritance.

wholeheartedly agree.

the feature we want is polymorphism; but on static languages, the
compiler _has_ to check the type, if you want to allow several types,
then it asks, "at least make them related types"... and inheritance is
born.

dynamic languages OTOH, don't care.  put anything here, if it can work
great; if not, fail at runtime.  therefore you don't need to create
any relationships between types, each one stands on it's own.  in
fact, an object doesn't even have to belong to a type at all, it could
be a one-of-a-kind object that just happens to walk like a duck.

it's interesting to read the specifications of C++'s STL: most of the
requirements don't ask for "an object of class xxx (or subclass of)",
it only says things like: "an object that can be incremented and
compared".  How come?  well, you can think of C++'s template system
like a (mostly) dynamic language that runs at compile time, generating
all the static code ran by C++ itself.

-- 
Javier