Зачем разработчики ПО прячут пасхалки в коде

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

О пасхалках в играх написаны тысячи статей и сняты тысячи видео. Но почему-то человечество упорно игнорирует пасхалки в других видах софта. А ведь они так же стары, как и само программное обеспечение. Это недокументированные функции или сообщения, которые разработчики скрывают в коде или оборудовании. Их можно найти буквально везде: от доисторических операционных систем до современных браузеров. В этой статье мне хотелось бы отдать дань уважения пасхалкам в ПО.

На форуме «Council on Foreign Relations» глава компании Anthropic Дарио Амодей заявил, что с развитием технологий уже через 12 месяцев весь код будет писать ИИ. Конечно, вряд ли нейросети будут писать вот прямо весь код, но меня эти слова заставили задуматься: а кто же будет добавлять пасхалки в софт? Это всегда делали люди. Их мотивы были разными, но одно можно сказать наверняка: ИИ этим заниматься не станет. Документально подтверждено, что одна из самых первых пасхалок в Atari была создана, чтобы запечатлеть имя разработчика в коде. Так поступил бы только человек, робот так не стал бы делать.

Используйте навигацию, если не хотите читать текст целиком:
→ Суть пасхалок
→ Первые пасхалки
→ Пасхалки Microsoft
→ Пасхалки от Google
→ Легендарные пасхалки
→ Заключение

Суть пасхалок



Источник.

В ПО пасхалка — это небольшая скрытая часть программы, которая обычно скрыта от глаз пользователей. И вот тут давайте сразу договоримся. Чтобы считаться пасхалкой, а не ошибкой или сбоем, функция должна соответствовать трем критериям:

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

В сообществе давно идут споры о том, что пасхалки в коде нужно удалять, так как в них нет практической пользы. Например, начиная с июля 2013 года, среда выполнения языка программирования Rust систематически включала цитату Лавкрафта с призывом Ктулху в свою основную библиотеку:

extern crate lovecraft;

fn main() {
    lovecraft::invoke();

    panic!("Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn");
}

После некоторых страстных дискуссий поклонники производительности удалили цитату из проекта. Это произошло в январе 2015 года.



Первые пасхалки


Первые известные скрытые сообщения в коде были спрятаны в больших мэйнфреймах в конце 1960-х годов. К слову, в играх пасхалки появились только в 1970-х. Однако идея назвать эти секреты пасхалками восходит к 1979 году и игре Adventure для консоли Atari 2600.

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

Многие сотрудники, включая создателя Adventure Уоррена Робинетта, были категорически не согласны с этим решением руководства. В том числе потому, что они хотели признания. Он запрограммировал в игру секрет: если игрок выполнял определенные действия, он находил скрытую комнату, где отображалась фраза «Создано Уорреном Робинеттом».

После того, как Робинетт передал финальную версию программы, Atari изготовила и распространила несколько сотен тысяч картриджей. К тому времени, как была обнаружена секретная комната с подписью, Робинетт уже покинул Atari.

Первооткрывателем пасхалки стал 15-летний подросток из Солт-Лейк-Сити. Он написал письмо в Atari о том, что нашел секретную комнату. К удивлению Робинетта вместо негатива Стив Райт, директор по разработке ПО в Atari, назвал скрытый сюрприз «пасхальным яйцом». Более того, он заявил, что скрытая комната добавляет ценности игре, и решил сделать политикой компании включение скрытых функций в будущие игры.


Секретная комната и сообщение в Adventure. Источник.

Довольно быстро появились доказательства и более ранних примеров пасхалок. Например, в играх Video Whiz Ball и Alien Invasion, выпущенных для консоли Fairchild Channel F 1976 года, определенные комбинации нажатий клавиш раскрывали имена программистов.

Джинн был выпущен из бутылки. Все больше и больше пасхалок стало появляться не только в играх, но и в обычном ПО. Например, в ранних продуктах Microsoft скрытые имена и камео-появления — обычное дело. Microsoft Bear был талисманом команды разрабов Windows 3.1 и появился в двух пасхалках в ОС Windows 3.1.


Источник.

Пасхалки Microsoft


Фича пасхалок в том, что пользователь может наткнуться на них только двумя способами. Либо случайно нажав уникальную комбинацию клавиш, либо будучи посвященным в секрет и следуя запутанным инструкциям. Так что если никто не будет искать, пасхалка может оставаться незамеченной очень долго. Так произошло со списком имен разработчиков Windows 1, который оставался скрытым в течение 37 лет. Его нашли в 2022 году, когда Лукас Брукс начал охоту на пасхалки в ранних версиях Windows.


Пасхалка в Windows 1 обнаружено в 2022 году. Источник.

В старых версиях MS-DOS (до DOS 6.2), если вы нажимали F1, функциональную клавишу Help, находясь во вкладке About, вас встречало диалоговое окно с надписью «No Help Available (so leave me alone)». Это была не особо смешная пасхалка, и из более поздних версий ее удалили.

А вы знали, что каждая версия Excel от 5.0 до 9.0 содержала мини-игру? Первой была The Hall of Tortured Souls, описанная как «мини-игра в стиле Doom».

В Office 97 были игры во всех трех его основных компонентах. Excel содержал скрытый симулятор полета, Access имел симуляцию гадальной игрушки Magic 8-Ball, а Word содержал игру в пинбол.


Excel 97 в обычном использовании (слева) и скрытый симулятор полета (справа). Источник.


Источник.

Одна долгоживущая пасхалка была во всех версиях Windows вплоть до XP. В заставке 3D-текста ввод текста «volcano» отображал названия всех вулканов в Соединенных Штатах.

Официально Microsoft прекратила включать пасхалки в свои программы в рамках инициативы Trustworthy Computing Initiative в 2002 году. Она была направлена ​​на решение проблем безопасности и надежности предыдущей версии Microsoft Windows, но имела обратный эффект, поскольку усилила подозрения клиентов относительно качества ПО. Позднее пасхалки были вновь введены в игру Asteroids в приложении «Уведомления» Office 2004 для Mac, а в Outlook 2010 изображением по умолчанию для новых контактов стал силуэт Билла Гейтса.

Несмотря на политику Microsoft по удалению пасхалок из соображений безопасности, в Windows XP они все еще есть. Например, если в Блокноте ввести «bush hid the facts» и сохранить документ под любым именем, при повторном открытии вы обнаружите, что текст заменен строкой нулей.

Пасхалки от Google


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

Этот технологический гигант вставил множество скрытых функций или сообщений во все свои продукты. И есть вероятность, что они продолжат делать это до тех пор, пока существует интернет. Известно, что Google настраивает свою целевую страницу для особых событий с помощью так называемых дудлов. Менее известно, что страница результатов ведет себя крайне необычно для некоторых запросов. Поиск Google содержит множество юмористических пасхалок. Попробуйте, например, ввести запрос «анаграмма»:


Или «do a barrel roll», это весьма забавно, как по мне. Гифку вставлять не буду, пробуйте сами
Источник: https://habr.com/ru/companies/selectel/articles/892214/


Интересные статьи

Интересные статьи

Приветствую всех неравнодушных! Я являюсь руководителем разработки в компании DD Planet, и сегодня, наконец-то, дошли руки написать продолжение статьи
Результаты теста Гилева — одна из основных метрик производительности платформы «1С: Предприятие». На результаты теста обращают внимание как поставщики облачных услуг, так и клиенты, которым нужно ...
Три бывших разработчика (Nathan Sobo, Antonio Scandurra и Max Brunsfeld) редактора Atom и Nate Butler из Facebook вчера представили свой новый редактор Zed над которым они работали последние несколько...
Недавно на проекте интегрировал модуль CRM Битрикса c виртуальной АТС Ростелеком. Делал по стандартной инструкции, где пошагово показано, какие поля заполнять. Оказалось, следование ей не гаран...
Как обновить ядро 1С-Битрикс без единой секунды простоя и с гарантией работоспособности платформы? Если вы не можете закрыть сайт на техобслуживание, и не хотите экстренно разворачивать сайт из бэкапа...