From: Dave Thomas Date: 2000-06-21T14:00:11-05:00 Subject: [ruby-talk:03590] Re: Static Typing( Was: Waffling between Python and Ruby) olczyk@interaccess.com (Thaddeus L. Olczyk) writes: > On 21 Jun 2000 12:10:18 -0500, Dave Thomas wrote: > > >> Maybe I was misunderstanding the original poster, but he seemed to be > >> advocating DbC without any notion of types other than "object that responds > >> to message X". To state the obvious, if the language has a notion of > >> interface, protocol, or type, it's merely necessary to check that the object > >> conforms to that type, at compile-time or run-time, since the contract is > >> available in the interface/protocol/type definition. > > > >Not always (there are issues with polymorphism) but in general. > There are no issues with polymorphism. This is what polymorphism > is all about. Yes there are programmers that can create issues ( eg by > violating Liskov ), but there are no *good* programmers. OK - I understand. There's no need for any system of contract checking to be rigorous, because we can rely on *good* programmers to follow the rules such as LSP. Wonder why we need contracts at all ;-) DbC is a good discipline, but it does not *ensure* correctness. Anyone who codes as if it does is risking ignoring real problems. Regards Dave