¿Qué idioma es el más adecuado para el cálculo astronómico?

Lo “mejor” es en gran medida subjetivo dependiendo de sus necesidades, su experiencia pasada y su capacidad de aprender.
He visto muchos programas astronómicos en IDL. También he visto C / C ++ como parte de los cursos estándar de computación astronómica [1]. Pero también he creado algunos programas en Python & R y son relativamente fáciles de ejecutar. Incluso se pueden usar rutinas escritas en Java, Perl, Fortran, etc.
Mencionaría los idiomas principales y por qué como astrónomo / astrofísico deberías usarlos o no:

1. C / C ++ / Fortran
Pros:
Le brinda el mayor rendimiento de la máquina en comparación con todos los demás idiomas, es decir, realizan cálculos más rápidos en una comparación de tiempo más corta para decir Python o Perl. También puede procesar grandes conjuntos de datos, tener una serie de módulos de soporte. F95 puede ser más útil en informática científica que C / C ++, ya que C / C ++ son muy potentes y versátiles. Fortran también tiene varias bibliotecas matemáticas muy buenas. [8]
Contras:
Todos tienen una curva de aprendizaje empinada. Si no está relacionado con CS o no le gusta la programación, puede encontrarlos difíciles de aprender y usar de manera efectiva. Fortran se está cayendo lentamente de uso.

2. Python:
Pros:
Uno de los idiomas más fáciles de aprender. Más adecuado para un trabajo menos intensivo en cómputo. Tiene varios módulos relacionados con el procesamiento de datos, el trazado, las estadísticas, etc. Es muy versátil. Tiene interfaces que facilitan el trabajo con otros lenguajes, puede usar módulos Fortran, C / C ++, R, Java, etc. en Python. Y lentamente se está convirtiendo en la opción favorita para la computación científica, incluida la astronomía menos los cálculos intensivos necesarios. [4] Si quieres aprender Python, consulta: Python práctico para astrónomos.
Contras:
Es relativamente más lento que los idiomas anteriores. No es adecuado para conjuntos de datos muy grandes. Instalar paquetes puede ser tedioso y difícil. Hay dos iteraciones: Python 2.xy python 3.x, siendo 3.x la versión más nueva, pero a veces es posible que necesite usar la versión 2.xy encontrar algunos paquetes fuera de uso, y algunos no tienen una alternativa más nueva. Las documentaciones para algunos de los módulos de menor uso pueden no ser buenas.

3. R:
Pros:
Uno de los mejores idiomas para trabajar con grandes conjuntos de datos, realizar cálculos estadísticos, gráficos y minería de datos. Tiene una gran cantidad de módulos relacionados con la astronomía y casi todos los campos de la ciencia. [2]
Contras:
La documentación no es clara y, a menudo, supone que conoce muchas estadísticas. No es muy buena gestión de memoria y puede consumir memoria. Además, la curva de aprendizaje está ahí, sin embargo, la sintaxis R básica se puede aprender en un tiempo más corto.

4. IDL:
Pros:
Usado por muchos astrónomos, por lo que una gran cantidad de material documentado por astrónomos. Bueno para trazar pero no bueno para gráficos. [9] La NASA tiene una biblioteca IDL para astrónomos: la Biblioteca del Usuario de Astronomía IDL.
Contras:
Tiene una curva de aprendizaje. Licencia costosa. La tendencia es cambiar de IDL a Python. [3]

5. Java, Perl, Ruby, C # etc.
Pros:
Muy popular. He visto a algunas personas usar Perl y sus módulos. Java puede ser utilizado en algunos proyectos grandes o por alguna organización grande: por ejemplo, Gaia Project. Java es multiplataforma.
Contras:
Comunidad casi no existente. Perl es difícil de aprender. Java es ENORME y confuso. Ruby tiene módulos científicos relativamente menores. Y ni siquiera sé por qué mencioné C #.

6. Matlab:
Es bastante popular Tiene gran cantidad de funciones y módulos. Es más fácil de usar. Utilizado en minería de datos. Puede interactuar con instrumentos de laboratorio reales y es bueno para simular experimentos.
Contras:
Licencia costosa. No es bueno para el cálculo de necesidades intensas. Menores usuarios en astronomía. [6]

Línea de fondo:
Debe elegir entre codificar más rápido o computar más rápido.

Los lenguajes de alto nivel como Python y R son fáciles de usar, más rápidos de codificar, fáciles de crear sus propias bibliotecas y también tienen una solución para sus rendimientos más lentos al utilizar los propios lenguajes más rápidos. Si eres astrónomo, definitivamente deberías aprender Python.

Si es astrofísico y necesita codificar cada vez con menos frecuencia y simular conjuntos de datos grandes y complejos con cálculos más rápidos con cambios menores e infrecuentes y está dispuesto a aprender; entonces definitivamente vaya por C / C ++ o Fortran. C / C ++ puede ser útil en más proyectos además de las ciencias espaciales, si alguna vez lo necesita.

Aquí hay algunos recursos y sugerencias más para usted que pueden ser útiles:

Apéndices
1. Matemáticas:
Con mayor frecuencia descubrirá que la necesidad de ser competente en matemáticas (a menudo avanzado) es más que la necesidad de ser competente en un lenguaje de programación. Por lo tanto, aparte de los libros de texto, se necesitan herramientas como Mathematica y si no puede pagarlo, use Wolfram Alpha. [6]

2. Modelado:
Se puede hacer en R, módulos de Python como NumPy, MatPlotLib, C ++ y casi todos los demás lenguajes. El modelado es más fácil en Python, R e IDL.

3. Simulación:
Gadget -2 es un software recomendado para simulaciones cosmológicas. [6] [7]

4. OS:
La primera opción debería ser Linux, de lo contrario, Mac OS, de lo contrario, puede usar algunas de las herramientas específicas de Linux en Windows con CygWin.

5. Varios:
Si está un poco interesado en Astronomía, Astrofísica, Cosmología, instale el World Wide Telescope de Microsoft de inmediato. Una palabra: asombroso.

TOPCAT es un programa para ver interactivamente datos tabulares de conjuntos de datos astronómicos. [6]

LaTex puede ser necesario para la preparación de ciertos documentos.

¡Todo lo mejor!

PD: Soy estudiante de informática y alguien a quien le gusta la astrofísica, la cosmología y la física de partículas, solo un aficionado en ellas. Así que este no es un consejo profesional, más desde la perspectiva CS que desde la perspectiva de las ciencias espaciales.

Referencias
[1] Astrofísica | ASTR701- Astrofísica computacional
[2] https://asaip.psu.edu/forums/sof…
[3] IDL contra Python
[4] http://bellm.org/blog/2011/05/27…
[5] Python para el seguimiento de la astronomía
[6] http://astrobites.org/glossaries…
[7] Simulaciones cosmológicas con GADGET
[8] ¿Entonces quieres ser astrofísico? Parte 1: ser un astro mayor
[9] Introducción a IDL