Примечание. Это стихотворение я написал специально для своего доклада на C++ Siberia 2019 «Настоящее и будущее функционального программирования в С++».
Часть 1. Типы и выразительность
Часть 2. Многопоточный код
Часть 3. Паттерны, ООП и бойлерплейт
Дополнение. Rust
Часть 1. Типы и выразительность
Рабочий вечер. Свет экрана.
Из полумрака веет сном.
Пойти бы в бар; но еще рано,
И думать нужно не о том.
Релиз горит, коллеги плачут,
Программа не готова в срок...
...А мысль хаотично скачет
Меж неработающих строк.
Рефакторинг - святое дело,
И компилятор был бы друг,
Но за такие типы, зело,
Лишить бы кое-кого рук.
С такими типами всё сложно:
Как ни моля, как ни прося,
В них выразить никак не можно
Все то, что допустить нельзя.
На все нечистое в программе
Наш компилятор промолчит.
Дебажте код, ищите сами, -
Пока у вас не пригорит.
Часть 2. Многопоточный код
Снежок кружится буйно, рьяно В февральской стуже за окном. Пойти бы спать... Но еще рано, И думать нужно не о том... ...Проклятый баг порушил треды, Меняя данные не так, Дедлок - его родное кредо, А рейс кондишн - его стяг. Он из мутабельных орудий Ведет прицельную стрельбу. И хочет, пакостный Иудий, Потоки закопать в гробу. Он знает, что в войне с порядком Хитрей прикинуться судом, И огласить в вердикте гладком, Кто виноват в “порядке” том. Кто по неведенью подходов Пихал везде ансейфный каст. Кто расплодил god-like уродов, И создал из лапши балласт. Кто был в безумии нездравом, Когда, сжигая все мосты, Ходил с мутабельным уставом В многопоточный монастырь... (...Такой невиданной “непрухи” Ты не испытывал давно. Проблемы множатся как мухи, Код превращается в беду.)
Часть 3. Паттерны, ООП и бойлерплейт
На фотографии лукаво Смеется девушка с зонтом. Зовет и манит, словно пава, Но думать нужно не о том. Еще не близок час успеха, Пока, разъятый на болты, Продукт страдает в недрах цеха От гаечной неполноты. На этой фабрике объекты Распухли хуже макарон, И по примеру тайной секты Приспособленец там внедрен. Его задача - быть на страже Всего, что к разуму близко. Всего, где смысл есть, и даже Где смысл видеть нелегко. Подлец сражается с Оккамом, И предает талант огню. С ним поцелуи станут срамом, А разум - сгублен на корню. Хитрец старается подсунуть Детали крайне сложных форм. Ему запутать всё - раз плюнуть, А усложненность - его корм. (...Вот так, по прихоти злодея В стране волшебной ООПея Веками длится эпопея, Где в главной роли - ахинея.)
Дополнение. Rust
В углу шевелит мягко лапа Настенным часовым котом, Мерцает лавовая лампа, Но думать нужно не о том. О чем же думать?.. Ускользает Во тьму ночную мысли нить. Реальность плавится и тает, И смыслов больше не добыть. Приходит сон. А там стоит Сундук, весь ржавчиной побит: Ни мил, ни груб, не мал, не гроб, Прямой как куб, с замком из скоб. Сундук открыт. А в нем растет Цветок, прекрасный как рассвет. Он мягким пламенем покрыт, И испускает яркий свет. Горит растенье неспроста. Контрастный тон его огня Страстей исполнен. И чиста Его немая болтовня. Своим теплом он растворит Усталость от пустых речей. Он простоту боготворит, И консистентность мелочей. Он возвещает о краях, Где нет губительных чудес. Там у отъявленных нерях Не выйдет поломать процесс. Там безопасность и комфорт, Там нет ни боли, ни стыда. Там счастьем платят наперед, И возраст - не беда. Там даже странный ростовщик Подарит гору серебра. Он не растратою велик, А сохранением добра… (...Таков был сон. Проснувшись, ты Вернулся в офисную ночь, И был теперь в плену мечты Неврастению превозмочь.)
Новосибирск, январь 2019