December 2000
- Components and Inheritence Jon Lambert
- Components and Inheritence John Buehler
- Components and Inheritence Jon Lambert
John Buehler wrote:
> Jon Lambert writes:
>> I believe components are best used in conjunction with simple
>> glue by non-programmers (tool-users). These are the people you
>> don't want "hanging themselves", not the mud library programmers
>> (the tool-builders).
>> Components and glue are the ideal "level" for your builders,
>> creative writers, and tinkerers which are players who have the
>> capability in-game to build and assemble things.
> This is a fundamental point, and one that I disagree with pretty
> vehemently. It states that it's important to have high quality
> code at the core, but that then the rigorous techniques can be set
> aside. But that just means that the crashes and odd behaviors
> migrade to the glue code.
I believe the level of rigor in the glue code should be sufficient
enough to not allow the system to never crash, but not sufficient
enough to prevent the programmers at the component/glue level to
write and execute erroneous code. Let me explain it another way...
Aphrodite is a language that runs embedded in a server environment
and is runtime dynamic. It can and will encounter errors and
exceptions. Under no circumstances is it acceptable that those
errors and exceptions crash the environment (the server). They can
only crash the particular thread of execution in which they occur.
And since all events to initiate a given thread of execution are
issued asynchrounously, there are no dependencies on the failure or
success of any event to execute correctly.
Now that level of rigor (or stability) is fairly easily
achieved. *grin* Specifically the server stays up and the game runs
at all costs. Of course it is certainly possible for a programmer
with a high level of security to break parts of the game, or even
break enough parts, or the right parts to render the game
environment useless. Objects cannot be modified unless the caller
has sufficient authority to request a change AND then only through
requesting the object to modify itself. In other words this is a
pure event system, with objects checking the callers security.
So what is available to the particular programmer who uses the
glue/component level are only those components they are authorized
to use. The integrity of the components that are exposed for public
use is of much higher quality and rigorous testing (from an software
engineer view) than those being assembled with glue by your
builders, writers and tinkerers. So by virtue of security, the
least amount of damage can be done at that level and the highest
concentration of errors is also expected to occur at that level.
> I equate the component technique with an intensive inspection of
> packaged functionality. I equate traditional methods with a
> straight introduction of machine instructions to the execution
> space. Perhaps you are thinking of other techniques that can be
> applied to glue code, but the point is that you believe that
> there's no need to pursue components as a complete building
> material for an application. That simply makes no sense to me.
I do believe components are very useful. I do not believe they can
currently be pursued as a complete bottom up solution. This is a
practical matter. I believe that there may be a time in the future
where they may well be. I do not know of any existing
tools/languages/frameworks currently available that allow
application building using components without glue.
However it has occurred to me that many of the object models that
are haven't been fully discussed (TOM, MOO and ColdC) may really be
closer in spirit to Component technology than they are to the OO
model. For instance, many of these languages have been used to
build libraries of objects that are definitely blackboxes and
respond in a predictable manner (ala contract).
>> So I've decided on a multi-level approach to designing my MPL.
>> My mud language Aphrodite supports an Object Model similar to
>> that of C++. Apollo is basically an interface definition
>> language that is used to build components. This all all brought
>> together in Artemis a visual programming, creative writing and
>> building interface. A component is very similar to an ActiveX
>> module. It is exposes properties that may be modified at runtime
>> via glue code or at design time.
> I know this is asking a lot, but I'd be very interested to know
> what percentage of your code goes into components versus glue
> code. Best of luck with the project.
Currently I have only 3 working components. I expect to have
hundreds more. But the reason I selected these particular
sub-applications to build first as components was because of the
huge amount of effort required to build them. So 99% of the code
resides in the component vs. the glue to use them. These are the
three most complex components I ever expect to build. So I would
expect that ratio to drop quite a bit to perhaps 75% or so. One of
these components is composed of merely validation routines that are
stubs written in Aphrodite to a native C library which exists
outside and independent of the server system. That's because it's
an optional component that I myself must license separately. I did
not want to make it an intrinsic part of the server because it might
preclude me distributing it one day. Although it is illustrative of
how powerful components are in terms of coupling. It's presence or
lack of presence does not require any changes in Mud Library code.
--
--* Jon A. Lambert - TychoMUD Email:jlsysinc@ix.netcom.com *--
--* Mud Server Developer's Page <http://tychomud.home.netcom.com> *--
--* If I had known it was harmless, I would have killed it myself.*--
- Components and Inheritence Jon Lambert
- Cash for Lawsuits UCMM Administration
- Cash for Lawsuits Brian 'Psychochild' Green
- Cash for Lawsuits Patrick Dughi
- Cash for Lawsuits Matthew D. Fuller
- Cash for Lawsuits Patrick Dughi
- Cash for Lawsuits Matthew Mihaly
- Cash for Lawsuits Richard.Woolcock@rsuk.rohde-schwarz.com
- Cash for Lawsuits Richard.Woolcock@rsuk.rohde-schwarz.com
- Cash for Lawsuits Alex
- Names (was: An essay on d00dz ...) Marian Griffith
- Names (was "An essay on d00dism and the MMORPG") gmiller@classic-games.com
- Names (was "An essay on d00dism and the MMORPG") Travis Casey
- New and looking for a good place to get started... Graham Reitz
- New and looking for a good place to get started... Peter
- New and looking for a good place to get started... Corey Crawford
- New and looking for a good place to get started... Patrick Dughi
- New and looking for a good place to get started... J C Lawrence
- New and looking for a good place to get started... Brian 'Psychochild' Green
- Permadeath or Not? Corey Crawford
- Permadeath or Not? John Buehler
- Permadeath or Not? Jeff Freeman
- Permadeath or Not? Ben Chambers
- Permadeath or Not? John Buehler
- Permadeath or Not? Travis Nixon
- Permadeath or Not? Corey Crawford
- Permadeath or Not? John Buehler
- Permadeath or Not? Madrona Tree
- Permadeath or Not? John Buehler
- Permadeath or Not? Travis Casey
- Permadeath or Not? Jeff Freeman
- Permadeath or Not? Travis Casey
- Permadeath or Not? Travis Nixon
- Permadeath or Not? Zak Jarvis
- Permadeath or Not? Koster, Raph
- Permadeath or Not? Vincent Archer
- Permadeath or Not? Koster, Raph
- Permadeath or Not? Dave Rickey
- Permadeath or Not? Ananda Dawnsinger
- Permadeath or Not? Jeff Freeman
- Permadeath or Not? Batir
- Permadeath or Not? Koster, Raph
- Permadeath or Not? Jeff Freeman
- Permadeath or Not? Paul Schwanz - Enterprise Services
- Permadeath or Not? Kwon Ekstrom
- Permadeath or Not? Jeff Freeman
- Permadeath or Not? J. Eric Townsend
- Permadeath or Not? Ananda Dawnsinger
- Permadeath or Not? Travis Casey
- Permadeath or Not? John Buehler
- Permadeath or Not? Madrona Tree
- Permadeath or Not? Marian Griffith
- Permadeath or Not? rayzam
- Greetings from Organelle o. rchaeus
- Diku & GPL Patrick Dughi
- Diku & GPL Jon Lambert
- Diku & GPL Richard.Woolcock@rsuk.rohde-schwarz.com
- Diku & GPL Jon Lambert
- Diku & GPL J C Lawrence
- Diku & GPL Richard.Woolcock@rsuk.rohde-schwarz.com
- Diku & GPL Hans-Henrik Staerfeldt
- Diku & GPL Hans-Henrik Staerfeldt
- Diku & GPL Vincent Archer
- Diku & GPL gmiller@classic-games.com
- Diku & GPL Lars Duening
- Diku & GPL Steve {Bloo} Daniels
- Diku & GPL Alex
- Diku & GPL Corey Crawford
- Diku & GPL George Greer
- Current Server Versions (was: "New and looking for a good place to get started...") Corey Crawford
- Current Server Versions Corey Crawford
- Current Server Versions J C Lawrence
- A list of MMORPG Questions Eric Rhea
- A list of MMORPG Questions Steve {Bloo} Daniels
- A list of MMORPG Questions Jeff Freeman
- A list of MMORPG Questions Vincent Archer
- A list of MMORPG Questions J C Lawrence
- A list of MMORPG Questions Marc Bowden
- A list of MMORPG Questions Dave Rickey
- A list of MMORPG Questions John Szeder
- A list of MMORPG Questions Dave Kennerly
- A list of MMORPG Questions Corey Crawford
- A list of MMORPG Questions Koster, Raph
- A list of MMORPG Questions Jeff Freeman
- A list of MMORPG Questions Eric Rhea
- A list of MMORPG Questions Lee Sheldon
- A list of MMORPG Questions Koster, Raph
- A list of MMORPG Questions Eric Rhea
- A list of MMORPG Questions Koster, Raph
- A list of MMORPG Questions Sage
- Distro for Intricate / Numerous Mobs Hulbert, Leland
- Levels of immersion Richard A. Bartle
- Levels of immersion Yves K
- Levels of immersion Richard A. Bartle
- Levels of immersion olag@ifi.uio.no
- Levels of immersion Richard A. Bartle
- Levels of immersion John Vanderbeck
- Levels of immersion Richard A. Bartle
- Levels of immersion Tess Snider
- Levels of immersion Tess Lowe
- Levels of immersion Travis Casey
- Levels of immersion Richard A. Bartle
- Levels of immersion Travis Casey
- Levels of immersion Tess Snider
- Levels of immersion Paul Schwanz - Enterprise Services
- Levels of immersion Richard A. Bartle
- Levels of immersion Tess Snider
- Levels of immersion Jeff Freeman
- Levels of immersion Tess Lowe
- Levels of immersion Richard A. Bartle
- Levels of immersion Jeff Freeman
- Levels of immersion Travis Casey
- Levels of immersion olag@ifi.uio.no
- Levels of immersion Richard A. Bartle
- Levels of immersion msew
- Levels of immersion J C Lawrence
- Permadeath Nigel Chapman
- Permadeath Tess Snider
- Permadeath Richard.Woolcock@rsuk.rohde-schwarz.com
- History of a Game Christopher Allen
- Levels of immersion (Warning LONG) John Vanderbeck
- NPC Goals ( Was: Dynamic Timelines) Lord Ashon
- NPC Goals ( Was: Dynamic Timelines) Travis Casey
- NPC Goals ( Was: Dynamic Timelines) Lord Ashon
- Interesting EQ rant Tess Lowe
- New stuff on my site Koster, Raph
- New stuff on my site John Vanderbeck
- Tile Editor for MUD? Corey Crawford
- Moving away from the level based system John Vanderbeck
- Moving away from the level based system Corey Crawford
- Moving away from the level based system John Vanderbeck
- Moving away from the level based system Phillip Lenhardt
- Moving away from the level based system Dave Rickey
- Moving away from the level based system rayzam
- Moving away from the level based system John Buehler
- Moving away from the level based system msew
- Moving away from the level based system John Buehler
- Moving away from the level based system Jeff Freeman
- Moving away from the level based system John Buehler
- Moving away from the level based system Jeff Freeman
- Moving away from the level based system Phillip Lenhardt
- Moving away from the level based system Mike Warning
- Moving away from the level based system John Vanderbeck
- Moving away from the level based system rayzam
- Moving away from the level based system John Vanderbeck
- Moving away from the level based system Gabriel
- Moving away from the level based system Ron Moore
- Moving away from the level based system Corey Crawford
- Moving away from the level based system Jon Morrow
- Moving away from the level based system Batir
- Moving away from the level based system Ron Moore
- Moving away from the level based system Travis Casey
- Moving away from the level based system Christopher Allen
- Moving away from the level based system Travis Casey
- Moving away from the level based system David Bennett
- Moving away from the level based system Travis Casey
- Moving away from the level based system John Buehler
- Moving away from the level based system gmiller@classic-games.com
- Moving away from the level based system Hulbert, Leland
- Moving away from the level based system Kwon Ekstrom
- Moving away from the level based system John Buehler
- Moving away from the level based system Jeff Freeman
- Moving away from the level based system Tess Lowe
- Moving away from the level based system Paul Schwanz - Enterprise Services
- Moving away from the level based system Jeff Freeman
- Moving away from the level based system Paul Schwanz - Enterprise Services
- Moving away from the level based system Szii
- Moving away from the level based system Gabriel
- Moving away from the level based system Travis Casey
- Moving away from the level based system Kwon Ekstrom
- Moving away from the level based system Travis Casey
- Moving away from the level based system Hulbert, Leland
- Moving away from the level based system Travis Casey
- Dealing with high-level characters. Zak Jarvis
- Speaking of Everquest... Ananda Dawnsinger
- Magic systems, was: Moving away from the level based system Richard.Woolcock@rsuk.rohde-schwarz.com
- Immersion Types (was Levels of Immersion) Tess Lowe
- Immersion Types (was Levels of Immersion) Jeff Freeman
- Text Parsers szii@sziisoft.com
- Text Parsers Darren Henderson
- Text Parsers Travis Casey
- Text Parsers Nathan F.Yospe
- Re:Text Parsers szii@sziisoft.com
- EQ Crawling (was: Permadeath or Not?) Mike Warning
- EQ Crawling (was: Permadeath or Not?) Jeff Freeman
- Building a New MUD Ron
- Building a New MUD SavantKnowsAll@cs.com
- NPC grouping (LONG) Hulbert, Leland
- NPC grouping (LONG) ling@kanga.nu
- NPC grouping (LONG) Hulbert, Leland
- Level-less skill systems John W Pierce
- Forks or Frameworks? Gavin Doughtie
- Forks or Frameworks? Bryce Harrington
- Forks or Frameworks? Bryce Harrington
- Forks or Frameworks? szii@sziisoft.com
- Forks or Frameworks? Thomas, Chris
- Forks or Frameworks? Matthew Mihaly
- Forks or Frameworks? Tess Snider
- Forks or Frameworks? Bryce Harrington
- Forks or Frameworks? Koster, Raph
- Forks or Frameworks? bruce@puremagic.com
- Forks or Frameworks? Travis Casey
- Forks or Frameworks? Bryce Harrington
- Forks or Frameworks? Travis Casey
- Forks or Frameworks? Matthew Mihaly
- Forks or Frameworks? Dave Rickey
- Forks or Frameworks? Travis Casey
- Forks or Frameworks? Matthew Mihaly
- Forks or Frameworks? Travis Casey
- Forks or Frameworks? Tess Snider
- Forks or Frameworks? Jon Morrow
- Forks or Frameworks? Matthew Mihaly
- Forks or Frameworks? Koster, Raph
- Forks or Frameworks? Matthew Mihaly
- Forks or Frameworks? Kwon Ekstrom
- Forks or Frameworks? gmiller@classic-games.com
- Forks or Frameworks? Travis Casey
- LPC text parser Travis Casey
- "Exclusion" in Asimov's Greg Miller
- New Skill System Phil O'Donnell
- New Skill System John W Pierce
- New Skill System jsmithn@hotmail.com
- New Skill System gmiller@classic-games.com
- New Skill System John Buehler
- New Skill System Koster, Raph
- New Skill System John Buehler
- New Skill System Madrona Tree
- New Skill System gmiller@classic-games.com
- New Skill System Jon Morrow
- Curing skill spam (was: Moving away from the level based system) z032383@students.niu.edu
- Locker/Theft/Anti-Hoarding System Idea Andrew Snelling
- Locker/Theft/Anti-Hoarding System Idea Chris Lloyd
- Locker/Theft/Anti-Hoarding System Idea Travis Casey
- Locker/Theft/Anti-Hoarding System Idea Chris Lloyd
- Locker/Theft/Anti-Hoarding System Idea Andrew Snelling
- Curing skill spam (was: Moving away from the level based system) Phil Hall
- Must infrastructure dictate content? (was: Forks or Frameworks) Gavin Doughtie
- Virtual Communities olag@ifi.uio.no
- Virtual Communities Jon Morrow
- Virtual Communities msew
- Curing skill spam (was: Moving away from the level base system) Scatter
- Curing skill spam (was: Moving away from the level base system) z032383@students.niu.edu
- Curing skill spam (was: Moving away from the level base system) Batir
- Ray Feist interview Koster, Raph
- Ray Feist interview John Buehler
- Ray Feist interview David Loeser
- Ray Feist interview John Vanderbeck
- Ray Feist interview John Buehler
- Ray Feist interview Brian 'Psychochild' Green
- Ray Feist interview Travis Casey
- Ray Feist interview Lee Sheldon
- Ray Feist interview Travis Casey
- Ray Feist interview Fredfish {E. Harper}
- Ray Feist interview Lee Sheldon
- Ray Feist interview Lee Sheldon
- Storytelling Games [was: Ray Feist interview] Christopher Allen
- Curing skill spam Dan
- Curing skill spam Travis Casey
- Curing skill spam Jon Lambert
- Curing skill spam Alistair Milne