Вопрос: почему не используются продолжения (в Ruby) и сопрограммы (в Python), более широко используемые для веб-программирования?
Веб-программирование на стороне сервера затруднено из-за проблемы сохранения состояния между запросами. Два изящных и связанных с ними решений - это продолжения (как показано в Scheme, Ruby и Smalltalk) и сопрограммы (как показано на Python и Go).
Брюс Тейт в своей Beyond Java (O'Reilly, 2005) рассказал о Ruby on Rails и Seaside как захватывающие новые разработки в веб-программировании. Для меня Seaside стал настоящим прорывом: с помощью продолжения Smalltalk Seaside очень легко программировал сложные последовательности запросов/ответов.
Я знаю о сопрограммах Python, используемых в Tornado и Twisted для уменьшения обратных вызовов, но это несколько низкоуровневый, по сравнению с написанием view/controller в одной сопрограмме для обработки последовательности HTTP-запросов для завершения онлайн-покупки, например.
Интересно, почему эти идеи, которые выглядят так хорошо на бумаге, более широко не используются в Python и Ruby. Это просто культурный вопрос? Ограничения в средствах, реализованных на этих языках? Или существует фундаментальный недостаток этих подходов в контексте веб-разработки?