ToRA wrote: > Florian Growrote: > > dblack / wobblini.net wrote: > > > > >> Hm, actually it provides a way of using unit tests for checking types, > > >> but will still let you do strong typing (via classes) and duck typing > > >> (via messages). > > > How about strong typing via messages? :-) > > > > I guess I should have said static typing. Though that is not exclusive > > too classes either. I guess the only right term is "class based typing" > > then? > Static typing means the type checking happens at "compile" time (or NOT > during the execution of the program!). You mean Nominal typing > (nominal as in name (using in this case classname)) as opposed to > structural (messages / aka duck) typing. Strong typing means that you > can't get undefined behaviour out of the system at runtime (all 'type > errors' are caught, generally in this case by method missing errors > getting thrown). > > As another poster said, this terminology needs to be used correctly > otherwise people do get confused :) > "Nominal/structural" typing, haven't seen that one before. Artima seems to have purged all their dogfights about what static/dynamic strong/weak typing means, but you can read google caches, e.g. http://66.102.7.104/search?q=cache:9zZxPZdlqR4J:www.artima.com/forums/flat.jsp%3Fforum%3D32%26thread%3D3572+site:artima.com+strong+typing&hl=en&client=firefox-a Seems to me that ruby developers can agree on what strong / dynamic typing means, but when you go out and encounter people from smalltalk, lisp, haskell, ML, java/C#, ... Also all those *nice* discussions about what overloading/polymorphism means, delegation/composition, pass by value/reference ;-{} > Tris