Комментарии 4
очень крутая статья! узнал много нового!
Про Kotlin Coroutines добавить бы раздел, для полноты картины (они же в ветке Stackless тоже).
На каком еще стеке вызывающего - в 99% future будет обернут в таску токио и улетит в кучу, откуда waker её и будет шедулить. В целом сравнение Future раста и тех же Task в .net просто не корректно, потому что сами по future сами по себе не могу исполняться, это только часть async модели
Потому что в расте миллион объектов могут (в среднем будут) весить меньше чем сто тысяч в Питоне, не?
Просто напросто в расте в целом чуть оптимальнее используется память, т.к. меньше индерекций, плюс нет заголовков объектов*. Всё остальное не имеет особого значения.
Примечание*: про rc/arc немного другой разговор.
И Вы не совсем правы по поводу того, что все 4 упомянутых языка реализуют async fn как стейт-машину. Полностью как стейт-машину их реализует только раст и питон. C# и js используют гибридный подход: одну функцию они реализуют через стейт-машину, но вызов другой функции они обрабатывают через коллбэки.

Почему миллион корутин на Rust весит меньше, чем сто тысяч на Python