async/await - это просто одна из возможных моделей эмуляции последовательных синхронных вызовов вместо каши колбеков. Есть и другие модели, гораздо более удобные
о, прикольно, они сделали то, что в C# недоступно! Но тогда есть вопросик. А как они с нестатическими методами поступили? Запретили их вызывать? В крестах ты можешь указать константность перегрузки, но в джаве же этого нет?
ну, скажем, на геттер ты вешаешь const и спокойно вызываешь этот метод у иммутабельного инстанса. А вот сеттер ты можешь вызвать лишь у мутабельного. Как в джаве с этим?
CSP - там эмуляция гораздо эргономичней. Фактически сознание программиста оперирует действительно моделью с синхронными вызовами, а не держит в бекгрануде цикл экзекьютора со всеми сопутствующими побочками