Yes maybe you are right.
This idea does not seem promising for the community so i should drop this
idea here and focus on something better.
Thank you.
Pranam Lashkari.
On 22-Feb-2018 10:25 PM, "Hans Dembinski"
Hi Pranam,
On 22. Feb 2018, at 15:14, Pranam Lashkari via Boost < boost@lists.boost.org> wrote:
Sorry for taking too long to replay as I was talking to one of my friends who is a scientist and works in an observatory.
I completely agree with you that scientist would not move from Python to C++ easily. But Astronomical data are getting bigger in size and Python takes too much time to compute them (according to my scientist friend). That's where C++ can be a dramatic improvement.
I am a scientist and I work in the field of (astro)particle physics. I also happen to know one of the leading developers of gammapy and astropy.
I think that "Python takes too much time to compute" is not a good argument for your project. Most of the computation in packages like astropy and gammapy is based on numpy which is very fast. And where it is not fast enough, people who already use Python will rather use acceleration techniques such as Cython and Numba. C++ is a hard language, difficult to learn and almost impossible to master. As a scientist you want to spend a maximum of time doing science, and a minimum amount of time understanding computer code and the lovely error messages that template-heavy code produces. Also keep in mind that science is about short-term projects with a high fluctuation of personell. The ease of using and learning Python in this context greatly outweighs potential performance issues. As a project leader, you don't want to spend many months getting the new people up to speed with tricky software. You would clearly prefer Python solutions over C++ solutions whenever possible.
In summary, no, I don't think that a C++ astronomy library in Boost will be a hit. I recommend you join forces with astropy, ask them which algorithms are slow, and try to speed them up by writing them in C++, using Boost.Python or pybind11 for the Python bindings.
Best regards, Hans