as an engineering student with a strong mathemathical background, i dealing some problems like this at university:
- (numerical) Simulations
- AI Problems
- Robotics
- Control Systems
- and some more
as you can see some are just numerical ones, others have to process some kinds of symbols. currently i'm working with java, but i'm not very pleased with it (can't say exactly why, probably a personal taste) and now i'm searching for a programming language, in which i can easily prototype new algorithms, like for example in python, and don't care about low level stuff, but has the ability to speed things up if neccessary, e.g. with concurrent/parallel programming, etc. (writing it in python and rewrite it in C/C++ isn't really a option i prefer...)
to sum it up:
- easy to prototype, but
- the ability to speed algorithms up
- syntax without boilerplate stuff like in java
- syntax which is easy to read (i know this could be achived with the most, but some language encourage you more...)
i've looked around at sites, like http://rosettacode.org/ and picked 2 or 3 favorites: Go, Lisp (and maybe Haskell) but other recommandations are welcome