From: Lothar Scholz Date: 2005-04-05T01:25:50+09:00 Subject: Re: Ruby rite (Ruby 2.0) vaporware or real? Hello Daniel, DB> There's nothing you can do with an interface that I can't do better DB> with a mixin. You can also get the equivalent effect with DB> documentation and a test suite, e.g. "your package must implement DB> methods X, Y, and Z and pass the provided test suite". I believe Rails DB> uses the latter approach for verifying DB adapters, for example. The bad thing with this from a software engineering point of view is that you split important information about a class to multiple files. I don't think that test cases should be considered part of the documentation. OO has the huge advantage that you bundle information (data, methods, documentation) in one place. We don't need java static typing and we don't need to hide this information into unstructured test cases. Look at the smaltalk guys, they did it right, they have protocols aka interfaces and they are usefull. They are simplymeta definitions for documentation purpose only. An IDE can then provide tools to verify constraints and easyier working with protocols. Interfaces have a huge advantage for documentation so why shouldn't we use them ? Documentation and learning other persons libraries is already very hard in languages like ruby. -- Best regards, emailto: scholz at scriptolutions dot com Lothar Scholz http://www.ruby-ide.com CTO Scriptolutions Ruby, PHP, Python IDE 's