[Moscow.pm] HTTPD на короутинах
Ruslan Zakirov
ruz на bestpractical.com
Пн Май 28 05:13:41 PDT 2012
On Mon, May 28, 2012 at 2:36 AM, Alexandr Gomoliako <zzz на zzz.org.ua> wrote:
>> Все это обсуждение - сплошное словоблудие и никакого намека на конструктивность.
>
> Сложность - это конструктивно и вообще самое главное в
> программировании. И все эти тонны парадигм и подходов нацелены только
> на то, чтобы сделать программы менее сложными и более надежными. Ну
> кроме корутин, они здесь не знаю на что нацелены, усложнить жизнь? :)
Тут под сложностью наверное понимается количество сущностей. То есть
кроме корутин еще есть каналы, локи, семафоры. Больше сущностей -
меньше надежность.
С моей точки зрения программирование с событиями, в том виде как
сейчас это реализовано, увеличает "комплексность" кода. Либо
увеличивается количество функций, либо увеличивается вложеность кода
функций. Continuation passing в perl менее привлекателен из-за
отсутствия tailcall оптимизации. Отладка програм тоже страдает из-за
большого количества анонимных функций и потери связи между кодом где
установлено событие и кодом где оно обрабатывается. die, eval и return
теряют функциональность.
Мое мнение, что у обоих вариантов есть свои плюсы и минусы.
Интересный аспект Coro заключается в том, что функцию quorum_request
на Coro можно встроить в обычную блокирующую программу. Да, программа
заблокируется на время исполнения самого длинного запроса, но все
равно это будет быстрее чем последовательное исполнение всех запросов.
С событийной машиной такого не сделаешь без значительного изменения
кода.
--
Best regards, Ruslan.
Подробная информация о списке рассылки Moscow-pm