Hoy en día lo que se usa son paquetes avanzadas y especializados para cada tipo de trabajo.
Por ejemplo, para ciertas cuestiones de modelos estadisticos se usa el R o similares.
El programa Mathematica tiene un lenguaje de programación incorporado, que está orientado a ''reglas'', lo cual da un notable grado de abstracción. Además el mathematica trabajo con calculo simbolico y precision ilimitada.
El matlab está limitado a la precisión decimal de la computadora. No sé si hay algún modo de saltarse esa restricción.
Además el matlab puede incorporar calculo simbolico u otras capacidades sólo a través de paquetes, porque la filosofía central del lenguaje es el trabajo con datos matriciales (MATrix LABoratory).
Según dicen las rutinas de matlab están muy optimizadas, lo que lo haría preferible al hecho de programar uno mismo los algoritmos en algún lenguaje.
El mathematica maneja tanta abstracción que me hace pensar que no es adecuado para la rapidez de cálculos, pero el matlab se vuelve inestable e impreciso cuando uno necesita cálculos que involucran matemáticas ''arriesgadas'' (trabajar con funciones que tienen singularidades, o incluso matrices singulares, son cosas que ya traen problemas).
Según entiendo, lo más rápido y eficiente es el C++, y el compilador incluso está más optimizado que el mismo C.
Así que conviene usar C++ antes que C.
El fortran es obsoleto. La gracia de usar un lenguaje como ese estaría por ejemplo si redundara en beneficios en la rapidez y precisión de los cálculos. Pero ignoro si esto es así.
Además el C++ es más que suficiente para hacer rutinas optimizadas.
Si hay que elegir entre C++ y Matlab, no estoy seguro qué elegir. Tengo una mala impresión de matlab, pero sólo porque es un programa de alto nivel, que trabaja con scripts. En cambio el C++ tiene un compilador incorporado, y eso hace que los programas anden más rápido. Sin embargo, una vez que el matlab se ha lanzado a hacer una serie complicada de calculos, seguro que es más completo y eficiente que lo que uno pueda hacer en C++, y hasta más rápido.
Lo que no conviene hacer en matlab es programación general...
Yo estoy aprendiendo java. Lo bueno de java es que es multiplataforma. Pero tango la sensación de que esa virtud puede redundar en una gran lentitud de proceso. Aunque a lo mejor el compilador en tiempo real de java se va mejorando con los años, aújn así sigo desconfiando de su ''rapidez''.
Pero pienso que lo ideal sería programar en java, debido a que la programación es más directa, uno se dirige al problema que tiene que resolver como programador, y se desentiende de los miles de detallitos técnicos que tiene, por ejemplo, el C++.
El programador no tiene que estar aprendiendo todos los caprichitos del lenguaje, porque eso es programar en bajo nivel, a fin de cuentas.
Cuando uno puede orientarse directo al problema, cuando uno piensa un algoritmo y puede traducirlo directo al lenguaje, eso es programar. Según lo que he visto, Java se parece más a este ideal. Pero el hecho de ocultar todo el trabajo interno de la máquina seguro hace más lento el proceso.
Si alguno quiere sufrir, traumarse y terminar volviendose psicópata o terrorista, le recomiendo aprender Cobol.
Es el lenguaje más estúpido, feo e inútil de toda la historia humana. Es una aberración que hay que quemar en el infierno junto con el imbécil que lo creó.
Para trabajar con latex, les recomiendo un programita de mi propia autoría, que reconfigura el teclado para generar toda la lista de comandos tex.
