robertj wrote: > the problem imo is not to define a "sound" typesystem > (as most static typing systems try to do and fail > regardless of the imense effort that has been put into) > but one that helps to define contracts on the borders of your > system without being restricting on the rest of the system. > > the only language i know that did an excellent job on that > was VB (classic) where you could work mostly untyped > (if you wanted and you did not care bout performace). > whenever you wanted to release a COM-object you had > to define the types. > this was a very pragmatic approach. See also boo http://boo.codehaus.org/ which has both static and dynamic typing. http://boo.codehaus.org/Duck+Typing It has some stuff borrowed from ruby like anonymous closures. If you pass "-wsa" to the booc.exe compiler, it will use "end" statements like ruby instead of python-like indenting (although it still requires the redundant colon at the beginning of a block).