On Mon, 06 Jun 2016 17:57:53 +0000, Benedikt Ritter wrote:
Hello Gilles,

I think ApacheCon Europe would be a good opportunity to spread the word
about this.

I hope that by this time, if you want to say a few words about Commons
Math, you'll have more positive things to mention... And by this I mean
of course that we'll have  succeeded in rescuing already some of the
code and turned it into something readily useful

Gilles


Benedikt

Gilles <gil...@harfang.homelinux.org> schrieb am Mo., 6. Juni 2016 um
02:49 Uhr:

Hello.

Commons Math as it was in the last official release (v3.6.1) and
consequently as it is in the current development branch has
become unmaintainable.

This conclusion is unavoidable when looking at the following:
  1. codebase statistics (as of today):
     * src/main/java       90834 lines of Java code (882 files)
     * src/test/java       95595 lines of Java code (552 files)
     * src/userguide/java   3493 lines of Java code (19 files)
  2. number of posts on the "dev" ML (related to [Math]) in the
     last 2 months:
     * Gilles            74
     * Artem Barger      20
     * sebb              15
     * Rob Tompkins       9
     * Eric Barnhill      7
     * 19 other people   46
  3. development/maintenance activity in the last 4 months:
     * commits by Gilles  133
     * commits by others   12

According to JIRA, among 180 issues currently targeted for the
next major release (v4.0), 139 have been resolved (75 of which
were not in v3.6.1).

So, on the one hand, a lot of work has been done already, but
on the other, a lot remains.
Some issues have been pending for several years, in particular
those that required a major refactoring (e.g. in the packages
"o.a.c.m.linear" and "o.a.c.m.optim").

The remaining work is unlikely to be completed soon since the
fork of Commons Math has drastically reduced the development
capacity.

Moreover, as whole areas of the codebase have become in effect
unsupported, it would be deceiving to release a version 4.0 of
Commons Math that would include all of it.

Of course, anyone who wishes to maintain some of these codes
(answer user questions, fix bugs, create enhancements, etc.)
is most welcome to step forward.

But I'm not optimistic that the necessary level of support can
be achieved in the near future for all the codebase.
Waiting for that to happen would entail that code that could
be in a releasable state soon will be on hold for an indefinite
time.

The purpose of this post is to initiate a discussion about
splitting Commons Math, along the following lines:
1. Identify independent functionality that can be maintained
    even by a small (even a 1-person) team within Commons and
    make it a new component.
2. Identify functionality that cannot be maintained anymore
    inside Commons and try to reach out to users of this
    functionality, asking whether they would be willing to
    give a helping hand.
    If there is sufficient interest, and a new development
    team can form, that code would then be transferred to the
    Apache "incubator".

There are numerous advantages to having separate components
rather than a monolithic library:
  * Limited and well-defined scope
  * Immediate visibility of purpose
  * Lower barrier to entry
  * Independent development policy
  * Homogeneous codebase
  * Independent release schedule
  * Foster a new community around the component

According to the most recent development activity, the likely
candidates for becoming a new component are:
  * Pseudo-random numbers generators (package "o.a.c.m.rng")
  * Complex numbers (package "o.a.c.m.complex")
  * Clustering algorithms (package "o.a.c.m.ml.clustering")

Other potential candidates:
  * "FastMath" (which should be renamed to something like
    "AccurateMath", cf. reports about slowness of some of
    the functions)
  * Special functions (package "o.a.c.m.special")
  * Selected "utilities" (package "o.a.c.m.util")


Best regards,
Gilles



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




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

Reply via email to