To view parent comment, click here.
To read all comments associated with this story, please click here.
A root object class is just a form of dynamic typing, as are any polymorphic extensions to otherwise statically typed languages. A language like Java is, in practice, quite dynamic in its typing, since object references don't have to point to an object of a specific class, but may point to an object of any subclass of that class.
And you're right that type inferencing makes static typing a lot easier to deal with, though I still prefer soft-typed dynamic languages (with optional type declarations and a good type-inferencing compiler). Though it should be pointed out that a language with type inferencing and extensive polymorphism is closer in the design space to a soft-typed dynamic language aren't that far apart in the design space, though each starts from a different end of the spectrum.






Member since:
2005-09-11
Actually, boo just rounds the float to an int type.
Anyway, thanks for that summary of the benefits of dynamic typing. In boo refactoring pain is eased dramatically due to many of the variable types being inferenced, however, I can see some of the benefit. I think inferencing is a good trade off.
As for passing an object around without caring what type it is, most OO languages have a root object class. Any object can be abstractly moved about.
I don't usually throw away prototype code, I haven't often needed to - and in the times that I have, its a major architectural issue unrelated to typing.
And no, I don't do the uneccessary class thing. Although I am guilty of making every field a property (accessor methods). I wish .net had unified fields and properties as they are the same syntactically.
I'll look more at dynamic stuff.