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

Re: MI: why?



Dave Harris wrote:

> I would say that languages with manifest static type systems need MI (of
> type) and languages without, don't. This would reconcile Dylan, Java and
> Smalltalk.

<Sigh>.  Perhaps languages don't "need" more than 1 and 0, but MI is
*extremely* useful in dynamically typed languages, *if designed
properly.*  CLOS and Dylan offer well-designed MI which their
programmers employ ubiquitously.  Having programmed in CLOS for 7 years
and now in Smalltalk the last 4 years, I feel the loss quite painfully. 
Every time I have to duplicate a method or instance variable in two
different places within the system--or resort to strung-out chains of
delegation--I feel the loss of MI.

MI has gotten a bad reputation in some quarters because (a) highly
static languages such as C++ cannot use MI to its best advantage, and
(b) "one-thought" languages such as Smalltalk cannot expand sufficiently
to use MI to its best advantage either.  The best matches for MI are (a)
dynamic languages designed for MI from the start, such as Dylan, and (b)
highly evolvable dynamic languages such as those of the Lisp family.

- Larry Mayka



Follow-Ups: References: