[MUD-Dev] Re: DevMUD: Inheritable modules

Bruce Bruce
Wed Oct 28 11:57:39 CET 1998


On Wednesday, October 28, 1998, The Arrow wrote:
>There have been a lot of talk about modules, how to implement them, and how
>to send messages between them.  But so far I haven't seen anything about
>inheritable modules.  I know it wouldn't be trivial to make a good
>implementation, but once done they might make DevMUD even more OO and
>extensible.  What do you think about it?


Have you looked at TOM (http://gerbil.org/tom/) ?

To quote from that page:

               TOM is an object oriented programming language. It may look
like Objective-C at a first
               glance, but that resemblence is only syntactic. TOM is about
as much like Objective-C as
               Objective-C is like Smalltalk. Why another OO programming
language? Because TOM
               promotes usability of objects, not just reusability.
Reusability is a prerequisite of an OO
               language, but subclassing a given class to make it suit your
needs does not always work,
               for instance when you have no control over all locations
where objects are instantiated. In
               such cases, a modified class is what you need: without the
possibility to modify classes,
               you're stuck programming with something between objects and
abstract data types.

               TOM provides the following features in support of usable
objects:

                    * classes are extensible entities: a class is defined by
its main definition and its
                       extensions,
                    * an extension can add and replace methods. In support
of complex added
                    * behaviour, an extension can add instance variables. To
promote object reuse, an
                    * extension can introduce additional superclasses,
                    * extensions can be added to a program at compile, link,
or run time.

               To highlight some more features: TOM is dynamic; it provides
very simple (as in `elegant')
               multiple inheritance; methods are overloaded on both argument
and return types;
               instances as well as classes are true objects; they can be
extended and modified at run
               time and at compile time; objects are managed by a tracing
incremental garbage collector;
               returns are multi-valued; methods have preconditions and
postconditions (in pursuit of
               supporting Design By Contract); and the condition mechanism
(`exceptions'), like every
               part of the language, is an attempt at the right balance
between arcane, baroque, simple,
               elegant and, foremost, usable.

               The TOM compiler and tools are licensed under the GNU General
Public License
               (GPL); the libraries under the GNU Library General Public
License (LGPL). This means
               that (1) you can apply TOM for commercial applications---no
strings attached---and (2)
               if you fix a bug in the TOM tools or libraries the rest of
the world should share in that
               achievement.

Good day,

 - Bruce







More information about the mud-dev-archive mailing list