Diego Gomez Deck DiegoGomezDeck@ConsultAr.com 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.
- ala Java / Objective C: Multiple inheritance of protocol.
- ala StrongTalk: Multiple inheritance but based on mixins.
We can find better starting points than these! Here are the two main ones to consider, IMHO:
- SmallScript. This is a recently-designed Smalltalk with optional typing and is well worth looking at. How much more relevant could you get?
- OCaml. This is an OO language with required typing. While the required typing is a downer, the system is designed by people coming from a functional languages background, and thus a lot of philosophical issues are likely to have been considered and worked through. For example, I know that it tends to use interface types, and that the class hierarchy and the type hierarchy are separate.
Also, Eiffel is certainly worth looking at, especially since piles of code have been developed in it and so there is some practical experience.
If we start with something like Java's or C++'s type system and grow from there, then we will have years of catchup to do.
-Lex
PS -- I don't know about any of these systems first-hand. They just seem relevant.