Сообщение 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>
T>>А по факту весь код в го чистый без async/await мусора и по умолчанию асинхронный.
N>Религией попахивает. "Еxplicit is better then implicit", как мы знаем.
Все максимально explicit:
foo() — ждем
go foo() — не ждем

Все, больше вариантов нет
N>Здравствуйте, mrTwister, Вы писали:
T>>На практике "не ждать" нужно очень-очень редко, раз в год можно и канал написать в хитром случае.
N>Ровно как и в C#/JS/Python. 99% вызовов функций идет в режиме "ждать". Поэтому эта идея ТС плохая:
N>
Только в C# и пр. есть два вида "ждать": можно ждать синхронно, а можно ждать асинхронно. Причем синхронное ожидание внешне никак не отличается от "не ждать". Это разделение не замусоривает замусоривает и заставляет делать два варианта функций, но и очень часто приводит к ошибкам, когда внутри асинхронной функции случайно вызвали сихронное ожидание. Хуже всего, что оно даже будет корректно работать, но под нагрузкой выжрет все треды в пуле и приложение встанет коломN>Получается если не нужно ждать результата функции — пишем наоборот — nowait. Если ждать результат — ничего не пишем, по умолчанию.
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>
T>>А по факту весь код в го чистый без async/await мусора и по умолчанию асинхронный.
N>Религией попахивает. "Еxplicit is better then implicit", как мы знаем.
Все максимально explicit:
foo() — ждем
go foo() — не ждем

Все, больше вариантов нет
N>Здравствуйте, mrTwister, Вы писали:
T>>На практике "не ждать" нужно очень-очень редко, раз в год можно и канал написать в хитром случае.
N>Ровно как и в C#/JS/Python. 99% вызовов функций идет в режиме "ждать". Поэтому эта идея ТС плохая:
N>
Только в C# и пр. есть два вида "ждать": можно ждать синхронно, а можно ждать асинхронно. Причем синхронное ожидание внешне никак не отличается от "не ждать". Это разделение не только замусоривает и заставляет делать два варианта функций, но и очень часто приводит к ошибкам, когда внутри асинхронной функции случайно вызвали сихронное ожидание. Хуже всего, что оно даже будет корректно работать, но под нагрузкой выжрет все треды в пуле и приложение встанет коломN>Получается если не нужно ждать результата функции — пишем наоборот — nowait. Если ждать результат — ничего не пишем, по умолчанию.
T>>А по факту весь код в го чистый без async/await мусора и по умолчанию асинхронный.
N>Религией попахивает. "Еxplicit is better then implicit", как мы знаем.
Все максимально explicit:
foo() — ждем
go foo() — не ждем
Все, больше вариантов нет