Изменить:. Поскольку этот вопрос был задан, в стандартных научных библиотеках Python (которые были целевой областью) произошло значительное улучшение. Например, проект numpy сделал большие усилия для улучшения докстерий. Можно все же утверждать, можно ли с самого начала справляться с этими проблемами с самого начала.
У меня есть этот несколько еретический вопрос: почему так много библиотек Python имеют грязный код и не следуют стандартным лучшим практикам? Или вы считаете, что это наблюдение абсолютно неверно? Как ситуация сравнивается с другими языками? Я заинтересован в вашем принятии этого.
Некоторые причины, по которым у меня создается впечатление, что качество отсутствует:
-
Докстоны часто полностью отсутствуют или неполны, даже для публичного API. Это болезненно, когда метод принимает
*args
и**kwargs
, но не документирует, какие значения могут быть заданы. -
Методы кодирования Bad Python, такие как добавление новых атрибутов вне
__init__
. Такие вещи делают код трудным для чтения (или для поддержания). -
Вряд ли любые библиотеки следуют правилам кодирования PEP8. Иногда соглашения даже не согласованы в одном файле.
-
Общий дизайн грязный, без четкого API. Кажется, что почти не выполняется рефакторинг.
-
Плохое покрытие.
Не поймите меня неправильно, я абсолютно люблю Python и его экосистему. И хотя я боролся с этими библиотеками, они, как правило, выполняют свою работу, и я благодарен за это. Но я также думаю, что в конечном итоге из-за этих проблем теряются тонны времени разработки. Возможно, это потому, что Python дает вам столько свободы, что очень легко писать плохой код.