С развитием профессии программиста развивается и жаргон, используемый разработчиками в повседневной жизни. Программирование именуют написанием кода, хакерством, разработкой, программным инжинирингом. Дают ему и другие названия. А споры о том, является ли разработка ПО процессом созидательным или механическим, чисто техническим, имеют долгую историю. Как бы то ни было, очевидно, что среди легионов профессиональных программистов попадаются и интеллектуально развитые, творческие люди нашего общества. Этот творческий потенциал не растрачивается на создание модных мобильных программ, корпоративных приложений, имеющих целью зарабатывание денег, или ПО для сложных вычислений и даже на изобретение броских названий для разработок, значение которых становится понятно лишь после долгих размышлений и изысканий. Зачастую творческий потенциал современного программиста проявляется в его жаргоне. Некоторые термины из языка программистов перешли в общеязыковую лексику, например такие, как “спагетти-код” (spaghetti code), “пасхальные яйца” (Easter eggs), “баги” (bugs), “волшебники”, или “помощники” (wizards), “виджеты” (widgets) и некоторые другие.
Однако сегодня, в 2010-м, в сленге программистов появилось много новых слов. Благодаря посетителям сайта Stack Overflow, предложившего разработчикам поделиться своей терминологией, и записям Джоя Девиллы в блоге Global Nerdly (он был столь добр, что помог его оформить и популяризировать) у нас появилось множество новых терминов, скажем, “unicorny” — прилагательное, характеризующее некую функцию, которую планируется реализовать в столь отдаленном будущем, что сейчас ее можно считать вымышленной, или “bugfoot” — баг, с которым столкнулся только один человек и который невозможно воспроизвести. Это нечто сходное с “багом лох-несского чудовища”.
Между прочим, новые термины были порождены и отчетами об ошибках. Появился такой, как “отчет наркомана” (Drug Report), намекающий на то, что отчет составлен столь невнятно, словно его автор находился под действием наркотика. Есть и более мягкий термин — “отчет попыхтевшего” (Chug Report), означающий, что составитель справился со своей задачей с огромным трудом. А еще встречается “отчет самодовольного” (Smug Report), в котором пользователь описывает выявленную им ошибку в полной уверенности, что он отлично знаком с системой, хотя это не соответствует действительности. Такой отчет перегружен не относящимися к делу деталями, содержит предположения (как правило, неверные) о причинах проблемы и рекомендации (тоже неправильные) по их устранению. Наконец, существует “отчет недоумевающего” (Shrug Report) — он содержит лишь расплывчатое описание проблемы и не даёт никаких конкретных сведений ни об ошибке, ни о способе ее воспроизведения. Утверждается в нём только одно: “Не работает”.
Сходным образом рождаются и другие любопытные программистские термины. Например, “привычная функция” (Common Law Feature) — ошибка в приложении, известная уже так давно, что стала элементом ожидаемой функциональности, и от службы технической поддержки требуется лишь зафиксировать ее. Или ошибка “сумасбродная подружка” (Mad Girlfriend Bug), которая появляется, когда разработчик наблюдает нечто странное, но при попытке разобраться в происходящем оказывается, что всё вроде бы и в порядке.
Еще один термин указывает, в каких условиях работают многие программисты. “Код-жижа” (Code Slush) — в отличие от “замороженного кода” (Code Freeze) — означает состояние программы на дату, после которой в нее нельзя вносить изменения за исключением, разумеется, тех, о которых в последнюю минуту попросит руководство. Это похоже на “замороженный код”, но с тем отличием, что некоторые изменения все-таки допускаются.
Между прочим, я уверен, что моему другу Роду Джонсону и всем сотрудникам подразделения SpringSource корпорации VMware понравится выражение “код, появившийся вследствие тяжкой зависимости” (Lethal Dependency Injection). Это когда программист слишком часто использует Spring XML, чтобы связать между собой множество классов.
Конечно же вы не захотите, чтобы вас именовали “источником помех” (Impediphile) — человеком, пишущим программы так, что это мешает чужой работе.
А может быть, вы “ботаник”? Какие специфичные программистские термины используются у вас?