Найти в Дзене
Николай И.

Почему выпускники DS курсов создают лабораторки

С одной стороны, их учили создавать именно лабораторки а не реально работающие и надёжные продукты. С другой стороны, несчастных выпускников учили создавать лабораторки именно на питоне.

А, как известно, питон работает весьма и весьма нешустро. Это все знают.

Но насколько нешустро работает питон?

Давайте это проверим. Возьмём алгоритм поиска простого числа с заданным номером и сравним его на питоне и, например на scala

скала - слева, питон справа. видно, что алгоритм на питоне более запутанный да и, к тому же, итерационный, напоминает прошлый век
скала - слева, питон справа. видно, что алгоритм на питоне более запутанный да и, к тому же, итерационный, напоминает прошлый век

Получаем разницу в 7 раз.

Многие могут возразить - ну и что, подумаешь, на 2 с половиной минуты дольше. Но это простая задача. А на реальных данных - это будет, например, 3 часа или 21 час. То есть, речь идёт уже о том, решена ли задача или не решена.

И чаще всего, на питоне, она остаётся нерешённой на практике, с множественными ссылками на теоретически работающие скрипты.

Некоторые могут тут сказать - фу, scala же работает на JVM. JVM же торомозит, надо было писать на C, и внутренности питона на нём и написаны.

Но тут надо вспомнить, что когда JVM тормозила, её и не использовали повсеместно. Её стали применять для обработки больших данных именно тогда, когда появился JIT компилятор и тормозить она перестала. Сейчас же можно с уверенностью утверждать только одно - "Java не тормозит!". Если у вас что-то тормозит, то это не Java, это либо реальная алгоритмическая сложность задачи, либо так оно написано. Не более того.

При решении реальных практических задач алгоритмы на питоне имеет смысл рассматривать исключительно как прототип, и всегда их стараться переписать на более быстро работающие языки. Это всегда даёт эффект, даже, казалось бы в безнадёжных ситуациях. Автору, к примеру, удалось переписать алгоритмы NER Natasha на scala и заставить их работать на больших объёмах данных в кластере без установки какого-либо стороннего ПО.

На самом деле - в современном DS в питоновских либах нет ничего сложного, используются крайне простые алгоритмы, поэтому, переписать их на Scala всегда быстрее, чем разбираться в том, почему торомзит на питоне.

Поэтому, чтобы лабораторки стали промышленными решениями, надо изучать языки более производительные, чем питон.

Это положительно скажется и на экологии планеты - алгоритм на скала требует для расчётов в 7 раз меньше времени, а, значит, в 7 раз меньше энергии, а, значит и в 7 раз будут меньше выбросы CO2. На этот факт имеет смысл обратить внимание Еврокомиссии по углеродному налогу.