@foone This is basically just Java If It Didn't Suck.
The idea behind Java was pretty much exactly this. In practice it was too advanced for its time, and by the time it was "usable" it was unusable for that purpose because of the breaking changes it took to get it to "usable" rendering the old code unusable.