Пять худших вещей о блокнотах Jupyter

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

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

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

2. Нелинейный рабочий процесс в Jupyter — его лучшие и худшие стороны

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

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

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

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

4. Jupyter может быть медленным

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

5. Отсутствие интеграции с IDE

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

Еще один момент

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

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

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

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

Оцените статью
devanswers.ru
Добавить комментарий