Diego Gomez Deck wrote:
Some type of typed system lead us to some sort of multiple inheritance. The types could be:
- ala C++: Multiple inheritance of implementation and protocol -> no
comments. 2) ala Java / Objective C: Multiple inheritance of protocol. 2) ala StrongTalk: Multiple inheritance but based on mixins.
What is your definition of "multiple inheritance"? (As an aside one of the many problem with multiple inheritance is that nobody agrees what it is). Java for example does not IMHO have multiple inheritance. Instead, the interfaces merely formalized the type requirement that Smalltalk already implicitly assumes.
Coming from a Haskell background one of the most frustrating things about Smalltalk/Squeak is the total absense of static types, primarily because type annotations are a wonderfully concise and reliable piece of documentation. (For most Haskell programs it suffice to read the function types to understand the program structure.)
[*] I'm not a very old smalltalker, but I have some years of experience and never the type-less system was a problem to me.... on the contrary, I feel that the type-less system helps in the process of development.
The StrongTalk type system is _optional_ (at least according to the documentation). It can't possible affect your development is you don't want to use it.
/Tommy