[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] hipparchus vs Apache Commons Math

w.grossman@ieee.org a écrit :

Just looking to be enlightened.

What is the reason that hipparchus split off from apache commons math and what
advantages does hipparchus have over commons math for orekit?  Why should I
consider hipparchus for other projects?

There are several reasons.

Apache Commons Math is a sub-project of Apache Commons, and hence has some
contraints coming from the top-level project. These constraints were more
and more difficult to publish new versions and to get consensus on evolutions.
The constraints are well justified for sub-projects with very large user base
and reused in many projects, such as commons-lang for example. The [math]
sub-project did not have such a large user base, and needed some free space
to evolve, which was not possible there. This was visible for example in
the optimizers design: due to extremely strict rules, we had to duplicate code
and at one time had three different packages providing similar classes. It
was cumbersome, error-prone, difficult to maintain, impossible to understand
for users.

We tried first to leave Apache Commons while still remaining an Apache project, by becoming a TLP (Top Level Project). It was not possible as despite succeeding
votes, internal disagreement wreak havoc: several key developers left in a
short time frame.

Then, a few of the former key developers decided to fork and rebuild a much
smaller community and continue outside of the Apache Foundation, letting the
Apache Commons Math sub-project continuing within the foundation. This is how
Hipparchus was started. Several people are involved in both Orekit and
Hipparchus, including myself.

A few years later, Hipparchus still has a small community but is alive, and
several new versions have been published so far. The Apache Commons Math
never published any new version, the last one was 3.6.1, in march 2016. It
seems they rebuilt a developers community and want to publish smaller libraries
focusing on a subset of features (commons-numbers, commons-rng...). I don't
think any new version of the full [math] library will ever be published. Some
parts like ODE seem not maintained at all.

best regards,