Вы замечали в своем офисе мальчиков и девочек за черно-розовыми мониторами с дебаггерами, закрывающими половину экрана, браслетиками из USB-кабелей, значками из сдохших процессоров и печатью страдания на затылках, которыми они всегда к вам повернуты? Это — ЭМО-КОДЕРЫ, представители популярной субкультуры. Идентификация
10 внешних признаков эмо-кодера
Косое выравнивание кода.
Очень узкие неоптимизированные места в коде.
Синий экран смерти, желательно с черепами или в черно-розовых тонах.
Субтильность, худоба, мозолистое основание правой ладоин.
Черная от грязи кружка из белого фарфора.
Одежда и аксессуары с дырками и потертостями в виде черепов и сердечек.
Нарочитая вялость движений мышкой.
Подведенные черными синяками розовые от недосыпа глаза.
История трех волн
Слово «эмо-кодер» происходит от междометья «эмо» и прилагательного «кодер». Это отечественная калька с английского «software architector, developer, coder», сокращенно «sad-coder». Эмо прежде всего направление в отладке. Выросло оно из хардкодинга, панк-кодинга еще в середине 80-х годов прошлого века. Для этого стиля характерен достаточно жесткое обращение с отдельными битами в байте и много комментариев к машинному коду о личных переживаниях, эмоциях автора. Перебор обычно «полный», то есть NP-полный, на пределах длительной 100% загрузки процессора.
В развитии эмо-кодеров выделяют три волны.
Волна №1. Была в среде начинающих хакеров. Летом 1985-го года и позднее появился ряд групп с новым ассемблером и нехарактерным для панк-кодинга использованием дебаггера: tasm, Turbo Pascal 1.0, CP/M, Commodore 64, ZX Spectrum, Микроша, BK0010 и некоторые другие. Парадигму программирования этих групп со временем стали называть «классическим структурным программированием». Вскоре после этого группы получили ярлык «эмо-хакер». К 1990-му году стиль окончательно отделился от остальных и получил некоторую популярность. Характерным представителем этого периода можно назвать Дейкстру.
Говорят, что термин «эмо» впервые появился в интервью с Ларри Уоллом. Он основал перл-программерский центр (сокращённо ппц), основой которого является здоровый образ жизни: отказ от ассемблерных вставок, бит-блиттинга, пузырьковой сортировки, беспорядочных глобальных переменных, в отдельных случаях использовался инвариант цикла. От панка были взяты регулярные выражения, замыкания, а также приверженность идеалам хэш-таблиц и дескрипторам ввода-вывода. Это движение стало очень популярно среди поклонников эмокода и вебкода.
К концу 90-х стиль «эмо-кодер» приобрёл достаточную известность, стали появляться его новые подвиды:
«Хаскель» — смесь классического хардкода и эмо;
«C#» (от англ. sharp - пронзительный) — утяжеленный вариант C++ с делегатами и жесткостью в сборке мусора
«J#» (от англ. Java - мотоцикл Ява) — смягченный, более мелодичный вариант C#, с кофейным послевкусием
Волна №2. Ее подняла в 1994-м году группа Sanny Dey Softvare со своим дебильным диском «1000 самых полезных программ для Виндоуз». Этот альбом завоевал популярность у широкой публики, а диски второй волны ("Антология компиляторов Borland", "Microsoft Visual Studio .Net with MSDN, pirate edition", "Освой OLE за 21 день" уже попали на горбушку.
Волна №3. Этот период начался в 2000-м и продолжается до сих пор. Когда эмо-культура стала популярна среди юниор-девелоперов, распространилась на домашние компьютеры и ее стали называть стилем жизни, софтваре-бизнес чутко отреагировал на это. Стали развиваться некоммерческие проекты, например, J или Nemerle. Эти и подобные им языки очень сильно отличаются по звучанию от эмокода. А сама субкультура новых парадигм программирования во многом выродилась просто в моду. Сегодняшние эмокодеры зачастую не имеют ничего общего с ранним движением эмо-кодеров и у них довольно смутное представление о защищенном режиме 386 процессора, или о 21 прерывании DOS.
Стас, тим-лид emocode-группы «One More Code Line», д.Гнилопатово:
В России эмокультуры нет. Ведь это не внешний вид кода, а стиль жизни, состояние души. Главное — проявление твоей внутренней эмоциональности. А стиль взят понемногу от разных книжек по программированию. А про навязший на зубах розовый цвет на черном фоне, который ставится основной темой в текстовом редакторе… Интересно, что на западе московской области, в деревне Гнилопатово, этого нет вообще. Вообще, не понимаю, кто это придумал. Так что к эмо-кодерам эти «эмо-кодеры» никакого отношения не имеют.
Эмо-герл Бу:
Эмо-кодю уже года полтора, в основном на C++, люблю STL, boost, юнит-тесты. Меня раздражают 33-летние дети за черно-розовыми мониторами. Самое смешное, когда такое чудо к тебе подходит и говорит: «Ань, я решила стать эмо-кодером, но кодила только на Visual Basic, поставь мне еще какое-нибудь эмо средство разработки». Я ей поставила J и OCalm. Девочка потом очень разочаровалась.
В чем суть субкультуры нынешних эмокодеров? Прежде всего, нужно понимать, что это подростковое движение. Главная проблема юниор-девелопера — непонимание и жестокость проджект манагера и тим-лида. И тут негласный лозунг эмо «Я так накодил, хрен разберешь!» попадает на благодатную почву. Отсюда же растут ноги у нездоровой любви к теме передачи данных между объектами в глобальных переменных, использования безусловных goto, и прочего.
Из творчества эмо-кодеров:
int myfunction(int i, int p, int *k, char *f, unsigned long *d, BYTE b)
//функция расчитывает правильный результат по двум входным цепочкам чисел и параметрам алгоритма
{
int cc = 17; // =5+12
ASSERT(b>*k); // Если ассерт сработает, порежу себе вены :(
for (int j=i; i
{
if (*d>k || d>f) i=*f?*d:*d+1; else d++; // Если не в конце и все еще, то так вот нестандартно, иначе как обычно
if (*d == 3) ; else goto more; // Потому что иначе может вылетать с ошибкой
goto next; // Как этот мир жесток
more:
*d = 3; k--; p=i+cc; // Блин, как меня все задолбало!
next:
}
return i+*k;
}
Константин Янович, психолог:
Молодежь (подростки 22-37 лет) всегда создавала свой отдельный мир, центрированный на разных атрибутах: члены класса, проперти, методы, готы, путы. Это вполне нормально. Как ни странно, участие в этих сообществах — это шаг во взрослую жизнь. Они позволяют молодому человеку выработать подход, стиль, который он в дальнейшем сможет использовать во взрослом программировании. Это своего рода игра в общество.
За особенности своего внешнего вида и мировоззрения эмокоды подвергаются нападкам и критике не только со стороны старшего поколения, но и от других неформалов. Редакция «ЛГ» собрала основные претензии к эмо-кодерам:
эмо-кодеры постоянно ноют и плачут, бьют кулаком по клаве и шепчут "мастдай глюкавый";
эмо-кодеры девочки не пользуются женской косметикой;
эмо-кодера сложно отличить от эмо-сисадмина
эмо-кодеры настраивают эмо-сисадминам винду
эмо-кодеры склонны к суициду программ в обход деструкторов
эмо-кодеры — хардкодеры и гнусные хакеры
эмо-кодеры не знают развития своей культуры, равно как и основной идеи ООП
эмо-кодеры часто не признаются, что они имели в виду этой строчкой кода.
DooM, 1С-жизнерадостный программер:
Судя по всему, это кучка нытиков, гордящихся своей слабостью и не желающих программировать под 1С. Большинство безвкусно именуют идентификаторы латиницей.
Енот, администратор баз данных:
Я считаю, что эмо-кодеры — нелогичны и вредны. Вот недавно один из них стырил у меня старый глючный SIMM, хотя рядом лежал рабочий DIMM. Поймаю - убью!
Реплика от редакции:
Как мы (с большим трудом) поняли, есть просто любители эмо-кодинга. Есть эмо-кодеры, которые не только эмо-кодят, но и особым образом пьют пиво. И есть еще третьи — которые ноют, как эмо-кодеры, но про эту культуру ничего не знают. И они-то и виноваты во всех ярлыках, которые навешивают на эмо-кодеров. Так это или нет, но в любом случае мы желаем эмо-кодерам лучшего города побольше позитивных, смешных и трудновоспроизводимых багов!