An anonymous reader writes: I'm about to start my PhD in solid state physics. Most of my work will revolve around numerical simulations of lattice systems — Monte Carlo simulations, density functional calculations [iterative solutions of differential equations], etc.
Almost all of the legacy code is written in FORTRAN(95), the systems available are quite ...diverse ( some old Alphas, Opterons, Power5). Furthermore, I want to be able to simply 'write down' my code (consisting mainly of matrix equations) without worrying (much) about operator precedence, pointers, whatever. So, the programming language should fulfil the following requirements:
1) speed
2) portability
3) easy parallelisation
4) sane, safe, easy syntax
FORTRAN claims all of the above with the possible exception of #4, though in my -limited- experience it's not as bad as the old stories tell if one can muster a bit of self-discipline. C fails -for all I know — on #3 and #4 (remember, matrix manipulation).
But of course, my knowledge is rather limited, especially considering other alternatives (assumed existing), so I thought I'd better ask.
Note that I do not care if the language will be regarded as a 'valuable asset' by future employers, as If I would consider a corporate job they'd better hire me for my brain and not for my toolbox.