[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: another take on hackers and painters



Steve Dekorte <steve@dekorte.com> writes on dynamic compilation of
Java and friends:
> For simple expressions, I agree. But the general case might be trickier 
> than it sounds. For example, could you add/remove ivars from a class 
> that other classes inherit from at runtime? (Does Java compile 
> references to ivars as pointer offsets causing a fragile base class 
> problem?) Can you change existing methods at runtime? What if the 
> method argument types change? Can you change a type definition at 
> runtime? What happens to the rest of the code in the system that 
> depends on the old type?

Sure, these are all hard questions, and many of them have multiple
reasonable answers.  The real question here is this: What do we do
with existing instances and client classes when a class definition
changes?  

I submit that this problem exists in any language you care to
name---just replace "class" by "data structure" and "client classes"
by "code and data which refer to that data structure" if your language
lacks classes.  There's no magic here.  All solutions I have seen seem
arbitrary in one way or another.

-Jan-Willem Maessen
jmaessen@alum.mit.edu