Некоторые дополнительные мысли.
Язык программирования «per se» - это всего лишь инструмент. Все языки были разработаны, чтобы сделать некоторые типы конструкций более легкими для построения, чем другие. А знание и владение языком программирования важнее и эффективнее, чем возможности этого языка по сравнению с другими.
Насколько я вижу, есть два аспекта этого вопроса. Первое измерение - это способность быстро исследовать, создавать концепции или модели, имея в конечном итоге достаточно инструментов для изучения происходящего (например, статистические тесты, графики, инструменты измерения и т. Д.). Этот вид деятельности обычно предпочитают исследователи и исследователи данных (мне всегда интересно, что это значит, но я использую этот термин для его свободного определения). Они склонны полагаться на хорошо известные и проверенные инструменты, которые можно использовать для доказательств или аргументов.
Второе измерение - это способность расширять, изменять, улучшать или даже создавать инструменты, алгоритмы или модели. Для этого вам нужен правильный язык программирования. Примерно все они одинаковы. Если вы работаете в компании, вы сильно зависите от инфраструктуры компании, внутренняя культура и ваш выбор значительно уменьшаются. Кроме того, когда вы хотите реализовать алгоритм для производственного использования, вы должны доверять реализации. А внедрение на другом языке, которым вы не владеете, не очень вам поможет.
Я склоняюсь к первому виду деятельности в экосистеме R. У вас отличное сообщество, огромный набор инструментов, доказательство того, что эти инструменты работают, как и ожидалось. Кроме того, вы можете рассмотреть Python, Octave (чтобы назвать несколько), которые являются надежными кандидатами.
Для второго задания вы должны подумать раньше о том, что вы действительно хотите. Если вам нужны надежные готовые к работе инструменты, то C / C ++, Java, C # являются отличными кандидатами. Я считаю Python вторым гражданином в этой категории вместе со Scala и друзьями. Я не хочу начинать пламенную войну, это только мое мнение. Но после более чем 17-летнего опыта работы разработчиком я предпочитаю строгий контракт и мои знания, а не свободу делать то, о чем вы думаете (как это происходит со многими динамическими языками).
Лично я хочу узнать как можно больше. Я решил, что должен выбрать сложный путь, а значит самому все реализовать. Я использую R в качестве модели и вдохновения. Он имеет большие сокровища в библиотеках и богатый опыт. Однако R как язык программирования для меня - кошмар. Поэтому я решил использовать Java и не использовать дополнительную библиотеку. Это только из-за моего опыта, и ничего больше.
Если у вас есть время, лучшее, что вы можете сделать, это провести некоторое время со всеми этими вещами. Таким образом, вы заработаете для себя лучший ответ, подходящий для вас. Дейкстра однажды сказал, что инструменты влияют на то, как ты думаешь, поэтому желательно знать свои инструменты, прежде чем позволять им моделировать, как ты думаешь. Вы можете прочитать больше об этом в его знаменитой газете «Смиренный программист».