[MUD-Dev] Object Models

Joe Andrieu joe at andrieu.net
Tue Nov 28 09:16:15 CET 2000


> -----Original Message-----
> From: mud-dev-admin at kanga.nu [mailto:mud-dev-admin at kanga.nu]On Behalf Of
> John Buehler
> Sent: Monday, November 27, 2000 9:37 PM
> To: mud-dev at kanga.nu
> Subject: RE: [MUD-Dev] Object Models

[snip]

> 1. You have an error handling case where an object cannot be sharpened.
> This is an example where strict contracts and strong typing prevent the
> possibility of that happening.  A component that cannot be
> sharpened can't
> even represent itself to the sharpener.  The sharpen method requires that
> the component passed to it be an 'edge' component.  This would
> be checked at
> compile time, not runtime.  This is one reason why weakly typed languages
> are a pain in the backside.  Error handling was called "One of the four
> unsolved problems in software engineering" by one of our
> consultant types.


Checked at compile time?

I think a lot of the systems we are talking about require (or benefit
greatly) from run-time modifications, where I don't believe "compile time"
solutions address the needs of maintaining a live codebase.  The code has
to work even if error-checking happens when it is called in realtime by an
object it has never seen before.

I can see that if I have all my components lined up and compiled for a
traditional application, a la Office 2000 that we have lots of ways to
check for compatibility amongst components.

So, how do components handle the case where a *live* object has a component
modified?

I could see writing update code to swap and test the component in every
object out there that has the old component. That is probably a tighter,
safer mechanism than automatically updating the functions of all ancestors
of an inherited class. But it sure does seem more of a bother, which means
that while the code base may be tighter, the pace of innovation is
significantly lower.

Am I understanding your comments correctly? Or is there a different way
components can play a role in large-scale run-time-modifiable environments
where inheritance has proven a reasonable solution?

-j

--
Joe Andrieu
Realtime Drama

joe at andrieu.net
+1 (925) 973-0765


_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list