мне не нравится запредельная сложность требуемая для управления стейтлес корутинами.
нельзя просто взять компилятор С++20 с актуальной стандартной библиотекой и написать tcp клиент на корутинах в 200 строк. Для этого нужно написать сотни килобайт кода.
А ещё корутины трудно читать и понимать как они работают. Читаешь корутину, вроде там несколько строчек, но что они делают - ты не можешь сказать. Надо лезть и изучать устройство промизов и авейтейбл.
Если я в Go вижу go func() я всегда могу сказать, что произойдёт, при этом мне не надо знать внутрянку горутин. В отличии от плюсовых корутин, что бы ими пользоваться, надо быть магистром по корутинам.
Вообще это уникальная фича для меня, так как впервые я прочитав все статьи, которые мне гугл выдавал по запросу C++ coroutines и пересмотрев десяток лекций на ютубе, так и не понял, как с ними работать. Я знаю, как работает co_await, co_yield, co_return. Но я не знаю, как мне сделать неблокирующее чтение потока байт из TCP, разбитие потока на сообщения, распаковку их, и парсинг json. Вроде бы простая задача для корутин, которую я на Го напишу за полчаса, но как это сделать в С++ - не понятно.
Я 15 лет ждал корутин в языке и сейчас чувствую себя обманутым :(