ImplicitTyping
Sort of
ImplicitTyping. See
DynamicLanguages.
In contrast to
StaticTyping. The type of a variable is bound to its value, not the variable (or reference) itself.
Combined with
TypeInference forms
AutomaticTyping?.
LatentTyping may be used in combination with
DynamicTyping (as in
Python ->
DuckTyping).
Why dynamic typing?
- Types are sometimes bound to Implementation Classes
- Types have poor granularity. Frequently a Type will be specified that has too many operations (is too specific) to be useful in multiple contexts even though subsets of those operations (a more general concept) is widely useful. Since it costs effort to name and create each Type, there is an impetus of reduction that again impedes reuse and generalization. Save now, pay later.
- Precise type information is lost when objects are fed through more generic structures.
- Types restrict future type-safe expansion to programs. Some programs that could have been written type-correctly if done in one "lump" are impossible to write given the actual historical growth of a program (many people, different companies, over time, with limited foresight). Choose now, pay later.
1 and 3 can be dealt with (Interfaces, Generics), but 2 and 4 are hard.