Generalizing the E operator expansions
Mark S. Miller
markm@caplet.com
Sat, 26 Aug 2000 16:45:23 -0700
At 06:31 AM 8/26/00 , Tyler Close wrote:
>I've updated Hydro to support the partial order definitions that Markm
>defined, as well as the hashtable equivalence behaviour that Dan
>Bornstein suggested. The new version, Beta3, can be found at:
>http://www.waterken.com/Hydro/2.0/
>[...]
>There are a few more things that need to be done in order to fully
>integrate Hydro into E. One of those is operator support.
This is great news. But...
There are a number of other issues as well, such as
* Hydro's use of purely abstract classes rather than interfaces. Note:
Considered only as a Java API, I like Tyler's choice. However, while E
objects may in-effect implement Java interfaces (from the point of view of
pre-existing conventional Java clients of those interfaces), E objects
cannot in-effect subclass Java classes.
* There are many other naming mismatches such as "iterate" vs "inspect" (and
in that context, "evaluate" vs "run").
* I think there are also several semantics issues. For example, on a brief
skim, it seems in the previous discussion of equality that Tyler thought I
was referring to one the Java equalities, all of which are broken, rather
than to E's equality (or "sameness"). OTOH, for Hydro to be a standalone
library, it can hardly use E's sameness as the default unless we move the
sameness code from E to Hydro.
I mention all the above *not* because we need to resolve all these before
the next E release, but to make the point that we don't. The next E release
will bundle in the above Hydro library on an experimental basis, so we may
all play with it, see what issues there are, and see if we can adequately
resolve them all. Tyler's operator renaming may be wonderful (and I already
think I like it), but I'm not going to even try to think through all the
implications until after the next release.
Nevertheless, this is indeed great news! Good job Tyler!
Cheers,
--MarkM