I am a scientist in CFD. I was asked to create a "friendly" library for scientific computations. I know, there are many of those, but none of them fulfills all of these criteria at once:
- includes matrix classes, sparse matrix classes, graphs, FEM meshes, solvers (I know, I know, Dune does for example) under one common interface
- is intuitive for people using Scilab, Matlab, Octave, Mathematica etc (this is why I aim to create such syntax)
- has easy to use installer on both Windows and Linux
- is portable between Windows/Linux and Intel C++, VS C++ and GCC on those platforms
- is written in compiled language, so it is much faster than scientific script languages, and avoids copying of arrays (what is common in Scilab for example)
- to use: include only one header and done, no needed fortran to C and C to C++ etc compilations, using Linux to windows cross compilers and so on
And to give You straight answer: Engineers and scientists very often use Mathematica, Matlab and silimar things.
And quite often we begin to learn programming using these (btw great) packages. And these script languages are oriented for using matrices, the same way as it is in engineering practice. We are used to init matrices "by hand". However, as one develops oneself tries to count more and more complicated things. And at some moment those scientific packages seem too slow, even to use them at super computers (on our HPC Task server, if Your computations are not finished in a week, they are canceled).
So what I am trying to do is to create intuitive library, which can be easily installed and used by non-proffesional programmers (like myself).So they could easily count much larger cases than before.
I am guessing that You are a pro programmer. So Your viewpoint to this matter is quite different than someones who is just trying to do different job, but needs to create program to count anything. For You it is not a problem to choose a language, dependently to what You need to achieve. You need a good parsing - take Python, You need fast numerical algorithms - take C++ or Fortran. Need administrative scripts: take PowerShell or Perl...
But we - non-profesionals - don't look at those matters this way. Our job demands from us bit different things, and we are not (unfortunately) paid for spending time on learing new programming language.
You would be surprised how little most just-programming-users enigneers know about programming.
Edited by Misery, 28 July 2012 - 03:03 AM.