I just stumbled upon the J programming language, which has the description:
J is particularly strong in the mathematical, statistical, and logical analysis of data. It is a powerful tool in building new and better solutions to old problems and even better at finding solutions where the problem is not already well understood.
which sounds promising.
However, I looked at some examples, and my reaction was "you've got to be joking". E.g. here's an investigation into the Collatz problem (source):
collatz=: -:`(>:@(3&*))`1: @. (1&= + 2&|)
collatz 9
28
collatz 28
14
collatz 1
1
collatz^:a: 9
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
This makes me feel like it's more intended for code golfing, rather than serious mathematics.
Q: Is the J programming language actually useful for mathematics and mathematicians?
In my opinion it's not better than other languages like C++ or Fortran. I don't know it very well but I cannot see anything that cannot be done with other "computer" programming languages.
Surely it's not more readable: for example I cannot see clearly what this code does without I see it in action:
and probably if you try to make it more readable you avoid its main feature, because it's very coincisive.
If you want to do some mathematics with computer language, I prefer to use something like
MathematicaorMatlab. Even is the free softwareoctaveand similare are very powerful.From a program language point of view, their disadvantage is that they are script code and not compiled one, but I don't care about it for mathematical experiment.
If you want to create some machine native code, I prefer some mainstream programming language, like C++ or even fortran when needed, because if you search you can find libraries for almost everything (more about numeric calculus that symbolic one), like
boost::mathorbiginteger.At the end, in my opinion it's not useful because it has nothing that cannot be done with other available instruments, and its code syntax its unreadable unless you use it for many months.