Einige zusätzliche Gedanken.
Die Programmiersprache 'an sich' ist nur ein Werkzeug. Alle Sprachen wurden so entwickelt, dass bestimmte Konstrukte einfacher zu erstellen sind als andere. Und die Kenntnis und Beherrschung einer Programmiersprache ist wichtiger und effektiver als die Merkmale dieser Sprache im Vergleich zu anderen.
Soweit ich sehen kann, gibt es zwei Dimensionen dieser Frage. Die erste Dimension ist die Fähigkeit, Konzepte oder Modelle schnell zu erkunden, Beweise zu erstellen und schließlich genügend Werkzeuge zur Hand zu haben, um zu untersuchen, was vor sich geht (wie statistische Tests, Grafiken, Messwerkzeuge usw.). Diese Art von Aktivität wird normalerweise von Forschern und Datenwissenschaftlern bevorzugt (ich frage mich immer, was das bedeutet, aber ich benutze diesen Begriff für seine lose Definition). Sie verlassen sich in der Regel auf bekannte und überprüfte Instrumente, die für Beweise oder Argumente verwendet werden können.
Die zweite Dimension ist die Fähigkeit, Werkzeuge, Algorithmen oder Modelle zu erweitern, zu ändern, zu verbessern oder sogar zu erstellen. Um dies zu erreichen, benötigen Sie eine geeignete Programmiersprache. Sie sind ungefähr alle gleich. Wenn Sie für ein Unternehmen arbeiten, dann hängen Sie in hohem Maße von der Infrastruktur des Unternehmens ab, die interne Kultur und Ihre Entscheidungen nehmen erheblich ab. Wenn Sie einen Algorithmus für die Produktion implementieren möchten, müssen Sie der Implementierung vertrauen. Und die Implementierung in einer anderen Sprache, die Sie nicht beherrschen, hilft Ihnen nicht viel.
Ich neige dazu, für die erste Art von Aktivität das Ökosystem zu bevorzugen. Sie haben eine großartige Community, eine Vielzahl von Tools, die beweisen, dass diese Tools wie erwartet funktionieren. Sie können auch Python, Octave (um nur einige zu nennen) in Betracht ziehen, die zuverlässige Kandidaten sind.
Für die zweite Aufgabe müssen Sie sich vorher überlegen, was Sie wirklich wollen. Wenn Sie robuste produktionsreife Tools benötigen, sind C / C ++, Java und C # die besten Kandidaten. Ich betrachte Python zusammen mit Scala und Freunden als zweiten Bürger in dieser Kategorie. Ich möchte keinen Flammenkrieg beginnen, das ist nur meine Meinung. Aber nach mehr als 17 Jahren als Entwickler ziehe ich einen strengen Vertrag und mein Wissen der Freiheit vor, alles zu tun, was Sie sich vorstellen (wie es bei vielen dynamischen Sprachen der Fall ist).
Persönlich möchte ich so viel wie möglich lernen. Ich entschied, dass ich den harten Weg wählen muss, was bedeutet, alles von Grund auf neu zu implementieren. Ich benutze R als Vorbild und Inspiration. Es hat große Schätze in Bibliotheken und viel Erfahrung gebrannt. Allerdings ist R als Programmiersprache für mich ein Albtraum. Deshalb habe ich mich für Java entschieden und keine zusätzliche Bibliothek verwendet. Das liegt nur an meiner Erfahrung und an nichts anderem.
Wenn Sie Zeit haben, ist das Beste, was Sie tun können, etwas Zeit mit all diesen Dingen zu verbringen. Auf diese Weise verdienen Sie sich die bestmögliche Antwort, die auf Sie zugeschnitten ist. Dijkstra sagte einmal, dass die Werkzeuge die Art und Weise beeinflussen, wie Sie denken. Daher ist es ratsam, Ihre Werkzeuge zu kennen, bevor Sie sie modellieren lassen, wie Sie denken. Mehr darüber können Sie in seiner berühmten Zeitung The Humble Programmer lesen