|
Recent news |
- (Tue Aug 28 2001) A new tesla bootstrap
has been released.
- (Sun Aug 12 2001) The Mac OS X port has been started.
- (Fri Apr 27 2001) Preliminary support for building tesla under
cygwin has been added. It is available through CVS or a current
snapshot.
- (Sun Apr 15 2001) The website has received some updates. New
snashots have been released, as well as a new bootstrap
release of tesla. At this point, tesla should be considered
the preferred compiler over tomc.
- (Sun Sep 24 2000) The mailing lists have moved over to mailman.
- (Sun Jun 4 2000) Maury has been generating some interest at the WWDC
Stepwise BOF.
- (Mon Jan 31 2000) VIM is the first editor to have a TOM mode, by
Joost Yervante Damad.
- (Sat Jan 1 2000) Happy hacking! Now with guidance by the TOM Bug Database
maintained by Bruce.
- (Sun Oct 31 1999) Feature: On the
Flexibility of Programming Languages (4k words) (abstract).
|
Older
news |
|
|
Contemporary object-oriented programming languages employ the class as
the unit of reuse. At the same time, the class is also the unit of
design. This implies that to reuse a class, the design of the class must
fit the design in which it will be reused. While this serves
planned reuse, it hampers unplanned reuse. Obviously,
unplanned reuse is much more important if widespread reuse is
desired.
TOM is an object-oriented programming language that advocates unplanned
reuse of code. To this effect, TOM enables unplanned reuse
through the following features:
- A class is defined by its main definition and any extensions.
- An extension can add methods, variables, and superclasses to a class.
- The source of the original class is not relevant while it is extended:
it is not needed and does not need recompilation; nor is recompilation
required for any client code or subclasses. Extensions can even be
loaded at run time.
Unplanned reuse removes the privilege of class modification from the class
designer and hands it over as a right to the user. Every user has other
uses for a class: the class does not need to suit them all if they can
make it suit themselves.
What does this offer to the writer of classes? Using a class is no
longer a binary choice: the user can be almost satisfied by it and adjust
it to his needs. And you can severely update the classes in your
library, e.g., add instance variables or replace methods, without
requiring recompilation of any program using it, or requiring a
non-backward-compatible version change of your shared library.
Dive into the TOM documentation or publications, read the tutorialesque highlights, or go straight to an actual-code
example of the extensibility of
classes.
|