Александр Петрович - Записки программиста А.
Программист А. залпом допил свое пиво и ушел, стараясь не смотреть направо.
1001000Как-то в баре, за кружкой Fisherman's Brew, приятель жаловался программисту А.:
— Что-то со мной происходит не то! Ничего мне не интересно, ничего не хочется делать. Кажется, что все уже делал, везде уже был, все уже знаю, хотя и понимаю, что это не так. Включаю телевизор — по всем каналам какая-то ерунда. Берусь за книгу — ничего такого, чего бы раньше не читал. С утра ни на что не надеюсь, вечером ничего не жду. Все вокруг суетятся, повторяя одни и те же действия, а мне ничего этого не нужно. Может быть, это психическая болезнь?
— Ты случайно головой не стукался в последнее время? — спросил программист А.
— Ты знаешь, действительно стукнулся не так давно о полку, три дня шишка не проходила, — ответил приятель.
— Ну вот тебе и ответ! — воскликнул программист А. — Поэтому ты и считаешь мудрость психической болезнью!
1001001Слабый огонек костра тускло освещал сидевших вокруг него людей. Иногда резкий порыв холодного ветра почти полностью задувал пламя, и тогда становилось совсем темно, так что неясные пятна палаток на кромке леса растворялись в пугающей черноте. Рассказчик, освещая свое лицо снизу фонарем, как бы для нагнетания атмосферы, продолжал свою историю:
— И когда он вошел в эту комнату, экран компьютера автоматически загорелся, и на нем зловеще открылось окно SQL*PLus. Тогда он набрал SELECT * FROM [email protected] и нажал Enter. И, к его ужасу, запрос вернул 10 записей…
— И что? — напряженно спросил программист А.
— Но в базе данных не было линка с именем ORDINST! — резко закончил рассказчик.
— Аa! — вырвалось у кого-то от страха и неожиданности.
Пламя окончательно погасло, превратившись в тлеющие угольки. Некоторое время все так и сидели с открытыми ртами и испуганными лицами.
1001010Выписывая очередной чек за услуги, программист А. написал в графе 'Сумма прописью':
SELECT
TO_CHAR(TO_DATE(TRUNC(68.18),'J'),'JSP')
||' DOLLARS AND
'||TO_CHAR(MOD(68.18,1)*100)||' CENTS'
FROM DUAL;
Банк вернул ему чек и оштрафовал на $20.
— Вот ведь бл [email protected]#&во! — ругался программист А. — У них там что в банке, SQL Server, что ли?!
1001011Программиста А. спросили:
— Как отличить обычного программиста от настоящего программиста?
— Легко, — ответил А. — Обычный программист тщательно изучает задачу. Пишет четкий и понятный технический дизайн. Советуется с архитекторами. Заранее продумывает, как он будет тестировать код. Тщательно комментирует. Следит за правильной инициализацией переменных. Никогда не забывает про производительность и масштабируемость. Укладывается в отведенные для проекта сроки.
— Разве настоящий программист не должен делать все то же самое? — удивились собеседники.
— Он бы рад! — ответил программист А. — Если бы его еще хоть раз назначили на проект, где для всего этого есть время!
1001100Программист А. сидел на рабочем месте и мрачно смотрел в окно. Через дорогу, в белесом сгущающемся тумане, он видел строения мола и парковку, забитую машинами. Издалека многочисленные выпуклые крыши машин напоминали чешуйки змеиной кожи, распластанной по земле. У этой змеи был также и длинный извивающийся хвост из машин, пытающихся въехать на парковку с прилегающей улицы. Начинался день больших распродаж после рождества.
Программист А. пытался понять всех этих людей, и не мог. Насколько духовные ценности должны быть смещены в сторону материальных благ, чтобы на следующий день после праздника хотелось рано вставать, садиться в машину, ехать в мол, и толкаться там в толпе в поисках мистических скидок? И это вместо того, чтобы, перебрав накануне, сидеть на работе, мучаясь с похмелья от головной боли и тошноты, и пытаться вспомнить, где был вчера??? Куда катится мир?
1001101Программист А. засиделся допоздна на работе. Когда он наконец вышел из здания, было темно и относительно тепло. В середине пустой парковки, в желтом расплывчатом круге света, одиноко сутулилась его машина. Очевидно, недавно прошел дождь, и на асфальте была большая лужа — это напомнило ему весну. Трава по краям парковки выглядела свежей и зеленой, и это напомнило ему лето. В одном из углов парковки лежала большая куча опавшей листвы грязно-коричневого цвета, что в свою очередь напомнило ему осень. В целом, картина напоминала что угодно, только не зиму. Программисту А. хотелось чего угодно, только не пива. Он сел в машину и поехал в ближайший бар. Все-таки, это была зима…
1001110— Как ты пишешь программы? — спросили программиста А.
— Очень просто, — ответил он. — Беру ящик пива, сажусь за компьютер. Ящик — это класс, каждая бутылка — это метод, этикетка — это комментарий, пробка — это открывающая скобка, дно — закрывающая, пустая бутылка — это return…
— А головная боль наутро? — удивились собеседники.
— Релиз, — объяснил А.
1001111Программист А. допил остаток пива в своем бокале и знаком заказал еще. Счет он потерял, голова болела и без пива.
— Проблемы? — поинтересовался бармен, бросая перед ним картонный кружочек с рекламой Короны и ставя на него полный бокал Sam Adams Octoberfest.
— А, работа! — буркнул А.
— Чем занимаешься? — спросил бармен.
— Программист я, компиляторы пишу, — вяло ответил А. и сделал большой глоток пива.
— Серьезно? — оживился бармен. — Ну и что используешь для выделения регистров? Окрашенные графы?
— Да, — ответил программист А. после некоторого замешательства и посмотрел на бармена. Бармен вопросительно смотрел на него, ожидая пояснений.
— С ними и проблема… — нерешительно продолжил А. — Алгоритм подразумевает равнозначные и независимые регистры…
— Регистры на классы разбивал? — перебил бармен.
— Разбивал, — ответил А. — Мне нужны пересекающиеся классы для оптимизации, но тогда приходится параллельно поддерживать неопределенное число хэш-отображений…
— Это потому, что ты внутри класса накладываешь условие независимости, — сказал бармен. — Регистры внутри класса должны быть равнозначными, но не независимыми. Эти зависимости и храни в хэше. Тогда число хэш-отображений просто равно числу классов…
Кто-то позвал бармена, и он, кивнув программисту А., отошел. Программист А. какое-то время смотрел в стакан, и ему становилось ясно, что по крайней мере ближайшая его проблема решена. Приободрившись, он оставил на стойке деньги и направился к выходу. Уже у двери до него донеслись слова бармена, обращенные к кому-то за стойкой:
— …ты не учитываешь, что при образовании ложного актанта часто возникает лексический супплетивизм…
— Ах, вот оно что!.. — радостно воскликнул собеседник.
— Вот ведь бл [email protected]#&во! — сказал А. и вышел из бара. Он всегда хотел быть барменом.
1010000Программиста А. замучила ностальгия. Стоило закрыть глаза, и из глубин сознания, словно на фотографической бумаге, опущенной в ванночку с раствором проявителя, проступали бескрайние поля, покрытые золотым ячменным колосом, глубокое голубое небо, добрый мужик Афанасий, идущий за трактором, старый мельник, везущий в город на подводе кучку запыленных серых мешков с мукою. Потом сознание переносило его в сам город, на холодные берега Балтики неподалеку от Адмиралтейства, где забавный толстяк кормил голубей, сидя на золотой бочке. Или перед его мысленным взором возникали образы родных московских улиц, окна старинного особняка в Хамовниках, замысловатые новостройки в Очаково, безумные огни и толчея Тверской, где на одни жигули приходится десять мерседесов. Словно в бредовой презентации Microsoft PowerPoint, сменяли друг друга картины арсенала на набережной в Ярославле, незнакомой церквушки в Клину, трех медведей на дереве посреди сибирской тайги. А иногда почему-то и вообще проявлялось видение загадочной украинской местности под названием Оболонь, хотя там программисту А. побывать пока не пришлось.
— Вот ведь бл [email protected]#&во… — говорил программист А. в таких случаях и допивал очередную бутылку SamAdams.
1010001— Ерунда все эти ваши органические продукты, — зло ворчал себе под нос программист А., морщась от головной боли и стараясь лишний раз не двигаться телом, чтобы не усугублять мучительный беспорядок в желудке. Он сидел на работе, и пытался набирать PL/SQL-код, но в глазах двоилось, и поэтому вместо SELECT…AS каждый раз упорно печаталось SELECT…ASS.
— Только одно название, что органические, а все одно — та же химия. Общество потребления, чтоб им пусто было. Whole Foods, Trader Joe's, Planet Organics Fresh Market my ass… Все, все — с одной и той же грядки! На чем надо было выращивать арбуз, чтобы им можно было так отравиться! Хорошо еще, хоть арбуз был маленький…