First of all I'm quite impressed how far your project has evolved since the last time we emailed.
I can't contribute much but just a note regarding performance: when I started with FC I did a lot of performance testing between Java and C++ just to figure out when and which I should run parts of the code on native side using JNI. On those tests it was obvious that the difference in performance was very little.
When it comes to performance you really should consider using GPU acceleration as this IMO offers by far the most potential, much much more than just the decision to choose C++ over Java or whatever language. So one idea whould be making your stacking tool CUDA compatible offering NVIDIA users an option to run the code on the GPU. There are a couple of tools available for reimplementing algorithms on GPU (e.g. OpenCV CUDA). At the end it needs to be tested how good the stacking code could be adapted to running efficiently on the GPU but in case it works speed improvement is astounding.
Thank you very much for your comments!
I think that with Python and the underlying Numpy framework I can get quite close to C performance inside those library functions for array operations. I see the main performance problem in unneccessary memory copies and temporary objects kept by Python between such operations. Since Python (as well as Java) does not have an explicit memory management, at the application programming level I can hardly avoid that. Similarly, multi-core control is of course provided by Numpy, but possibly one could do it more efficiently outside the innermost operation blocks. Again, this is sonething I would like to look at in a language like C or Fortran.
I already considered exploiting the power of graphics cards. Here at my institute we have several projects where that has been done successfully. (So I have the experts at hand who can tell me how to do it.) On the negative side, however, it makes code deployment and portability more complicated. So, this topic is not of highest priority right now, but I will keep an eye on it.
All the best,