Сообщение Зачем нам асинхронность? от 05.08.2020 0:14
Изменено 05.08.2020 11:55 Kolesiki
Зачем нам асинхронность?
Ребят, тема на подумать, "вы не решайте сгоряча"!
Зачем нам нужна асинхронность? (в контексте GUI программ, взаимодействующих с юзером)
Весь принцип работы юзера — это некий экшн (клик, нажатие) и исполнение средой соотв. команды.
MS просто из кожи вылезла, доказывая нам, какое она "бобро" сотворила, наворотив своих async/await. Даже API везде искорёжила в угоду "новому тренду".
А я вот так смотрю на работу программы и не вижу в этом никакого смысла.
Заметьте — я ничего не говорю про мультипоточность — она нужна, хотя опять же, далеко не везде.
Но вот async?...
Пусть это будет команда Save. Мы нажали, асинхронно вышли из метода, куда-то даже полезли нажимать другие команды, а save всё ещё работает! Хуже того — у неё могут возникнуть проблемы!
Ну и вот какой смысл "не ждать завершения команды", если всё равно тебе прилетит по лбу? Хуже того — ты понадеялся на УСПЕШНЫЙ сэйв, а документ уже испортил!
По-моему, даже если команда выполняется "долго" (1+ секунд), нет вообще никакого смысла скрывать её за "отзывчивым интерфейсом", потому что если мы командуем, мы ждём РЕЗУЛЬТАТА команды!
Более того — если подразумевается ещё более долгая работа (5+ секунд), такие действия должны заворачиваться в "диалог прогресса + немедленной отмены". Зачем тут async?
У меня со времён этой "распеаренной асинхронщины" была куча ГУЁВ, я даже пытался что-то наасинхронить (типа "долгая работа с Тырнетом"), но вот факт тот, что ВООБЩЕ НИГДЕ эта асинхронность не лезла!
Если ты работаешь и у тебя проблема, ты НЕ МОЖЕШЬ продолжать работу. Ты должен дождаться результата операции, и только если она успешна — продолжать тыкать куда-то ещё.
Я понимаю, что сейчас высказался всего лишь про собственный опыт (ну а как ещё??), но вот именно опыт и есть та проверка "теории", которая была "гладка на бумаге".
Мне опыт говорит, что это всё переоценённое фуфло. Но если у вас есть прям идеальные случаи под async, не поленитесь, черкните ваш случай!
Спасибо!
Зачем нам нужна асинхронность? (в контексте GUI программ, взаимодействующих с юзером)
Весь принцип работы юзера — это некий экшн (клик, нажатие) и исполнение средой соотв. команды.
MS просто из кожи вылезла, доказывая нам, какое она "бобро" сотворила, наворотив своих async/await. Даже API везде искорёжила в угоду "новому тренду".
А я вот так смотрю на работу программы и не вижу в этом никакого смысла.
Заметьте — я ничего не говорю про мультипоточность — она нужна, хотя опять же, далеко не везде.
Но вот async?...
Пусть это будет команда Save. Мы нажали, асинхронно вышли из метода, куда-то даже полезли нажимать другие команды, а save всё ещё работает! Хуже того — у неё могут возникнуть проблемы!
Ну и вот какой смысл "не ждать завершения команды", если всё равно тебе прилетит по лбу? Хуже того — ты понадеялся на УСПЕШНЫЙ сэйв, а документ уже испортил!
По-моему, даже если команда выполняется "долго" (1+ секунд), нет вообще никакого смысла скрывать её за "отзывчивым интерфейсом", потому что если мы командуем, мы ждём РЕЗУЛЬТАТА команды!
Более того — если подразумевается ещё более долгая работа (5+ секунд), такие действия должны заворачиваться в "диалог прогресса + немедленной отмены". Зачем тут async?
У меня со времён этой "распеаренной асинхронщины" была куча ГУЁВ, я даже пытался что-то наасинхронить (типа "долгая работа с Тырнетом"), но вот факт тот, что ВООБЩЕ НИГДЕ эта асинхронность не лезла!
Если ты работаешь и у тебя проблема, ты НЕ МОЖЕШЬ продолжать работу. Ты должен дождаться результата операции, и только если она успешна — продолжать тыкать куда-то ещё.
Я понимаю, что сейчас высказался всего лишь про собственный опыт (ну а как ещё??), но вот именно опыт и есть та проверка "теории", которая была "гладка на бумаге".
Мне опыт говорит, что это всё переоценённое фуфло. Но если у вас есть прям идеальные случаи под async, не поленитесь, черкните ваш случай!
Спасибо!
Зачем нам асинхронность?
Ребят, тема на подумать, "вы не решайте сгоряча"!
Зачем нам нужна асинхронность? (в контексте GUI программ, взаимодействующих с юзером)
Весь принцип работы юзера — это некий экшн (клик, нажатие) и исполнение средой соотв. команды.
MS просто из кожи вылезла, доказывая нам, какое она "бобро" сотворила, наворотив своих async/await. Даже API везде искорёжила в угоду "новому тренду".
А я вот так смотрю на работу программы и не вижу в этом никакого смысла.
Заметьте — я ничего не говорю про мультипоточность — она нужна, хотя опять же, далеко не везде.
Но вот async?...
Пусть это будет команда Save. Мы нажали, асинхронно вышли из метода, куда-то даже полезли нажимать другие команды, а save всё ещё работает! Хуже того — у неё могут возникнуть проблемы!
Ну и вот какой смысл "не ждать завершения команды", если всё равно тебе прилетит по лбу? Хуже того — ты понадеялся на УСПЕШНЫЙ сэйв, а документ уже испортил!
По-моему, даже если команда выполняется "долго" (1+ секунд), нет вообще никакого смысла скрывать её за "отзывчивым интерфейсом", потому что если мы командуем, мы ждём РЕЗУЛЬТАТА команды!
Более того — если подразумевается ещё более долгая работа (5+ секунд), такие действия должны заворачиваться в "диалог прогресса + немедленной отмены". Зачем тут async?
У меня со времён этой "распеаренной асинхронщины" была куча ГУЁВ, я даже пытался что-то наасинхронить (типа "долгая работа с Тырнетом"), но вот факт тот, что ВООБЩЕ НИГДЕ эта асинхронность не лезла!
Если ты работаешь и у тебя проблема, ты НЕ МОЖЕШЬ продолжать работу. Ты должен дождаться результата операции, и только если она успешна — продолжать тыкать куда-то ещё.
Я понимаю, что сейчас высказался всего лишь про собственный опыт (ну а как ещё??), но вот именно опыт и есть та проверка "теории", которая была "гладка на бумаге".
Мне опыт говорит, что это всё переоценённое фуфло. Но если у вас есть прям идеальные случаи под async, не поленитесь, черкните ваш случай!
Спасибо!
UPD
Как и ожидал, несмотря на тонны материалов по thread и async, некоторые до сих пор думают, что это одно и то же.
Зачем нам нужна асинхронность? (в контексте GUI программ, взаимодействующих с юзером)
Весь принцип работы юзера — это некий экшн (клик, нажатие) и исполнение средой соотв. команды.
MS просто из кожи вылезла, доказывая нам, какое она "бобро" сотворила, наворотив своих async/await. Даже API везде искорёжила в угоду "новому тренду".
А я вот так смотрю на работу программы и не вижу в этом никакого смысла.
Заметьте — я ничего не говорю про мультипоточность — она нужна, хотя опять же, далеко не везде.
Но вот async?...
Пусть это будет команда Save. Мы нажали, асинхронно вышли из метода, куда-то даже полезли нажимать другие команды, а save всё ещё работает! Хуже того — у неё могут возникнуть проблемы!
Ну и вот какой смысл "не ждать завершения команды", если всё равно тебе прилетит по лбу? Хуже того — ты понадеялся на УСПЕШНЫЙ сэйв, а документ уже испортил!
По-моему, даже если команда выполняется "долго" (1+ секунд), нет вообще никакого смысла скрывать её за "отзывчивым интерфейсом", потому что если мы командуем, мы ждём РЕЗУЛЬТАТА команды!
Более того — если подразумевается ещё более долгая работа (5+ секунд), такие действия должны заворачиваться в "диалог прогресса + немедленной отмены". Зачем тут async?
У меня со времён этой "распеаренной асинхронщины" была куча ГУЁВ, я даже пытался что-то наасинхронить (типа "долгая работа с Тырнетом"), но вот факт тот, что ВООБЩЕ НИГДЕ эта асинхронность не лезла!
Если ты работаешь и у тебя проблема, ты НЕ МОЖЕШЬ продолжать работу. Ты должен дождаться результата операции, и только если она успешна — продолжать тыкать куда-то ещё.
Я понимаю, что сейчас высказался всего лишь про собственный опыт (ну а как ещё??), но вот именно опыт и есть та проверка "теории", которая была "гладка на бумаге".
Мне опыт говорит, что это всё переоценённое фуфло. Но если у вас есть прям идеальные случаи под async, не поленитесь, черкните ваш случай!
Спасибо!
UPD
Как и ожидал, несмотря на тонны материалов по thread и async, некоторые до сих пор думают, что это одно и то же.