-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On May 16, 2008, at 8:45 PM, Roger Alsing wrote: > How do you deal with ducktyping? > How can anyone assume that just because a method exists that the > semantics is the same? > > Brush.Draw( x , y ) > vs > Cowboy.Draw( direction, speed ) > > The same name and signature, not even close to the same semantic > meaning. Actually, how do you guarantee those semantics in a statically typed language? Consider this (pseudo-java, sorry ;) ): interface Drawable { abstract public void draw(int a, int b); } class Point implements Drawable { public void draw(int x, int y) { Canvas.drawPoint(x,y); } } class CarThief implements Drawable { public void draw(int x, int y) { Car c = steal(Cars.random()); c.drive_to(x,y); } } Both Classes implement Drawable but there is no way to check on two "Drawable" whether they share the same semantics. Regards Skade -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin) iEYEARECAAYFAkgt67EACgkQJA/zY0IIRZZ1sACgmVHN1laF+Xqr72t887Pd+n3J TwwAniR9ESpQ0gwVGcOA5r4opjn1hLJ+ =GhYL -----END PGP SIGNATURE-----