Linked by Thom Holwerda on Mon 14th Jan 2013 23:15 UTC, submitted by MOS6510
General Development "Programming languages are living phenomena: They're born, the lucky ones that don't die in infancy live sometimes long, fruitful lives, and then inevitably enter a period of decline. Unlike real life, the decline can last many, many years as the presence of large legacy codebases means practiced hands must tend the code for decades. The more popular the language once was, the longer this period of decline will be."
Permalink for comment 549134
To read all comments associated with this story, please click here.
RE[9]: Comment by RareBreed
by satsujinka on Thu 17th Jan 2013 05:22 UTC in reply to "RE[8]: Comment by RareBreed"
satsujinka
Member since:
2010-03-11

Sadly, that's not even a comprehensive listing of possible type systems...

Of course, Gödel's incompleteness theorems apply to type systems. So any type system is going to be incomplete or inconsistent. Generally speaking, the most extreme strong type system is going to be incomplete and a very weak type system (say that has no types) is going to be inconsistent. Compile/runtime follows the same sort of pattern (in that compile time checked systems will filter out some "valid" programs and runtime checked systems will have some inconsistent programs [corner cases where there's no way to figure out how to operate on what we have].)

Static and dynamic are the outliers here. Instead of being a characteristic of the expressiveness of a type system, static/dynamic is more about the actual expression of the types. They're more akin to SVO vs SOV vs VSO vs ... sentence structures then they are to choices in strong/weak or compile/runtime.*

*Dynamic languages are often conflated with runtime type checking, but this is technically unnecessary. Runtime checking is easier than compile time for dynamic languages (due to names/variables having no defined type,) but (for example) many lisp compilers have done compile time type checking en route to optimization.

Reply Parent Score: 2