[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