You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Anton Tagunov <at...@mail.cnt.ru> on 2003/07/07 11:17:05 UTC

1. Interfaces shold be stable 2. How to do one-pass computations? (was : [math] Recent commits to stat, util packages)

Hello, Phil and All the [math] Developers!

1.

PS> Univariate can always be extended -- statistics can be added to the base
PS> interface...

Oh, no.. I feel terribly sorry to break in, but this is
probably going to cause us users some troubles..

Imagine

* some class appears in [math] that accepts an
  object implementing Univariance as an argument of some
  method

* I, as a user, create my own implementation of Univariance
  interface

* I pass my object to that method

All is ok, so far.

* as the next version of [math] comes out the Univariance
  interface is extended

Bump! My project no longer compiles, as my own implementation
of Univariance does not implement the new method.

2.

In fact, extending an interface in a released (and also unreleased
but already adopted by users) project is an extremely painful action.
It breaks all user implementations of that interface.

AFAIK jakarta-commons strives hard to avoid doing that even if
extending an interface would give significant benefits.

AFAIK this is the path to creating incompatible versions of
jars (w/o backward compatibility) and this is part of
the "jar hell" problem widely known here which makes
developers "cut and paste" code rather then create a
dependency on a sister project (augh!)

Please, can you use a design that keeps interfaces stable?

3.

However,

PS> I wanted to keep the stats in ... one-pass, storageless Univariate
PS> limited to the basics -- mean, variance, min, max, sum and the things
PS> that can be derived from those (std. dev, conf intervals, etc.)

This sounds meaningful as well.
How can the one-pass computation be implemented in the
modular framework?

WBR, Anton


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: 1. Interfaces shold be stable 2. How to do one-pass computations? (was : [math] Recent commits to stat, util packages)

Posted by Phil Steitz <st...@yahoo.com>.
--- Anton Tagunov <at...@mail.cnt.ru> wrote:
> Hello, Phil and All the [math] Developers!
> 
> 1.
> 
> PS> Univariate can always be extended -- statistics can be added to the base
> PS> interface...
> 
> Oh, no.. I feel terribly sorry to break in, but this is
> probably going to cause us users some troubles..

That is a good point.  I would expect all interfaces to stabilize prior to
release.  I should have qualified the statement.

> In fact, extending an interface in a released (and also unreleased
> but already adopted by users) project is an extremely painful action.
> It breaks all user implementations of that interface.

Agreed.  Good point.
> 
> AFAIK jakarta-commons strives hard to avoid doing that even if
> extending an interface would give significant benefits.
> 
 > 
> Please, can you use a design that keeps interfaces stable?

I see no reason that this cannot be done.  

Phil
> 
 

__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org