Dies ist eine ziemlich umfangreiche Frage, daher ist dies keine vollständige Antwort, aber hoffentlich kann dies dazu beitragen, die allgemeine Praxis über die Ermittlung des besten Tools für den Job in Bezug auf Datenwissenschaft zu informieren. Im Allgemeinen habe ich eine relativ kurze Liste von Qualifikationen, nach denen ich suche, wenn es um ein Werkzeug in diesem Bereich geht. In keiner bestimmten Reihenfolge sind sie:
- Leistung : Grundsätzlich läuft es darauf hinaus, wie schnell die Sprache die Matrixmultiplikation durchführt, da dies mehr oder weniger die wichtigste Aufgabe in der Datenwissenschaft ist.
- Skalierbarkeit : Zumindest für mich persönlich kommt es darauf an, ein verteiltes System einfach aufzubauen. Dies ist irgendwo, wo Sprachen wie
Julia
wirklich glänzen.
- Community : Mit jeder Sprache suchen Sie wirklich nach einer aktiven Community, die Ihnen helfen kann, wenn Sie mit dem von Ihnen verwendeten Tool nicht weiterkommen. Hier liegt es
python
weit vor den meisten anderen Sprachen.
- Flexibilität : Nichts ist schlimmer, als durch die von Ihnen verwendete Sprache eingeschränkt zu sein. Es kommt nicht sehr oft vor, aber der Versuch, Graphstrukturen in darzustellen,
haskell
ist ein berüchtigter Schmerz und Julia
ist mit vielen Schmerzen in der Codearchitektur behaftet, weil man eine so junge Sprache ist.
- Benutzerfreundlichkeit : Wenn Sie etwas in einer größeren Umgebung verwenden möchten, möchten Sie sicherstellen, dass die Einrichtung unkompliziert ist und automatisiert werden kann. Nichts ist schlimmer, als auf einem halben Dutzend Maschinen einen finnicky Build aufbauen zu müssen.
Es gibt eine Menge Artikel über Leistung und Skalierbarkeit, aber im Allgemeinen werden Sie einen Leistungsunterschied von vielleicht 5-10x zwischen den Sprachen betrachten, der je nach Ihrer spezifischen Anwendung von Bedeutung sein kann oder nicht. Was die GPU-Beschleunigung angeht, cudamat
ist dies eine wirklich nahtlose Methode, um sie zum Laufen zu bringen python
, und die cuda
Bibliothek hat die GPU-Beschleunigung im Allgemeinen weitaus zugänglicher gemacht als früher.
Die beiden wichtigsten Metriken, die ich sowohl für die Community als auch für die Flexibilität verwende, sind der Paketmanager der Sprache und die Sprachfragen auf einer Site wie SO. Wenn es eine große Anzahl hochwertiger Fragen und Antworten gibt, ist dies ein gutes Zeichen dafür, dass die Community aktiv ist. Die Anzahl der Pakete und die allgemeine Aktivität für diese Pakete können ebenfalls ein guter Proxy für diese Metrik sein.
In Bezug auf die Benutzerfreundlichkeit bin ich fest davon überzeugt, dass der einzige Weg, dies tatsächlich zu wissen, darin besteht, es selbst einzurichten. Es gibt viel Aberglauben um viele Data Science-Tools, insbesondere um Datenbanken und verteilte Computerarchitektur, aber es gibt keine Möglichkeit, wirklich zu wissen, ob etwas einfach oder schwer einzurichten und bereitzustellen ist, ohne es einfach selbst zu erstellen.