Информация об изменениях

Сообщение Re[4]: Можно ли избавиться от async|await? от 13.12.2025 18:17

Изменено 13.12.2025 18:29 mrTwister

Re[4]: Можно ли избавиться от async|await?
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, mrTwister, Вы писали:


T>>На практике "не ждать" нужно очень-очень редко, раз в год можно и канал написать в хитром случае.

N>Ровно как и в C#/JS/Python. 99% вызовов функций идет в режиме "ждать". Поэтому эта идея ТС плохая:
N>

N>Получается если не нужно ждать результата функции — пишем наоборот — nowait. Если ждать результат — ничего не пишем, по умолчанию.

Только в C# и пр. есть два вида "ждать": можно ждать синхронно, а можно ждать асинхронно. Причем синхронное ожидание внешне никак не отличается от "не ждать". Это разделение не замусоривает замусоривает и заставляет делать два варианта функций, но и очень часто приводит к ошибкам, когда внутри асинхронной функции случайно вызвали сихронное ожидание. Хуже всего, что оно даже будет корректно работать, но под нагрузкой выжрет все треды в пуле и приложение встанет колом

T>>А по факту весь код в го чистый без async/await мусора и по умолчанию асинхронный.

N>Религией попахивает. "Еxplicit is better then implicit", как мы знаем.
Все максимально explicit:
foo() — ждем
go foo() — не ждем


Все, больше вариантов нет
Re[4]: Можно ли избавиться от async|await?
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, mrTwister, Вы писали:


T>>На практике "не ждать" нужно очень-очень редко, раз в год можно и канал написать в хитром случае.

N>Ровно как и в C#/JS/Python. 99% вызовов функций идет в режиме "ждать". Поэтому эта идея ТС плохая:
N>

N>Получается если не нужно ждать результата функции — пишем наоборот — nowait. Если ждать результат — ничего не пишем, по умолчанию.

Только в C# и пр. есть два вида "ждать": можно ждать синхронно, а можно ждать асинхронно. Причем синхронное ожидание внешне никак не отличается от "не ждать". Это разделение не только замусоривает и заставляет делать два варианта функций, но и очень часто приводит к ошибкам, когда внутри асинхронной функции случайно вызвали сихронное ожидание. Хуже всего, что оно даже будет корректно работать, но под нагрузкой выжрет все треды в пуле и приложение встанет колом

T>>А по факту весь код в го чистый без async/await мусора и по умолчанию асинхронный.

N>Религией попахивает. "Еxplicit is better then implicit", как мы знаем.
Все максимально explicit:
foo() — ждем
go foo() — не ждем


Все, больше вариантов нет