No Type Canon

A Generality Tradeoff

I believe the main reason type-related documentation for typical dynamic languages is vague or ambiguous is that there are multiple "models" (implementations and/or ways of thinking about types) which all essentially produce the "correct" answer (forecast of "run" results). There is no canon or something even close to a canon.

Certain people interpret documentation in a certain specific way, but they have not shown that their way is the correct way to interpret such documentation; they only claim there is One True Way to read it, without using objective evidence. Their argument is essentially, "if you knew enough about types, you would read it my way also: the right way." I call bullsh8t on that angle because language manual documentation was not intended for PhD's or the like and thus not intended to depend on an extensive theoretical background. (Although, some highly academic terms may occasionally slip in inadvertently.)

The effect of having multiple valid models is that for run-of-the-mill documentation for typical language users, the author is probably going to have to make an arbitrary choice between competing models in order to get something concrete enough to wrap one's head around. For example, a data-structure, schema, or data-structure-like object(s) will probably have to be fleshed out to represent variables, values, types, etc., and it will be one of multiple valid approaches. It may not be THE right structure, but rather A right structure--one of multiple "right" structures.

Now maybe there is an academic way to explain/model types that does not have to commit to one or the other arbitrary "concrete" choices, but it would likely read like quantum physics where something can be or act like two things at the same time. Such may indeed be a "better" model in that it doesn't force an arbitrary viewpoint or implementation, BUT it would be "too academic" to serve as documentation for rank and file developers. As an analogy, the writing must "collapse the wave function" into a Newtonian-world-view in order for the reader to relate to it. A quantum model will confuse the target audience.

In summary, a trade-off involving a loss of generality may be necessary in order to explain "types" clearly in a way typical developers can relate to.

This may apply to related terms, such as "variable" and "value".

--top


EditText of this page (last edited November 22, 2014) or FindPage with title or text search