Це досить масове питання, тому це не має бути повною відповіддю, але, сподіваємось, це може допомогти інформувати загальну практику щодо визначення найкращого інструменту для роботи, коли справа стосується науки про дані. Як правило, у мене порівняно короткий список кваліфікацій, які я шукаю, коли мова йде про будь-який інструмент у цьому просторі. Вони не мають особливого порядку:
- Продуктивність : В основному зводиться до того, наскільки швидко мова виконує множення матриць, оскільки це більш-менш важливе завдання в науці даних.
- Масштабованість : Принаймні для мене особисто це зводиться до простоти побудови розподіленої системи. Це десь там, де
Julia
справді світять мови.
- Спільнота . На будь-якій мові ви дійсно шукаєте активну спільноту, яка може допомогти вам, коли ви застряжете, використовуючи той інструмент, який ви використовуєте. Ось тут
python
дуже далеко випереджає більшість інших мов.
- Гнучкість : Нічого гіршого, ніж обмеження мовою, якою ви користуєтесь. Це трапляється не дуже часто, але намагатися зобразити графічні структури
haskell
- це горезвісний біль, і Julia
він заповнений великою кількістю болів архітектури коду в результаті такої молодої мови.
- Простота використання : Якщо ви хочете використовувати щось у більшому середовищі, ви хочете переконатися, що налаштування є простим і його можна автоматизувати. Нічого не гіршого, ніж створити принадію для будівництва на півдесятка машин.
Є багато статей про продуктивність та масштабованість, але в цілому ви будете дивитись на різницю продуктивності, можливо, 5-10 разів між мовами, що може бути, а може і не мати значення в залежності від вашої конкретної програми. Що стосується прискорення GPU, cudamat
це дійсно безпроблемний спосіб налагодити його роботу python
, і cuda
загалом бібліотека зробила прискорення GPU набагато доступнішим, ніж раніше.
Дві основні показники, які я використовую як для спільноти, так і для гнучкості, - це перегляд мовного менеджера пакунків та мовних питань на такому сайті, як SO. Якщо є велика кількість якісних питань та відповідей, це хороший знак того, що громада активна. Кількість пакетів та загальна активність у цих пакунках також можуть бути хорошим проксі для цього показника.
Що стосується простоти використання, я твердо вірю, що єдиний спосіб насправді знати - це власне налаштувати його. Існує багато забобонів навколо безлічі інструментів Data Science, зокрема таких речей, як бази даних та розподілена обчислювальна архітектура, але немає можливості реально дізнатися, чи можна щось легко чи важко налаштувати та розгорнути, не будуючи його самостійно.