Это довольно серьезный вопрос, поэтому он не предназначен для того, чтобы дать полный ответ, но, надеюсь, это может помочь в определении общей практики определения лучшего инструмента для работы, когда дело доходит до науки о данных. Вообще, у меня есть относительно короткий список квалификаций, которые я ищу, когда дело доходит до любого инструмента в этой области. В произвольном порядке они:
- Производительность : в основном сводится к тому, как быстро язык выполняет матричное умножение, поскольку это более или менее самая важная задача в науке о данных.
- Масштабируемость : по крайней мере для меня лично это сводится к простоте построения распределенной системы. Это где-то, где языки, как на
Julia
самом деле сияют.
- Сообщество : с любым языком вы действительно ищете активное сообщество, которое может помочь вам, когда вы застряли, используя какой-либо инструмент, который вы используете. Именно здесь
python
тянется очень далеко впереди большинства других языков.
- Гибкость : нет ничего хуже, чем быть ограниченным языком, который вы используете. Это случается не очень часто, но попытка изобразить графовые структуры
haskell
- это печально известная проблема, и Julia
в результате такого молодого языка возникает много проблем с архитектурой кода.
- Простота использования : если вы хотите использовать что-то в более крупной среде, вы хотите убедиться, что установка проста и может быть автоматизирована. Нет ничего хуже, чем настраивать сборку на полдюжины машин.
Существует множество статей о производительности и масштабируемости, но в целом вы будете смотреть на разницу в производительности, возможно, в 5-10 раз между языками, что может иметь или не иметь значение в зависимости от вашего конкретного приложения. Что касается ускорения на GPU, то cudamat
это действительно простой способ заставить его работать python
, и cuda
библиотека в целом сделала ускорение на GPU гораздо более доступным, чем раньше.
Две основные метрики, которые я использую как для сообщества, так и для гибкости, - это просмотр менеджера пакетов языка и языковые вопросы на сайте, таком как SO. Если есть большое количество качественных вопросов и ответов, это хороший признак активности сообщества. Количество пакетов и общая активность этих пакетов также могут быть хорошим показателем для этого показателя.
Что касается простоты использования, я твердо убежден, что единственный способ узнать это на самом деле настроить его самостоятельно. Существует множество суеверий в отношении множества инструментов Data Science, в частности таких, как базы данных и распределенная вычислительная архитектура, но нет никакого способа узнать, легко или сложно что-то настраивать и развертывать, не создавая его самостоятельно.