On 02/05/2013 03:08 PM, Gilles wrote: > Hi. > > In the thread about "static import", Stephen noted that decisions on a > component's evolution are dependent on whether the future of the Java > language is taken into account, or not. > A question on the same theme also arose after the presentation of Commons > Math in FOSDEM 2013. > > If we assume that efficiency is among the important qualities for Commons > Math, the future is to allow usage of the tools provided by the standard > Java library in order to ease the development of multi-threaded algorithms. > > Maintaining Java 1.5 source compatibility for the reason that we may need > to support legacy applications will turn out to be self-defeating: > 1. New users will not consider Commons Math's features that are notably > apt to parallel processing. > 2. Current users might at some point simply switch to another library if > it proves more efficient (because it actually uses multi-threading). > 3. New Java developers will be turned away because they will want to use > the more convenient features of the language in order to provide > potential contributions. > > If maintaining 1.5 source compatibility is kept as a requirement, the > consequence is that Commons Math will _become_ a legacy library. > In that perspective, implementing/improving algorithms for which a > parallel version is known to be more efficient is plainly a waste of > development and maintenance time. > > In order to mitigate the risks (both of upgrading and of not upgrading > the source compatibility requirement), I would propose to create a new > project (say, "Commons Math MT") where we could implement new features[1] > without being encumbered with the 1.5 requirement.[2] > The "Commons Math MT" would depend on "Commons Math" where we would > continue developing single-thread (and thread-safe) "tasks", i.e. > independent units of processing that could be used in algorithms > located in "Commons Math MT". > > In summary: > - Commons Math (as usual): > * single-thread (sequential) algorithms, > * (pure) Java 5, > * no dependencies. > - Commons Math MT: > * multi-thread (parallel) algorithms, > * Java 7 and beyond, > * JNI allowed, > * dependencies allowed (jCuda). > > What do you think?
In general, I am very positive about this proposal, I just think we are lacking developer resources (also considering the rather high quality requirements in commons to get a release done). Otoh, everybody can start a new project in the sandbox, let's see if this attracts new people? just my 2 cents Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org