To dość masywne pytanie, więc nie jest to pełna odpowiedź, ale miejmy nadzieję, że może to pomóc w poinformowaniu ogólnej praktyki związanej z określeniem najlepszego narzędzia do pracy, jeśli chodzi o analizę danych. Ogólnie mam stosunkowo krótką listę kwalifikacji, których szukam, jeśli chodzi o dowolne narzędzie w tej przestrzeni. W żadnej określonej kolejności nie są:
- Wydajność : Zasadniczo sprowadza się do tego, jak szybko język pomnaża macierz, ponieważ jest to mniej lub bardziej najważniejsze zadanie w informatyce.
- Skalowalność : Przynajmniej dla mnie sprowadza się to do łatwości budowy systemu rozproszonego. To jest miejsce, w którym języki
Julia
naprawdę błyszczą.
- Społeczność : W dowolnym języku naprawdę szukasz aktywnej społeczności, która może Ci pomóc, gdy utkniesz przy użyciu dowolnego narzędzia, którego używasz. To jest miejsce, które
python
wyprzedza większość innych języków.
- Elastyczność : nie ma nic gorszego niż ograniczenie języka, którego używasz. Nie zdarza się to często, ale próba reprezentowania struktur graficznych
haskell
jest znanym bólem i Julia
jest wypełniona wieloma problemami związanymi z architekturą kodu w wyniku bycia tak młodym językiem.
- Łatwość użycia : jeśli chcesz użyć czegoś w większym środowisku, upewnij się, że konfiguracja jest prosta i może zostać zautomatyzowana. Nie ma nic gorszego niż konieczność skonfigurowania drobnej wersji na pół tuzinie maszyn.
Istnieje mnóstwo artykułów na temat wydajności i skalowalności, ale ogólnie będziesz patrzył na różnicę wydajności wynoszącą może 5-10x między językami, co może, ale nie musi mieć znaczenia, w zależności od konkretnej aplikacji. Jeśli chodzi o przyspieszenie GPU, cudamat
jest to naprawdę bezproblemowy sposób na rozpoczęcie pracy python
, a cuda
biblioteka ogólnie sprawiła, że przyspieszenie GPU jest znacznie bardziej dostępne niż kiedyś.
Dwie podstawowe miary, których używam zarówno dla społeczności, jak i elastyczności, to spojrzenie na menedżera pakietów języka i pytania językowe w witrynie takiej jak SO. Jeśli istnieje wiele pytań i odpowiedzi wysokiej jakości, to dobry znak, że społeczność jest aktywna. Liczba pakietów i ogólna aktywność na tych pakietach mogą być również dobrym proxy dla tej metryki.
Jeśli chodzi o łatwość użytkowania, jestem głęboko przekonany, że jedynym sposobem, aby wiedzieć, jest faktyczne skonfigurowanie go samemu. Istnieje wiele przesądów w związku z wieloma narzędziami Data Science, w szczególności takimi jak bazy danych i architektura rozproszonego przetwarzania danych, ale nie ma sposobu, aby naprawdę wiedzieć, czy coś jest łatwe lub trudne do skonfigurowania i wdrożenia bez budowania go samodzielnie.