Раньше я любил Юпитер. Я по-прежнему считаю, что они являются прекрасным инструментом для решения многих задач, таких как исследовательский анализ данных и простое и красивое изложение идей коллегам. Однако, хотя в некоторых случаях они отлично подходят для науки о данных, в других случаях они вызывают головную боль. Как и любой программный инструмент, они имеют свои недостатки. Вот пять худших вещей в Jupyter Notebooks для науки о данных:


1. Почти невозможно практиковать хорошее управление версиями кода

Ноутбуки Jupyter ужасны для управления версиями кода. Проблема в том, что они хранятся в виде файлов JSON, которые в основном представляют собой набор вложенных словарей. Это означает, что когда вы пытаетесь сравнить два Jupyter Notebook, вы просто получаете кучу бессмысленных данных. Это делает работу в команде с несколькими ноутбуками чрезвычайно утомительной и сложной.


2. Нелинейный рабочий процесс jupyter — лучшая и худшая часть

Jupyter Notebooks имеют нелинейный рабочий процесс. Это б. Это означает, что вы можете выполнять ячейки не по порядку, что может привести к путанице и ошибкам. Это, конечно, также одно из главных преимуществ Jupyter, но оно полезно только для раннего анализа и исследования данных и поэтому чаще оказывается недостатком, чем нет.


3. Jupyter плохо подходит для выполнения длинных асинхронных задач

Jupyter плохо подходит для выполнения длинных асинхронных задач. Это связано с тем, что Jupyter предназначен для того, чтобы все ячейки в ноутбуке работали на одном ядре. Это означает, что если одна ячейка выполняет длинную асинхронную задачу, она заблокирует выполнение других ячеек.

Это может быть серьезной проблемой, когда вы работаете с данными, обработка которых занимает много времени, или когда вы работаете с данными в реальном времени, которые необходимо регулярно обновлять. В этих случаях гораздо лучше использовать такой инструмент, как Dask, предназначенный для параллельных вычислений.


4. Юпитер может быть медленным

Jupyter может медленно запускаться и медленно выполнять код. Это связано с тем, что Jupyter — интерактивный инструмент, и он должен загрузить в память всю записную книжку, чтобы обеспечить интерактивные функции.
Если вы работаете с большими наборами данных или большими блокнотами, это может стать серьезной проблемой. Jupyter просто не предназначен для работы с большими наборами данных.


5. Нет интеграции с IDE

Это только мое мнение, но отсутствие предупреждений о линтинге и стилях кода является большим недостатком Jupyter. Функции IDE просто слишком удобны — например, возможность перехода между объявлениями функций, стилизация кода и другие функции делают ее менее удобной для разработчиков по сравнению с полноценной IDE.
Теперь это немного ложь, потому что я использовал Jupyter через Pycharm Proffessional, и возможность использовать отладчик pycharm в ячейках часто является лучшим из обоих миров.


Еще кое-что

Часто важно учитывать, где выполняются вычисления. Код, который легко добавить в Docker, легко развернуть в облачном решении. Для ноутбуков также есть хорошие варианты, хотя вы больше привязаны к конкретным решениям.

Если вы хотите изучить блокноты Jupyter, определенно стоит обратить внимание на Amazon SageMaker и/или Kubeflow.

В заключение, Jupyter Notebooks — не идеальный инструмент для проектов по науке о данных. Они идеально подходят для создания прототипов, но для собственного здравомыслия откажитесь от них, прежде чем писать серьезный производственный код.

Звезда нашего Репозиторий Github и присоединяйтесь к обсуждению в нашем дискорд канал чтобы помочь нам сделать BLST еще лучше!
Протестируйте свой API бесплатно прямо сейчас на BLST!