Создатель curl объяснил, почему в программе нет и не будет пасхалок

image-loader.svg

Создатель curl Дэниел Стенберг (Daniel Stenberg) рассказал в своем блоге, почему в его программе нет и не будет пасхалок — забавных и недокументированных функций в ПО, добавленных в шутку или в качестве бонуса, но которые там спрятаны и их нужно найти, как сокровище.
Сurl используют миллионы пользователей Linux и Windows каждый день, а с момента ее создания ее скачали более 10 млрд раз,

Стенберг считает, что, во-первых, это вопрос доверия. В его программе с открытым исходным кодом все задокументировано, нет ничего секретного или скрытого. Если бы он смог спрятать одну пасхалку, то мог и скрыть что-то еще, что никто бы не нашел. По его мнению так ответственные и профессиональные разработчики не поступают.

Во-вторых, автор curl пояснил, что уровень безопасности популярных приложений все время проверяется разными исследователями. Из-за этого скрыть пасхалку, которая должна быть нейтральным элементом в коде для всех платформ без неожиданного поведения в них, долгое время будет нельзя — о ней скоро узнают сразу многие пользователи.

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

В-четвертых, даже одна недокументированная опция в программе это плохо. Спрятать код функции один раз можно просто для фана, но потом может появится желание сделать это еще и еще, тем более, что документировать это не нужно теперь. Тут разработчик может перейти черту и потерять доверие сообщества.

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

В-шестых, фактически авторы проекта часто сталкиваются с «непредвиденными пасхальными яйцами» — это ошибки в коде или неправильно работающие функции из-за разных случайностей при их вызове или использовании. Они могут быть пасхалками, но это не так — они не созданы специально, так как это просто ошибки, которые разработчики стараются исправлять по мере возможностей.

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

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

Пасхалки есть во многих разработках. Например, в uTorrent есть секретный тетрис (выбрать «Справка», «О программе», нажать «T» на английской раскладке клавиатуры. Для выхода из игры нужно нажать «T») или в WinRAR в окне «О программе» можно кликнуть по иконке со стопкой книг — она начнет падать и подрыгивать, а если кликнуть по надписи WinRAR, то море покроется рябью, а при повторных кликах на горизонте появится одинокий парус.

Другие доступные пасхалки: в Mozilla Firefox можно ввести в адресную строку about: robots и появится послание от роботов, в apt-get есть коровка через вызов apt-get moo, в aptitude это тоже работает, но нужно приложение уговорить вызвать пасхальное яйцо.

© Habrahabr.ru