Olá
Bem, sou engenheiro civil, passei meus primeiros 15 anos como desenvolvedor desenvolvendo quase que exclusivamente sistemas usados no cálculo e desenho de estruturas (CAE, CAD). Usava 99% de Fortran com um pouco de assembler, calculadoras HP e até linguagem de máquina no caso de maquininhas de calcular antigas que ninguém aqui já viu alguma)
Programei muito também em C e até me achava muito bom nisto. Mas como meus programas de engenharia são mais antigos do que meus conhecimentos de C, até hoje ainda uso Fortran para cálculos de engenharia. Uso Fortran 95 sem nada de orientação a objetos. Manipulo a memória na raça como se toda a memória do computador fosse um vetorzão imenso. Sofro com o Fortran na questão de manipulação de texto que a linguagem não foi feita para isto.
C/C++ são linguagens que se enquadram melhor na classificação como de linguagem de proósito geral. Fortran é mais especializado. Aliás acho que C/C++ constituem a linguagem que mais pode ser chamada de GPL, isto é, servem para tudo.
Dependendo do que você pretende fazer, a escolha da linguagem ficará mais claro. Se é só para cálculos como por exemplo resolução de grandes sistemas de equaçoes, análise de estruturas por meio do métodos dos elementos finitos e assemelhados, o Fortran ainda é muito interessante e tem um monte de coisas prontas por aí (em livros ou em bibliotecas open source). Se você pretende fazer gráficos 3D, provavelmente acabará se interessando por OpenGL e então C/C++ podem ser melhor opção. Se você pesquisar, encontrará muita tese de mestrado e doutorado que escreveram código em C/C++
Se seus cálculos serão estatísticos, aí não há a menor dúvida. O caminho é usar R e integrar com sua linguagem favorita.
Mesmo em Java se pode fazer muita coisa para engenharia. Há um livro de um autor russo (o livro é em inglês) ensinando elementos finitos com Java e ainda usa Java2D e Java3D. Eu ando com vontade de converter para Java umas rotinas em Fortran para renumeração otimizada de nós de estruturas (renumeração de grafos).
Como já desenvolvi MUITO para engenharia, meu conselho final é o seguinte: o mais importante é a escolha do algoritmo mais adequado. Implementar em alguma linguagem é apenas um detalhe menos importante e os pesquisadores costumam usar as que eles mais dominam.
Alternativasl:
Fortran -> IDE marromeno baseada no Visual Studio é paga, compilador gratuito não permite grandes sonhos como computação paralela, MPI, etc.
C/C++ -> IDE é o Visual Studio ou coisa pior
Java -> Ambiente de desenvolvimento muito mais produtivo e de graça
R -> programa meio na raça mas com poucos comandos faz um monte de coisas
Outras alternativas:
Delphi e Pascal -> tinha gente que usava isto, principalmente Pascal que antigamente era usado na eng. civil da USP
Python -> para pequenos cálculos é muito produtivo e tem melhor suporte para engenharia do que Ruby
Ficou meio confuso, se não entendeu algo, pergunte.
[]s
Luca