Consider the case where you fundamentally modify the invariants of an object. All you existing instances might now be in some inconsistent state. One way to avoid this is to enforce some unity of code and state. If we instead of modifying all the existing instances just modify instances created from this point forwards, we don't risk messing with the invariants.
Well now we have a standard unix model. The executables are "classes" that get "instantiated" (exec'd) into "instances" or processes.
Comments
I think this split is way overstated.
Consider the case where you fundamentally modify the invariants of an object. All you existing instances might now be in some inconsistent state. One way to avoid this is to enforce some unity of code and state. If we instead of modifying all the existing instances just modify instances created from this point forwards, we don't risk messing with the invariants.
Well now we have a standard unix model. The executables are "classes" that get "instantiated" (exec'd) into "instances" or processes.