Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Two kinds of interval arithmetic domains



George Corliss wrote:
> In software engineering, I teach my students that if a one sentence
> description of a module/class/function contains "AND", the design probably
> can be improved.  A module that does two things is MUCH less likely to be
> reusable than two modules that do one thing each.  The module that does
> two things is unlikely to do either as well as either single-purpose
> module.


This might be generally true if our language environments supported
proper and efficient dependency tracking, so that if we need two things
that share a significant number of supporting concepts and functions, we
can use a single copy of those without having to package them in a form
that also caters to being usable by any other things.

(This additional qualification matters:  if the common foundation were
generally useful and applicable, it would deserve to stand on its own.)

Frequently however such common items have to be packaged together with
the two specific things that depend on them in order to reap the full
benefits of efficiency and maintainability.  I am especially concerned
about maintainability:  if the same thing is done in two places, there
is a grave danger that a change in one in not propagated to the other.
Now, sometimes a unilateral change is good, e.g. when it is for the
benefit of only one of the two things.  Trouble arises when a later
change intended for the benefit of both things depends on that first
change:  had we known about that second need in advance, the first
change would have been seen naturally as applying to both things.
In a disjoint implementation however it is now too late, and the two
foundations start to diverge.  Future common-purpose changes have to
be applied separately, and soon enough we get a maintenance mess.

> If we think there are two application domains for interval arithmetic,
> I favor two (complementary) standards, not one standard that tries to
> do two things.

I am not convinced that the two applications are sufficiently disjoint,
so my comments above apply.  What it does suggest however is that the
common standard could have three sections, one on fundamentals, and one
each for the separate application domains.

Michel.
---Sent: 2009-04-22 15:40:19 UTC