Сила магии зависит не только от длины магического жезла.

топ 100 блогов sorhed18.08.2010 Не знаю, обращал ли на это кто-нибудь внимание, но известно: мир, в котором живут и работают программисты, требует того, что в обычном мире называлось бы магией [магия обычно подразумевает несоблюдение законов сохранения — то есть создание чего-то из ничего и последующее бесследное его уничтожение, а это именно и есть то, с чем имеют дело программисты каждый день; нет в этом мире и законов энтропии, и так мы создаём порядок из хаоса — за что в реальном мире приходится расплачиваться перегревающимися процессорами и круглогодичным апгрейдом]. Как и в мифологическом пространстве, в мире программирования существуют различные сорта магии1, чёрная, белая и зелёная, и каждый язык программирования более или менее склонен к одному из них.

Обычное (процедурное/императивное) программирование похоже на грубый, непосредственный контроль над реальностью: маг может повелеть чайнику вскипеть, но для этого ему придётся тайными и сложными заклинаниями описать всю процедуру в соответствии с изучаемыми ими в течение всей жизни магическими законами, и, как правило, это настолько сложно, что гораздо проще донести его до конфорки и включить газ. Более продвинутые волшебники могут вызывать себе в помощь демонов (объекты из сторонних библиотек), поручать им какие-то задачи, а когда необходимость в них исчезает — избавляться от них, щёлкнув пальцами; но демоны своенравны, и далеко не всегда они делают то, о чём их просили. Немалое время приходится посвящать и изучению древних языков (коммуникационных протоколов), чтобы иметь возможность общаться с потусторонними силами.

Но функциональное программирование — это иной, совершенно особенный сорт магии: как будто бы закончился этап ученичества, связанный с мелкими изменениями в ткани реальности, и наступило настоящее искусство. Функциональное программирование — это магия трансформации: сама сила природных стихий, пройдя через сложные конфигурации, создаваемые непрерывным ментальным усилием мага, превращается в последовательность действий, необходимых для совершения желаемых изменений. И хотя это требует глубокого постижения тайных манускриптов, повествующих о монадах, и категориях, и действиях без изменений, и изменениях без действий — затраты энергии, необходимой для творения магии, значительно уменьшаются.

В глубокой древности мудрец Уолл сформулировал три добродетели, равно необходимых и программисту, и магу: лень, нетерпение и наглость — и функциональное программирование способствует достижению каждой из них.

1 — не совсем то же самое, что парадигмы.

Оставить комментарий

Архив записей в блогах:
На мурманке перед гребаным дусьево начинается десятикилометровый ад. Дорожники совсем потеряли берега. Жопа будет тока расти, к городу. Я ближе к середине, стою ...
Всем привет! Меня зовут Варвара, мне 33 года (через месяц будет 34, но пока еще возраст Христа ;), я живу в Химках. Две недели назад я вернулась из Краснодара, где работала по трудовому контракту. Но в итоге уволилась (это долгая история и не здесь)), и вернулась домой - к семье. Искать ...
На адрес войсковой части ГРУ, связанной с хакерами, зарегистрированы машины 305 сотрудников. Моренец — среди них. На адрес войсковой части №26165 (подразделение ГРУ, связанное с хакерскими атаками) зарегистрированы автомобили 305 сотрудников, среди которых и выявленный европейскими ...
Он принял присягу на верность, пройдя через процедуру натурализации в США. Сегодня он (и аналогичные особи) организуют жизнедеятельность в России. Скоро выборы, за кого вы будете голосовать? За Единую Россию? Так они же ставленники США. Не верите? Знакомьтесь. Человек от гражданства США ...
Выступил Янукович. В отставку уходить не хочет. Подписывать ничего не хочет, а сегодняшние решения не признает. Уезжать из страны не собирается. Происходящее - государственный переворот. Воспроизвел аналогию с Веймарской Германией. Раскола Украины не допустит, кровопролития не ...