Записки программиста А. | страница 4
Программист А. попытался откусить от бутерброда, но у него ничего не получилось — обертка так и норовила попасть в рот вместе с хлебом. Нужно было придержать обертку, но в другой руке у программиста А. была электрическая бритва. Он положил бритву на сегодняшний номер “Boston Globe”, развернутый у него на коленях, но бритва тут же соскользнула с гладкого газетного листа и повисла в воздухе, жужжа и качаясь на собственном шнуре. Программист А. протянул руку за бритвой, при этом другая рука с бутербродом оказалась над газетой, и большая капля кетчупа немедленно упала на разворот, образовав смачную кляксу в том месте, которое А. только собирался прочитать. “Ну, с меня достаточно!” — рассердился программист А., сбавил скорость, съехал на обочину и остановил машину.
Программист А. сидел в рабочем кресле уже не первый час. Голова не соображала, замысловатые строчки кода, похожие друг на друга как узорчатые линии арабской вязи, заполняли окно редактора. Несколько раз А. стирал казалось бы законченную подпрограмму и начинал заново. Теперь, отчаявшись, он просто неподвижно сидел перед монитором.
— Вот так и получаются баги, — думал А. — Если код не идет, заставлять себя нельзя, толку не будет. Только багов насажаешь, потом замучишься отлаживать.
План проекта поджимал, нужно было что-то делать, и поэтому А. сидел и смотрел в монитор. Неожиданно прямо под усталым взглядом А. буква G в слове BEGIN превратилась в маленького юркого жучка и быстро поползла по странице, коварно стирая символы на своем пути. А. чуть не упал со стула. Не веря своим глазам, он потряс головой из стороны в сторону и снова уставился на экран. След от убежавшей буквы не исчезал.
— Это что же такое! — ошарашенно подумал А. — Баги уже вот прямо так и ползают по программе?! Говорил же, нельзя себя заставлять.
Некоторое время ничего не происходило, и А. уже собирался вычеркнуть произошедшее из памяти как невозможное, как вдруг сразу две буквы U и R в слове NUMBER превратились в жучков и побежали по странице в разные стороны. Пытаясь сохранять остатки здравого смысла, А. отметил, что баг, в которого превратилась буква R, на своем пути стер значок умножения, превратив 2**N в 2*N.
— Как же так, — беспомощно пробормотал А. — Должна быть степень, а не умножение! Это же баг…
Еще через мгновение весь экран монитора кишел бегающими багами, безжалостно поедающими все, что с таким трудом успел за несколько месяцев написать А. Ему казалось, он даже слышит монотонное злорадное жужжание, издаваемое полчищем поедающих код жучков. Внезапно все закончилось, и в воздухе повисла тишина. А. остолбенело сидел перед абсолютно черным экраном и пытался осознать, что произошло, и что теперь будет с проектом, и с самим А. Либо материализовавшиеся баги только что, прямо на глазах у А., съели его программу, либо А. сошел с ума. Ни то, ни другое не сулило ничего хорошего.