— Но в базе данных не было линка с именем ORDINST! — резко закончил рассказчик.
— Аa! — вырвалось у кого-то от страха и неожиданности.
Пламя окончательно погасло, превратившись в тлеющие угольки. Некоторое время все так и сидели с открытыми ртами и испуганными лицами.
Выписывая очередной чек за услуги, программист А. написал в графе 'Сумма прописью':
SELECT
TO_CHAR(TO_DATE(TRUNC(68.18),'J'),'JSP')
||' DOLLARS AND
'||TO_CHAR(MOD(68.18,1)*100)||' CENTS'
FROM DUAL;
Банк вернул ему чек и оштрафовал на $20.
— Вот ведь бл$@#&во! — ругался программист А. — У них там что в банке, SQL Server, что ли?!
Программиста А. спросили:
— Как отличить обычного программиста от настоящего программиста?
— Легко, — ответил А. — Обычный программист тщательно изучает задачу. Пишет четкий и понятный технический дизайн. Советуется с архитекторами. Заранее продумывает, как он будет тестировать код. Тщательно комментирует. Следит за правильной инициализацией переменных. Никогда не забывает про производительность и масштабируемость. Укладывается в отведенные для проекта сроки.
— Разве настоящий программист не должен делать все то же самое? — удивились собеседники.
— Он бы рад! — ответил программист А. — Если бы его еще хоть раз назначили на проект, где для всего этого есть время!
Программист А. сидел на рабочем месте и мрачно смотрел в окно. Через дорогу, в белесом сгущающемся тумане, он видел строения мола и парковку, забитую машинами. Издалека многочисленные выпуклые крыши машин напоминали чешуйки змеиной кожи, распластанной по земле. У этой змеи был также и длинный извивающийся хвост из машин, пытающихся въехать на парковку с прилегающей улицы. Начинался день больших распродаж после рождества.
Программист А. пытался понять всех этих людей, и не мог. Насколько духовные ценности должны быть смещены в сторону материальных благ, чтобы на следующий день после праздника хотелось рано вставать, садиться в машину, ехать в мол, и толкаться там в толпе в поисках мистических скидок? И это вместо того, чтобы, перебрав накануне, сидеть на работе, мучаясь с похмелья от головной боли и тошноты, и пытаться вспомнить, где был вчера??? Куда катится мир?
Программист А. засиделся допоздна на работе. Когда он наконец вышел из здания, было темно и относительно тепло. В середине пустой парковки, в желтом расплывчатом круге света, одиноко сутулилась его машина. Очевидно, недавно прошел дождь, и на асфальте была большая лужа — это напомнило ему весну. Трава по краям парковки выглядела свежей и зеленой, и это напомнило ему лето. В одном из углов парковки лежала большая куча опавшей листвы грязно-коричневого цвета, что в свою очередь напомнило ему осень. В целом, картина напоминала что угодно, только не зиму. Программисту А. хотелось чего угодно, только не пива. Он сел в машину и поехал в ближайший бар. Все-таки, это была зима…
— Как ты пишешь программы? — спросили программиста А.
— Очень просто, — ответил он. — Беру ящик пива, сажусь за компьютер. Ящик — это класс, каждая бутылка — это метод, этикетка — это комментарий, пробка — это открывающая скобка, дно — закрывающая, пустая бутылка — это return…
— А головная боль наутро? — удивились собеседники.
— Релиз, — объяснил А.
Программист А. допил остаток пива в своем бокале и знаком заказал еще. Счет он потерял, голова болела и без пива.
— Проблемы? — поинтересовался бармен, бросая перед ним картонный кружочек с рекламой Короны и ставя на него полный бокал Sam Adams Octoberfest.
— А, работа! — буркнул А.
— Чем занимаешься? — спросил бармен.
— Программист я, компиляторы пишу, — вяло ответил А. и сделал большой глоток пива.
— Серьезно? — оживился бармен. — Ну и что используешь для выделения регистров? Окрашенные графы?
— Да, — ответил программист А. после некоторого замешательства и посмотрел на бармена. Бармен вопросительно смотрел на него, ожидая пояснений.
— С ними и проблема… — нерешительно продолжил А. — Алгоритм подразумевает равнозначные и независимые регистры…
— Регистры на классы разбивал? — перебил бармен.
— Разбивал, — ответил А. — Мне нужны пересекающиеся классы для оптимизации, но тогда приходится параллельно поддерживать неопределенное число хэш-отображений…
— Это потому, что ты внутри класса накладываешь условие независимости, — сказал бармен. — Регистры внутри класса должны быть равнозначными, но не независимыми. Эти зависимости и храни в хэше. Тогда число хэш-отображений просто равно числу классов…
Кто-то позвал бармена, и он, кивнув программисту А., отошел. Программист А. какое-то время смотрел в стакан, и ему становилось ясно, что по крайней мере ближайшая его проблема решена. Приободрившись, он оставил на стойке деньги и направился к выходу. Уже у двери до него донеслись слова бармена, обращенные к кому-то за стойкой:
— …ты не учитываешь, что при образовании ложного актанта часто возникает лексический супплетивизм…
— Ах, вот оно что!.. — радостно воскликнул собеседник.
— Вот ведь бл$@#&во! — сказал А. и вышел из бара. Он всегда хотел быть барменом.
Программиста А. замучила ностальгия. Стоило закрыть глаза, и из глубин сознания, словно на фотографической бумаге, опущенной в ванночку с раствором проявителя, проступали бескрайние поля, покрытые золотым
— Вот ведь бл$@#&во… — говорил программист А. в таких случаях и допивал очередную бутылку
— Ерунда все эти ваши органические продукты, — зло ворчал себе под нос программист А., морщась