Записки программиста А. [Александр (Programmer A) Петрович] (fb2) читать постранично, страница - 26

- Записки программиста А. 774 Кб, 74с. скачать: (fb2) - (исправленную)  читать: (полностью) - (постранично) - Александр (Programmer A) Петрович

 [Настройки текста]  [Cбросить фильтры]

изменяться в зависимости от значений параметров, но код функции — код, который исполняется — он всегда один и тот же. Но кто вызывает эту функцию?


Темнело. Мягкий ветерок прокатился по траве.


— Идет ветер к югу, и переходит к северу, кружится, кружится на ходу своем… — подумал опять программист А., и на мгновение ему показалось, что ветер подхватил скомканные листы мыслей в его голове и сложил из них в воздухе некое подобие идеи.


— … и возвращается ветер на круги своя… — с готовностью откликнулся тот же самый голос.


— Возвращается, говоришь?.. — программиста А. внезапно осенило и алгоритм решения задачи, над которым он ломал голову все выходные, вдруг выстроился в его голове до последнего квадрата блок-схемы.


— …что было, то и будет; и что делалось, то и будет делаться… — монотонно продолжал внутренний голос, но А. его уже не слушал.

Он все понял. Функция вызывала саму себя! Поэтому все и повторялось. Поэтому и не было ничего нового под солнцем. Он бросился в дом, к компьютеру, и, сделав огромный глоток пива, принялся с пулеметной скоростью стучать по клавишам.

— Ну конечно! — приговаривал он. — Рекурсия! Суета сует! Блоковая структура с лексическим именованием — и рекурсия, рекурсия! Вот ведь бл$@#&во!

1010011
— Вот здесь я аккуратно проверяю входной параметр на соответствие типу данных, и выдаю сообщение об ошибке, если необходимо, — с энтузиазмом рассказывал молодой индийский программист, указывая на соответствующие строки кода на экране монитора.

Программист А., расположившийся рядом в кресле, кивнул.

— Далее, и это очень интересно, обратите внимание, я использую алгоритм быстрой сортировки по имени, чтобы избежать упорядочивания во время запроса к базе данных! Неплохая идея, а?

Программист А. кивнул. Ободренный начинающий программист возбужденно продолжал:

— Затем я использую хэш-таблицу для учета регистров, что позволяет мне быстро и эффективно считывать информацию.

Программист А. кивнул.

— Здесь я не уверен, однако, что ключ оптимален, — говорил индийский программист. — Так как разные узлы могут иметь одинаковый тип данных, добавление его к ключу может снизить количество обращений к базе. Что бы Вы посоветовали?

Программист А. кивнул. Молодой индийский программист некоторое время помолчал и тихо вышел из комнаты. Программист А. кивнул еще раз. Ему снился остров Кауаи и он сам, скользящий на серфинговой доске по теплой зеленой волне.

1010100
Программист А. сидел в Starbucks с компьютером и большим стаканом caffè latte. Звучала тихая музыка, уютно светился изнутри большой серый камин, непринужденно болтали за стойкой официанты в черных-зеленых фартуках, скрашивая друг для друга безлюдный вечерний час. Программист А. ничего этого не замечал. Ссутулившись над столом, он не первый час безуспешно пытался найти нужный алгоритм, и ему уже начинало казаться, что это невозможно.

Отчаявшись, А. поднял голову от экрана и огляделся. Словно впервые, он с удивлением заметил странные картины на стене, причудливые лампы под потолком, диски Эллы Фитцджералд и The Police у кассового аппарата. Внезапно его осенило.

— Подождите! — воскликнул он. — Но ведь это же все совершенно неправильно! Это делается совсем не так!

Он вскочил, быстро собрал вещи и выбежал на улицу. Перейдя через дорогу, он вошел в О'Клири и сел за стойку. Здесь громко играла музыка, по телевизору показывали бейсбол, Red Sox выигрывали у канадцев. А. кивнул соседу за стойкой, сосед весело показал ему шаку. Бармен деловито поставил перед ним кружку Сибирской Короны и сгреб пятерку и доллар.

— Вот теперь все как надо, — удовлетворенно сказал А. и, снова ссутулившись над экраном, продолжил свой безнадежный труд.

1010101
Программист А. сидел в темной комнате у камина, пил виски “Канадский туман” и смотрел в огонь. Неожиданно огонь скукожился и погас.

— Интересно, — подумал программист А. — Куда делся огонь? Только что он был здесь, в этой комнате, и теперь его нет… Ничто не девается в никуда. Значит, огонь ушел…

Вывод показался вполне логичным, и А. отметил это большим глотком виски.

— Однако, если огонь ушел, — продолжал рассуждать он. — То куда он ушел? В каком направлении? На север? На юг?

Этот вопрос был сложнее предыдущего, пришлось выйти на кухню и наполнить бокал новой порцией виски. Когда А. вернулся в комнату, в камине опять горел огонь.

— Хм…, - подумал А., усаживаясь в кресло. — Интересно, это какой-то другой огонь, или это тот же огонь, что был здесь до этого? Может быть, он просто выходил на кухню налить себе виски?

Программист А. сделал большой глоток. В окна второй день, не переставая, стучал холодный декабрьский дождь. Больше ничего не происходило.

1010110
— Вы, программисты старшего поколения, совершенно отстали от жизни, — говорил молодой программист пристыженно молчащему программисту А. — Вы не понимаете, что