Coroutines
От: Eugene Kilachkoff Россия  
Дата: 05.10.07 22:43
Оценка:
Сижу, читаю тут материалы с HighLoad 2007, в презентации яндекса натыкаюсь на упоминание сабжа в реализации поискового сервера для обработки соединений.


Кстати, попиарю немного: блог (ну, может не все еще знают ) и сам доклад.


Собственно, у меня два вопроса:
* Непосредственно к anatolix'у: на чем делают coroutines в яндексе, если не секрет?
* К общественности: а как это реализуете вы и стоит ли овчинка выделки?

Ибо.
1. FSM уже достало, его трудно писать, трудно отлаживать и так далее. Точнее, более непривычно нежели трудно, но иногда это практически синонимы.
2. Coroutines дают преимущество "линейного" описания последовательности действий, только со вставкой переключений в нужных местах.
3. "Грязная работа" остается компилятору, меньше пальцы будут уставать.

Раскрою немного тему "стоит ли овчинка выделки". В полном виде это формулируется примерно следующим образом: есть некий абстрактный программист, писавший до этого только код с "прямым" потоком управления на блокировках, будет ли ему проще научиться писать код на coroutines, а не в виде FSM. Будут ли от этого какие либо другие бенефиты, типа уменьшения количества ошибок, улучшения сопровождаемости, ну и так далее.

ps. Вообще странно как-то, выглядело это весьма хорошей идеей, в pdp-11 вон аппаратная поддержка даже была, а потом как-то резко и сразу про это все забыли. В последнее время начало возрождаться, но как-то вяло... К чему бы это, а ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.