Здравствуйте, Shmj, Вы писали:
S>Допустим, по умолчанию все функции сделать async, а компилятор уже сам оптимизирует. S>Получается если не нужно ждать результата функции — пишем наоборот — nowait. Если ждать результат — ничего не пишем, по умолчанию.
Ты, кажется, хотел сказать наоборот. nowait как раз вообще ничего не требует за пределами обычной парадигмы даже без async/await, это возврат к тому, что было до них. Запросил асинхронную операцию и потом ждёшь нотификации, и все проблемы в том, как именно организовать максимально эффективное и при этом удобное ожидание.
То есть тут ничего нового.
А если таки весь код как бы async, но при этом можно явно ставить ожидание — то это Erlang или Go, или вообще что угодно на зелёных нитках.