Algunos pensamientos adicionales.
El lenguaje de programación 'per se' es solo una herramienta. Todos los lenguajes fueron diseñados para hacer que algunos tipos de construcciones sean más fáciles de construir que otros. Y el conocimiento y dominio de un lenguaje de programación es más importante y efectivo que las características de ese lenguaje en comparación con otros.
Hasta donde puedo ver, hay dos dimensiones de esta pregunta. La primera dimensión es la capacidad de explorar, construir pruebas de conceptos o modelos a un ritmo rápido, eventualmente teniendo a la mano suficientes herramientas para estudiar lo que está sucediendo (como pruebas estadísticas, gráficos, herramientas de medición, etc.). Los investigadores y los científicos de datos suelen preferir este tipo de actividad (siempre me pregunto qué significa eso, pero utilizo este término para su definición general). Tienden a depender de instrumentos conocidos y verificados, que pueden usarse para pruebas o argumentos.
La segunda dimensión es la capacidad de extender, cambiar, mejorar o incluso crear herramientas, algoritmos o modelos. Para lograrlo, necesita un lenguaje de programación adecuado. Aproximadamente todos son iguales. Si trabajas para una empresa, dependes mucho de la infraestructura de la empresa, la cultura interna y tus opciones disminuyen significativamente. Además, cuando desea implementar un algoritmo para uso en producción, debe confiar en la implementación. E implementar en otro idioma que no domines no te ayudará mucho.
Tiendo a favorecer para el primer tipo de actividad el ecosistema R. Tiene una gran comunidad, un gran conjunto de herramientas, pruebas de que estas herramientas funcionan como se esperaba. Además, puede considerar Python, Octave (por nombrar algunos), que son candidatos confiables.
Para la segunda tarea, debes pensar antes en lo que realmente quieres. Si desea herramientas listas para la producción robustas, entonces C / C ++, Java, C # son excelentes candidatos. Considero a Python como un segundo ciudadano en esta categoría, junto con Scala y sus amigos. No quiero comenzar una guerra de llamas, es solo mi opinión. Pero después de más de 17 años como desarrollador, tiendo a preferir un contrato estricto y mi conocimiento, que la libertad de hacer lo que pienses (como sucede con muchos lenguajes dinámicos).
Personalmente, quiero aprender tanto como sea posible. Decidí que tenía que elegir el camino difícil, lo que significa implementar todo desde cero. Yo uso R como modelo e inspiración. Tiene grandes tesoros en bibliotecas y mucha experiencia destilada. Sin embargo, R como lenguaje de programación es una pesadilla para mí. Así que decidí usar Java y no usar una biblioteca adicional. Eso es solo por mi experiencia, y nada más.
Si tiene tiempo, lo mejor que puede hacer es pasar un tiempo con todas estas cosas. De esta forma, obtendrá la mejor respuesta posible, adecuada para usted. Dijkstra dijo una vez que las herramientas influyen en su forma de pensar, por lo que es aconsejable conocer sus herramientas antes de permitirles modelar cómo piensa. Puedes leer más sobre eso en su famoso artículo llamado The Humble Programmer