Быдлокодер
Материал из Lurkmore
Осторожно, взаимоисключающие параграфы! В результате злостно постмодернистских литературных опытов, войны правок, заветов П-тра П-тровича Кащенко, любви к тоталитаризму, набегу священных военов или просто по причине долбоебизма, одна часть этой статьи явно противоречит другой. Считайте |
Внимание! Статья-детектор! Одним из побочных эффектов от прочтения этой статьи является так называемый butthurt. Если вы начнёте ощущать боль в нижней части спины, следует немедленно прекратить дальнейшее чтение и смириться с фактом, что вы — Быдлокодер. |
« |
Пишите код, исходя из того, что все программисты, которые будут сопровождать вашу программу, — склонные к насилию психопаты, знающие, где вы живёте. | » |
— Джон Ф. Вудс[1] |
« |
Каждый дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям. | » |
— Мартин Фаулер |
« |
Нет ничего плохого в том, что вы берете и устанавливаете Drupal, добавив к нему всего несколько деталей, а не пишете свою CMS с нуля. Просто не называйте себя после этого программистом, пожалуйста. | » |
— Джереми Морган |
Быдлокодер (aka погромист, горе-программист, индус; англ. Code Monkey) — это человек, который считает рекурсию мемом башорга и не знает основных алгоритмов и тонкостей языка, на котором пишет. Поэтому быдлокодер использует неочевидные и абсурдные решения.
Содержание |
Характерные черты
« |
Если бы строители строили дома так же, как программисты пишут программы, первый залетевший дятел разрушил бы всю цивилизацию. | » |
— Gerald M. Weinberg |
Понятие быдлокодера тесно связано с понятием индусского кода, которое также является одним из мемов Рунета. Также быдлокодерами являются программисты, привыкшие программировать мышкой [1], результатом чего является отсутствие языковой грамотности, понимания собственного кода и культуры программирования ИЧСХ, орфографических правил, любящие писать абсолютно нечитаемый код, игнорируя все мыслимые и немыслимые правила здравого смысла, логической и типовой совместимости данных и структур данных, и класть член на достижения человечества в области объектно-ориентированного программирования, а также форматирования кода и строгой типизации. Программы таких быдлокодеров никогда не бывают кроссплатформенными и редко бывают стабильными, а любимыми высокоуровневыми языками являются те, которые и позволяют писать нечитаемый код. Их девиз: «Пишу как хочу, преобразовываю во что хочу, вызываю как мне нравится, имею право на запуск ошибочного кода и только тот язык мне друг, чья парадигма это позволяет». Это породило в начале 70-х феномен жопоязыка, код на котором, даже написанный прыганием жопой по клавиатуре, компилируется и запускается. И этот феномен к несчастью становится стандартом де-факто в сегодняшнем программировании из-за превалирования быдлокодеров, у которых на хоть что-то математическое (читайте структурированное, строгое, однозначное, чёткое, наглядное, лаконичное и логичное) начинается приступ тошноты. И это неудивительно. У класса быдла, наследником которого является класс быдлокодеров, всё, что построено по чётким правилам, что предъявляет строгие требования к чему-либо, что сковывает свободу во имя порядка и правильного функционирования чего-либо, что учит хорошим манерам (стилю), является неприемлемым, недопустимым и уродливым, и только их хаос и анархия есть гармония. Стоит обратить внимание, что (чуть меньше, чем все) быдлокодеры избегают использования форматирования кода (что, к примеру, вынудило компанию Microsoft разработать средства принудительного форматирования Visual Basic-кода).
Ещё одна пагубная привычка быдлокодеров — давать функциям, переменным и тому подобным вещам русские имена на транслите (или кодировать кириллицей непосредственно, часто выражается в комментариях к коду вроде ПЫЩ!! ПЫЩ!!!111Адин11адин11Адин1).
Поведение быдлокодера
Если взять гипотетического коня в вакууме вполне себе реального недоученного студента XDiablo, у которого "опыт и знания" ограничивается скачанной пиратской Delphi, книгами Архангельского и прочитанными статьями сомнительного содержания и авторства, да помноженное это все на условия изоляции от более-менее приличных коллективов разработчиков и проектов, то проблема подсознательного доминирования неправильности инструмента вполне себе может иметь место в его робких начинаниях интенсивного самообучения методом битья палкой от граблей по голове. Это как, ну я не знаю, обезьяна с гранатой папуас с Delphi микроскопом перед привычной ему задачей добывания пропитания. Что сделает папуас? Применит микроскоп для раскалывания скорлупы орехов. А потом, имея в одной руке микроскоп, а в другой - руководство другого папуаса о MVC том, что линзы можно использовать для добывания огня - заведет топик, о том, что какой-же это неправильный и дорогой инструмент, микроскоп, что и орехи плохо колет, и огонь добывать из него совсем неудобно. А потом подпряжется третий папуас, который заведет нытье, что он дескать в своем племени вообще запретил микроскопом добывать огонь и колоть орехи, и вручил всем C++ бутылки из-под огненной воды, которыми можно и орехи колоть, и огонь добывать. И тут появится некий четвертый, который всем нам расскажет, что виденное им племя белого человека добывает огонь из бесплатной зажигалки... Короче. Одно только не понятно. Эй, папуасы студенты, а кто вам вообще разрешил свое мнение высказывать?
Ещё пример быдлокодера, который считает, что требование соблюдать синтаксис языка это следствие деревянности языка(не то что в его уютном PHP).
IRL
- Готов часами обсуждать недостатки операционных систем, не имея ни малейшего представления об их внутреннем устройстве и причине возникновения вышеуказанных недостатков;
- Всегда стремится установить все доступные в этих ваших Интернетах программы, связанные и не связанные с его работой, а затем с возмущением совершает действия, описанные в пункте 1;
- Никогда не соблюдает правил структурного и объектного программирования из-за недостатка времени, возникающего по причине выполнения действий, описанных в пункте 2;
- Вследствие выполнения действий, описанных в пункте 3, постоянно вступает в стычки с руководством и коллегами[2];
- Несмотря на постоянную нехватку времени, вызванную выполнением пунктов 1-4, постоянно смотрит говносериалы;
- По слухам, распространяемым самим быдлокодером, в его коде всё-таки есть один комментарий;
- Верит в то, что можно найти работу, где можно ещё больше ничего не делать и лучше зарабатывать. В доказательство демонстрирует всем вакансию с какого-нибудь хедхантерского сайта, абсолютно не соответствующую его компетенциям и навыкам;
- Всегда планирует завтра написать Мегапрогу;
- При принятии решений в области IT руководствуется не здравым смыслом, а тем, является ли тот или иной метод, программа, подход, тру или не тру. Дело в том, что эти понятия, заимствованные из математической логики, переплетаются в мозгу говнокодера с представлениями о логичности решений;
- Считает, что все вокруг тупые уроды, так как не знают некоторых вещей (конечно же, охренительно серьёзных и профессиональных), которые знает он, или потому, что пытаются объяснить ему то (конечно же, никому не нужное), чего он не знает — как типичная для дебилов склонность ассоциировать себя с кем/чем-то: «я представитель некой профессии, значит я есмЪ Царь и БохЪ».
- Быдлокодер считает себя Программистом, а чуть менее, чем всех остальных, — быдлокодерами. Иногда он читает умные книжки по кодингу, преисполняется по отношению к ним священным экстазом (правда, его код от этого лучше не становится) и потом пеняет на других за то, что код написан не так, как в этой книжке. Схватки быдлокодеров по весне представляют собой интересное зрелище.
- При использовании open source компонента, забивает на тип лицензии, под которой они распространяются и легким движением руки удаляет копирайты. В особо запущенных случаях: заменяет на свои.
- Зачастую, вместо самосовершенствования навыков кодинга, занят какими-то срачами в интернете, пытаясь представить себя как гуру в технике, политике, лингвистике или истории.
- Не приемлет изменений со стороны в свой говнокод, если этот баг вылазит только на других компах, «у меня работает, а у вас руки из жопы, кривые настройки, плохой комп, неправильная ОС».
В этих ваших интернетах
« |
Невозможность КПД более 100% исходит из наших текущих физических теорий, но как любые теории они могут оказаться ошибочными... Я не говорю, кпд выше 100% возможен, я говорю, что запрещая любые исследования в этой области мы можем упустить прорывные технологии... Но проблема в факте, что официальная наука априори приняла закон не рассматривать вечные двигатели потому, что они «невозможны потому что невозможны».. | » |
— нет, это не гуманитарий, это уровень знаний быдокодера |
Быдлокодеры, ориентированные на веб, заняты в основном поддержкой таких «приложений», как дорвеи и дейтинги. В этом случае их любимым языком (ты знал, ты знал!) оказывается PHP, позволяющий писать скрипты сразу руками, без использования моска, вываливая программный код с упорством роторного канавокопателя. Да, да, это как раз тот самый случай, когда не погромист выбирает язык, а язык выбирает погромиста. Понять этих людей невозможно, с тем же успехом белый ангорский котэ мог бы пытаться уяснить, что движет стаей обоссанных, обосранных бездомных собак… проще не связываться с ними и пусть живут, как умеют.
Как и многие языки без типов данных, PHP — отличный детектор, позволяющий отличить быдлокодера от программиста, а также многое узнать о предпочтениях и привычках сермяжной публики. В то же самое время, когда другие грызут SQL и многопоточность, эти обсуждают «заработок в интернете» и прочую «коммерцию».
В этой вашей литературе
Когда Маяковский стал писать стихи «лесенкой», другие поэты обвинили его в читерстве. Поэтам тогда платили построчно, а Маяковский получал за лесенку больше остальных.
Когда Дюма писал «Трёх мушкетёров», в контракте с издателем была оговорена построчная оплата рукописи. Для увеличения гонорара Дюма придумал для Атоса слугу по имени Гримо, который говорил и отвечал на все вопросы исключительно односложно, в большинстве случаев «Да» «Нет». Приключения мушкетеров «Двадцать лет спустя» оплачивались уже пословно, и Гримо стал чуть более разговорчивым.
Примеры быдлокода
Пример быдлокодерства на языке C++
void SprositiPolzovatela() { for(unsigned int i=1;i<5;i++) { cout << "OK? (y/n) "; cin >> c; // bolshie i malenkie bukvi c = tolower(c); if(c == 'y' || c == 'n') i=9000; else i--; }}
Здесь человек, вместо того, чтобы организовать условный цикл, использует цикл со счетчиком и манипулирует переменной внутри цикла, уменьшая ее на единицу, если пользователь ввел недопустимые символы, организуя таким образом вечный цикл, или же присваивая ей значение, заведомо не проходящее условие продолжения цикла, таким образом, организуя выход из цикла. А вот c — глобальная переменная. В лучших традициях быдлокода. Помимо этого использована функция tolower() из <ctype.h>, что конечно не принципиально для современных настольных ПК, но в своё время было весьма существенно… а также актуально и по сей день для всяких там AVR/ARM’ов[3], в которых помимо сказочного быстродействия, имеются ещё и суровые ограничения на объём кода. За пару лет может скопиться немало таких кусочков, и… ну ты понел? Более правильно этот участок кода нужно было бы написать так:
char AskUser() { char c; do { cout << "OK? (y/n) "; cin >> c; }while(!strchr("yYnN",c)); return c; }
…а впавший в прямо противоположный грех кодозадрот вообще повыкинет библиотечные строковые функции:
BOOL AskUser() { int c; //Нативный для платформы размер тянет за собой меньше хлама, особенно на RISC cout << "OK? (y/n) " << endl; while (1) if ( (c=getch()) == 'Y' || c == 'y') return TRUE; //Порядок следования стандартный! else if (c == 'N' || c == 'n') return FALSE; return FALSE; //Чтобы компилятор не ругался }
Альзо, после Y или N юзеру не придётся нажимать Enter, что православно и неуподоблено интерфейсу мелкософтовской DOS.
Или пример на Object Pascal:
var i: word; begin for i:=0 to List1.Count-1 do ShowMessage(List1.Items[i]); ...
Хороший скрипт быдлоскриптом не назовут!
Быдлоскрипт — это скрипт, сделанный быдлокодером «с душою», либо злым кодером с жуткими умыслами. Умыслы в основном заключены во взломе ламеров, которые каким-либо образом будут проводить непосредственный контакт с этим скриптом. Быдлоскрипты могут выдавать аццкие глюки, по дизайну чаще напоминают merde, иногда всплывает ощущение, что быдлокодер здорово нажрался, когда писал этот скрипт.
Алсо, в некоторых кругах быдлоскриптом называют те скрипты, которые повторяют функциональность уже давно известных компонентов. Например, при необходимости перейти по ссылке, обработка события onclick ссылки вместо использование тега a — сферический быдлоскрипт в вакууме.
Быдлоскрипты, как правило, 100% имеют уязвимости и являются лакомой мишенью для кулхацкеров.
Пример быдлоскрипта:
Срачи
Как и любой представитель быдла, горе-программист любит участвовать в разнообразных срачах и холиварах. Вот некоторые из них:
Нужна ли программисту математика?
Срач старый, как говно мамонта. Обычно его инициаторами выступают школьники, которые не осилили матан на уровне даже 9 классов, и ввиду своей недоразвитости не догоняют, зачем, дескать, он нужен? Пионерам невдомек, что матан — лучшее средство лечения взаимоисключающих параграфов в их юных головах, он организует мышление, и позволяет не писать всю эту тошнотворную хуиту, которой быдлокодеры засрали эти ваши интернеты.
Математика — один из основных инструментов построения абстрактных моделей программных конструкций и даже целых систем. ИЧСХ, чуть менее, чем все студенты, которым пять лет выносили мозг высшей математикой, являются быдлокодерами в наихудшем варианте. Доказано печальной практикой. Так что, программист со средним образованием, но пятилетним опытом работы ценится на рынке труда много больше, чем программист с нулевым опытом и хоть тремя дипломами. В то же время, умение мыслить абстракцию кода отдельно и независимо от его реализации в языке — необходимое условие хорошего программиста[4]. Как правило, школие часами доказывает, что для того, чтобы писать крутые проги, знать всякие лямбда-исчисления не надо, и вообще всё это — задротство. На вопрос, почему же эти их проги такие говеные, исчерпывающего ответа дать не могут.
Для написания программ весьма полезными и рекомендуемыми являются знания матана и дифуров (без них в остальных предметах делать нечего), численных методов, методов оптимизации, мат. моделирования и теории графов. А если ты, школьник, хочешь написать свой Фоллавут онлине в полном Тридэ, то тебе совершенно точно понадобятся знания матричной (и векторной, как частный случай) алгебры и аналитической геометрии (для трехмерного движка — даже если ты берешь уже готовый, все равно оперировать с векторами и матрицами придется чуть реже, чем всегда), теоретической механики и дифференциальной геометрии (это если ты планируешь, чтобы твои болванчики перемещались поразнообразнее, чем по прямой). А ты думал, что преподавателям скучно дома, и они решили тебя помучить бесполезными науками за государственный счет?
Тошнотворную хуиту, как правило, пишут из-за того, что перед началом работы не укладывают в своей голове решаемый функционал и не делают его здравую разбивку на функции. В результате кодер борется со своим же кодом как с противником, начинается цейтнот, что в свою очередь приводит к переизбытку кофе и мочи в голове, потому что иначе секир башка. Матан может и РАЗВИВАЕТ абстрактное мышление, хотя может быть, это и не единственный путь. Но примеры обратного достаточно редки. В любом случае, если нет соответствующего раздела в мозге, абстрактное мышление не разовьёт даже матан. Правда, он позволяет произвести начальный отсев и отправить несостоявшегося быдлокодера учить другие подходящие вещи или более гуманитарные науки.
Также матана на уровне 7 класса вполне хватит для 99% веб-разработчиков (не веб-дизайнеров!), поскольку все уже реализовано в виде библиотек. А что не реализовано, с приемлемым качеством можно написать после пары лет практики со знаниям математики на уровне простого гуманитария.
tl;dr Подытоживая вышесказанное, следует отметить, что всеразличный матан не является панацеей и волшебной таблеткой для верхней головы, увы нет. Это не более, чем мозговая клизма, способная стремительным домкратом прочистить от говен фимозги подрастающих погромистов. Другое дело, что в некоторых случаях против ФГМ нужна не клизма, а сразу живительная эвтаназия.
Сишники vs. Паскалисты (Сионисты vs. Пасквилянты)
« |
Программируйте с использованием языка, а не на языке. | » |
— С. Макконнелл |
Старый срач, зародился IRL еще в 80-х, а может и раньше. Историческими предпосылками начала срача IRL в этой стране стало отсутствие доступа к компьютерам. Школоте не понять, но было время, когда к единственному на факультете компьютеру студентов допускали по предварительной записи и не более, чем на полчаса в неделю. Поэтому программы зачастую писались и отлаживалсь на бумаге, а только потом в полностью готовом виде набирались и компилировались. Программировать в уме на C умели не все, приходилось использовать Pascal. По этой причине Сионисты, которых также называли Насильниками, считали Пасквилянтов за быдлокодеров. Сами же Сионисты зачастую страдали чрезмерным ЧСВ. К этому периоду относится пословица: «Каждый москаль любит Паскаль, а мы уси пишем на Си». С появлением ФИДО срач перекочевал в оное. Но анонимусу думается, что в те времена участники были несколько адекватнее, потому что быдла в фидо было меньше, чем в нынешних интернетах. С течением времени это ваше фидо постепенно самовыпиливалось, а интернеты прогрессировали — быдло набигало. И срач приобрел более современную форму: Delphi vs. C++. Причём основная масса дерьма (если не вся), генерируемая срачем Delphi vs. C++, обрушивается на Delphi. Исходя из этого, а также того, что дерьмо в процессе подобных срачев способны генерировать только быдлокодеры, можно понять, во что воплотился идеал быдлокодерского языка.
Самый пик пришелся на начало 00-х годов, когда Мелкомягкие сделали довольно большой перерыв после выпуска Visual C++ 6, а дельфинарий тем временем не стоял на месте. После выпуска Биллом Г. платформы .NET срач постепенно начал самовыпиливаться из-за того, что схожие наработки по объединению нескольких языков стали популярны. Суть холивара, однако, вовсе не в том, что какой-то язык хуже, а какой-то лучше. Самый цимес в ФГМ, который непрерывно пожирает межушной нервный узел быдлокодеров.
Также в быдлокодерской среде популярна разновидность этих споров в виде того, является ли С, С++, Турбо Паскаль 5.0 и Турбо Паскаль 6.0 четырьмя разными языками или их всего 2 (или 3). Быдлокодеры считают, что добавление объектов создаёт принципиально новый язык. Другие быдлокодеры возражают, что нет. С и С++ всё-таки отличаются (правда полутора операторами) даже без использования объектов. Однако чуть менее, чем все быдлокодеры, говоря о прелестях «чистого С», имеют ввиду, естественно, не эти различия, а именно использование объектов.
Типично доставляющий и забавно свежий пример поражения межушного нерва поциента
Слушай, ты, я 5 лет назад отучился. На Дельфи не пишу из религиозной ненависти, на С++ Билдере начал с поддержки наследия, которое благополучно переписываю, уже наполовину убрал всё гавно. В Нетбинсе использую unit-тесты, и SVN, к Билдеру юнит-тесты прикрутить мне не удалось, давайте, списывайте на мою недоученность, но всё же я перерыл несколько библиотек юнит-тестирования, и мозг сломал об их документацию, при этом постоянно отвлекаясь на текущую работу. Причём к примеру boost.regex я прикрутил к одному Билдеровскому проекту. Ещё раз насчёт недоученности, у меня универ был лажовый, группа 17 человек, из них я один программист, остальные и рядом не валялись. Я вообще программирую не благодаря, а вопреки университету. Никаким из своих навыков программирования, я универу не обязан. Разве что может основы UML там узнал. Всё остальное самообучение. Результаты неплохие, но есть к чему стремиться. НО МЛЯ НА ЭТОМ ФОРУМЕ ЗАКОЛЕБАЛИ УЖЕ ВСЯКИЕ ОНАНИЗМУСЫ МЕНЯ ОСКОРБЛЯТЬ!!! Чем я показал какую-то недоученность и ущербность? Я справляюсь с работой, и дома программирую из личного желания, в чём я не прав то опять? Короче, смотался отсюда, му**ло, ты запарил уже! |
sql.ru |
Заметки страдающего быдлокодера
Хер ли, думаете не хотелось бы сидеть и неделями шлифовать свои строчечки, искать оптимальные решеньица, вплоть до экономии оперативной памяти? Если это школьный проект или дипломная работа — и имеешь усидчивую жеппу и ноль личной жизни в квадрате, так задрачиваться можно годами. Тем более когда под рукой интернетов йок, за каждой хреновиной чеши в библиотеку, а там очередь и чтоб сдать книгу обратно до восхода солнца. иначе линчуют такие же ушлепки как ты. Быдлокодерство, к сожалению, это не цель а средство. Как только писание строчечек когда исчисляется не количеством и не качеством, а потраченным временеи и соответствующей оплатой последнего, фигушки позадрачиваешься. Помню дали заданьице — до конца НЕДЕЛИ — был вторник — отсканировать, внести в базу и написать часть поиска (по заглавию хотя бы) триста газетных статей из газетных же архивов. То есть на все про все — включая OCR и физическое перетаскивание хреновин с газетными вырезками из подвала наверх — меньше чем пять дней. нормально. Хорошо хоть уже инет был и интерфейсы можно было делать в дельфи, правда в самой первой версии со всякими тараканами и без поддержки локального алфавита (самой пришлось писать коробочки с праволевной ориентацией и поддержку иврита мать их). Да-да, там вдобавок на иврите все было. Ну так вот пять дней. С ограниченным доступом в инет — два часа за рабочий день, пока выделенку не дали нам. Тут уже не нашлифуешься, работает — и хрен с ней, а память пусть сами докупают если такие нетерпеливые. Вот так и появляется быдлокод, даже в такой херне как базы данных. Хотя знание определенных правил очень помогает, все равно наизобретаешь велосипедов. А им боссам тоже похуй, лишь бы своему можно было отчитаться — мол дедлайн вытянули, на отладку время не дают, сразу новый проект. Это хорошо когда бородатые дяти пишут. но бородатые дяди и берут хорошо, а сопляков можно за копейки гонять. Такая философия и рождает быдлокодеров. Гораздо быстрее чем просто глупость и амбиции тех кто программировать толком не научился. Как-то так. |
Основные законы быдлокодинга
- Ты быдлокодер, если не считаешь себя быдлокодером.
- Нельзя перестать быть быдлокодером.
- Быдлокод языконезависим.
- Быдлокодер — тот, кто не стремится к идеальному коду.
- Быдлокодер — тот, кто стремится к идеальному коду.
- Любой кодер является и быдлокодером и не-быдлокодером одновременно (принцип
быдлокотабыдлокода Шредингера). - Сам человек не может определить, быдлокодер он или нет. Это могут сделать только другие люди.
Известные быдлокодеры
- Павел Дуров.
- Ильхам Зюлькорнеев.
- Sega-Zero — новый разработчик Квипа, пришедший на смену Ильхаму.
- Школьники любого уровня.
- Евгений Касперский.
- Все, кого нанимал Святослав Гуляев.
- Денис Попов.
- Алексей Бабушкин.
- 95% 1С-разработчиков.
- Барабан
Алсо
При постройке "Бурана-Энергии" для упрощения работы инженеров было решено использовать "быстро обучение инженеров в програмиистов". Как следстве, был разработан узкоспециализированный язык программирования ДРАКОН. Не взлетел из-за закрытия самого Бурана-Энергии (спойлер: да и Шаттлов тоже).
Галерея
|
См. также
- Программист
- Быдлодизайнер
- Индусский код
- Видеокурсы
- Свистелки и перделки
- Умение разбираться в чужом коде
Ссылки
- Нульчановкий быдлокодинг
- Сосачерский быдлокодинг
- Несколько побоев из жизни быдлокодеров
- code_wtf — коммунити в жжешечке, посвященное сабжу
Примечания
- ↑ Цитата впервые встречается в переписке Мартина Голдинга в конференции [|https://groups.google.com/forum/#!msg/comp.lang.c++/rYCO5yn4lXw/oITtSkZOtoUJ]
- ↑ Следует заметить, что стычки происходят лишь при условии, что его коллеги и начальство не являются точно такими же быдлокодерами, в противном случае они легко находят общий язык и вместе просирают все полимеры
- ↑ Тот кто под них быдлокодит, косячит более хитро
- ↑ Помимо математики, есть ещё OOA&D, но Буча быдлокодеры тоже не читали.
[ + ] Любой программист без словаря поймёт, что такое Быдлокодер
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|