Earlier quoted context omitted.
For example, over time you dynamically upgrade a module going from version 1 to 2 and, later, to version 3. During the first module upgrade, data types from the newer module (2) can be incompatible with the data types from the older module (1). Such incompatibilities are resolved dynamically during the upgrade procedure (implemented as a part of v2) which knows about type incompatibilities between versions 1 and 2. A…
Isn't this still a problem in a dynamic language? For example in Erlang let's say my state is the 2-tuple. In version 2 I make it a 3-tuple but it stays the same in version 3 so it has no upgrade code. Consider the same situation with any code where the middle version update adds data to your state. I'm not sure why being statically typed would make hot code loading impossible. Can't you always interject some transfo…
Second, which is more important -- in my first example, I forgot to mention about the ability to use two versions of the same module at the same time. Check the thread below for more details.