Igor Stasenko schrieb:
There is a language which uses multiple-dispatch. See Slate. And it is object-oriented.
Yes, I know - Slate is a very interesting approach, and from a theoretical standpoint, I like it a lot. AFAIK there is no efficient implementation of the dispatch algorithm yet, and progress is stalled according to the web site:
/
/Early 2006/ - The project is on hold after loss of interest from the lead implementor. Slate needs a significant qualitative speed boost for further updates.
/
This is a sad thing.
I don't see how given problem (lack of multiple dispatch) could be considered as a OO problem, or as an example against using OO principles.
I am all for multiple dispatch (in fact, the asymmetry of the receiver and argument roles in Smalltalk message sends is the one thing that I dislike a bit about Smalltalk.)
A multiple dispatch based systems would need somewhat different development tools, but I think they could be as powerful as the Smalltalk browser/inspector/debugger. There also needs to be a notion about where a method is at home - in basic Smalltalk, this is always the receiver class, but in multiple dispatch systems you need some sort of "packages" in the basic system to organize things. But of course, all mature Smalltalk systems need such packages as well to support things like class extensions, so a development environment without some concept of packages would not be accepted in these days.
Cheers, Hans-Martin