Python Wheels vs Eggs (и как решения, основанные на данных, должны стать нормой в среде с открытым исходным кодом)
9 мая 2022 г.Мир разработки программного обеспечения постоянно развивается, и время от времени вы попадаете в момент, когда путь разветвляется перед вами. Как у разработчиков, у нас есть выбор, какой путь выбрать, но каждый из них имеет определенные последствия, влияющие на эффективность и влияние кода в будущем.
В настоящее время мы переживаем один из таких моментов, когда речь идет о яйцах Python. Недавний твит от Дастина Ингрэма показал, что в декабре 2021 года на яйца приходилось менее 1% встроенных загрузок дистрибутива.
Эти данные вызвали оживленные дебаты о том, следует ли отказаться от яиц Python. В этом разговоре мы можем многому научиться в сообществе открытого исходного кода, и поэтому мы решили изучить уроки в этом посте.
Колеса Python против яиц
Формат .egg для пакетов Python был впервые представлен в 2004 году и с тех пор большую часть времени служил важной цели. Однако, когда в 2012 году был представлен Python Wheels, стали более известны слабые стороны формата egg, такие как отсутствие поддержки чистого удаления или обновления, а также тот факт, что только одна версия проекта может быть установлена в любой отдельный каталог. .
Python Wheels предоставил существенные улучшения для них, а также дополнительные улучшения с точки зрения формата распространения, более богатого соглашения об именах файлов, управления версиями и лучшей внутренней организации.
В свете этого многие спорят о том, является ли отказ от загрузки новых яиц правильным путем.
Как разработчики должны принять это решение?
Важность решений, основанных на данных
Как разработчик, мы ограничены во времени и ресурсах для достижения наших целей. Наша эффективность во многом зависит от расстановки приоритетов — выбора, на что тратить время и, что более важно, на что его не тратить. Итак, когда нам нужно подумать, является ли отказ от яиц правильным решением, мы хотим сделать это с правильными данными, подтверждающими это решение.
В результате многие указали на эту статистику загрузки как на явный признак того, что яйца Python больше не являются той силой, которой они были когда-то. Действительно, эти данные позволяют гораздо более информированно обсудить решение, чем если бы оно отсутствовало.
Однако это не говорит всей истории. Даже если доля загрузок несущественна, у нас все еще нет ясности в отношении того, как яйца используются и на них полагаются. Эти данные о загрузке могут где-то существовать, но обычно они недоступны, чтобы мы могли провести надлежащий анализ.
Это свидетельствует о широком спектре других ключевых решений, которые в настоящее время принимаются на основе случайного опыта, интуиции и личных предпочтений. Без легкодоступных данных мы ограничиваем нашу способность принимать обоснованные и непредвзятые решения.
Как сообщество, мы должны стремиться к лучшей видимости, чтобы мы могли лучше обслуживать пользователей и разблокировать рычаги, которые мы создали с течением времени.
Представляем Scarf Gateway для Python
Эти данные имеют решающее значение для наших долгосрочных решений как разработчиков, потому что они помогают нам понять, какие аспекты нашего кода действительно приводят к результатам для наших пользователей. Имея это в виду, мы рады запустить поддержку Python для Scarf Gateway, что обеспечит лучшую видимость для всех и всех. Пакеты Python.
Это важный шаг к защите данных, которые нужны нам как сообществу открытого исходного кода для принятия более эффективных решений по всем ключевым вопросам; от инфраструктуры до форматов упаковки, оценки уязвимостей и так далее.
Для каждой точки принятия решения, к которой вы приходите как разработчик, наличие своевременных и точных данных о том, как используются ваши проекты, помогает вам обойти собственные предубеждения и двигаться по пути, который оказывает наибольшее влияние на ваших ключевых заинтересованных лиц.
Принятие решений на основе данных — это то, как мир открытого исходного кода может работать умнее, а не усерднее.
Оригинал