Разрешите представиться: быдлокодер. Да-да, та самая мифическая и несуществующая личность. Кого ни спроси — он тру-программер, а быдлокодер ходит где-то рядом. Позвольте полюбопытствовать, господа тру-программеры, а за неделю до сдачи проекта вы таки пишете нетленный идеальный код? Написание быдлокода — это как дефлорация. Не написал быдлокода — не программист. Но вопрос не в этом. За 25 лет (да-да) быдлокодинга я составил для себя классификацию «тру программеров». Вот она.
* * *
«Гении». Берутся за всё, делают на треть. Потом говорят: «Остальное тривиально», и за них доделывают другие. Любой совет со стороны воспринимают как повод унизить собеседника: «Чё ты ваще понимаешь?»
«Архитекторы». Эти лучше только тем, что берутся не за всё сразу. Зато любят изобретать свои архитектурные решения. Казалось бы, для типовой задачи за полвека придуман не один десяток типовых решений — нет, надо изобрести очередной велосипед с квадратными колёсами. Чуть не забыл: в архитектуре, по их мнению, я тоже ничего не понимаю.
«Библиотекари». Эти могут наступить на себя и согласиться с архитектурой, но стандартные библиотеки — дерьмо, их надо переписать. Хотя если исходить из предположения, что писались они неглупыми людьми, в самопальном коде косяков будет только больше. Нет, они свято верят, что могут всё написать вообще без багов.
«Алгоритмщики». Эти снизойдут до стандартных библиотек, но запутают данные и код так, что сам чёрт не разберет. Тут явно видно, что человек произошёл от обезьяны, поскольку рекурсивное лазание по дереву пришито к месту и не к месту.
«Оптимизаторы». Могут веками переписывать что-то на ассемблере (внося баги, конечно), считать такты процессора в Java-приложении и хранить биты в SQL-сервере.
* * *
А что же быдлокодеры, к коим принадлежу и я? Принцип «сделай быстро, сделай тупо, не пиши лишнего кода» — он не от хорошей жизни.
За несколько недель до сдачи проекта творчество тру-программеров вываливается на меня. Времени нет. Я начинаю править баги, замазывать быдлокодом дырки в архитектуре, распирать подсистемы костылями, вырывать с корнем деревья и втыкать массивы, чтоб работало в шесть раз быстрее. Потом, когда проект сдан, тру-программеры становятся ещё более трушными: их просто разрывает изнутри от величины собственной самооценки и от презрения к быдлокодерам.
Ладно, ребята, гордитесь, только не при мне. Я видел ваш код. С точки зрения унитаза люди различаются довольно слабо.
#5321: Проскочим с разгона
12:00 30.01.2011, IT happens
Когда-то купил Final Fantasy IX. Игра в своём жанре едва ли не лучшая. Я предвкушал кучу приятного игрового времени: шутка ли — четыре диска! Игра сделана для первой Sony PlayStation, а у меня только комп, поэтому играл я на эмуляторе. За счёт мощной видеокарты и современного процессора при выключенном FPS-лимите эмулятор дурел и, отрываясь на сравнительно примитивной графике, выдавал далеко за 300 кадров в секунду вместо положенных 30–60. Играл я, соответственно, только при включённом FPS-балансе, который автоматически понижал количество кадров в секунду до обычных показателей.
В общем, играл я и радовался, пока не дошёл почти до самого конца первого диска. Был там один сюжетно важный ролик, который нельзя было пропустить. Как только включалось это видео, начинали выпадать текстуры, и в какой-то момент игра просто зависала в каше из артефактов. «Алкоголь» при проверке диска показал, что на диске около 2% данных, которые передаются с CRC-ошибками. Само собой, диск выкидывать было жалко. Поморочившись, в конце концов пройти этот участок удалось.
Когда началось то самое видео, игру я поставил на паузу. Настройки -> FPS, снимаем все ограничения и запускаем игру дальше. В итоге комп на радостях загрузил процессор на 100%, выел всю оперативку и, объединившись с мощностями видеокарты, начал показывать видео на дикой скорости. Когда дело дошло до участка с артефактами, за несколько секунд мелькнуло около двадцати кадров с битыми текстурами, пару раз экран моргнул чёрным — и игра пошла дальше.
#5322: Геморрой метровой длины
12:00 30.01.2011, IT happens
Звонит мне мой знакомый из далёкого детства и спрашивает, где взять 12 вольт с блока питания. Я говорю, попутно выясняя, что нужно это для неонки. Думаю, такую фигню может любой приделать.
Через неделю опять звонит этот товарищ и в панике полупьяным голосом объясняет, что случайно оторвал провода с передней панели, и комп не запускается. Объяснять, как вернуть всё назад, в лом, тем более по телефону — проще прийти и сделать. Договорились на следующий день.