"Здравствуйте, Мурич! Спасибо вам за всё! Благодаря вам я понял, как работает 'this'. И хотел бы, чтобы вы сняли учебное видео на тему 'Асинхронность'. Если вам не трудно, спасибо!"
Мурыч, а можете рассказать про requestIdleCallback подробнее на стриме или отдельном видосе? Кажется, это одна из покрытых мифами тем, и эту апиху мало используют, хотя она очень полезна.
Уважуха Мурычу - знаний туча. Однако есть организационные моменты. Например, аналогия с ДВС. Я, конечно, тоже могу не понимать чего-то, но... Говоря, что сам по себе язык не работает, а должен встраиваться куда-то, при этом ecma предъявляет требования к тому, как должна выглядеть хост-среда, чтобы синтаксис мог быть реализован в полном объеме , то это не ДВС, не куча проводов и пр. И многопоточность, асинхронность и т.д. - это свойства (элементы) хост-среды (а не языка, который сам по себе ничего не может), которые должны поддаваться управлению со стороны набора команд, заложенных в ecma. Формально говоря, если внешняя среда не даст - язык не сможет. Как в случае сервисов, которые внутренне неправильно, или не полностью реализуют положения ecma. Тут, скорее, понятнее сравнивать, например, BMW с Lifan-ом, например: те же круглые колеса, похожие по форме сидения, есть ДВС ,бензобак(!), ABS и пр. Но только вот едет не так, да и чувства от вождения не те. Вообще, на мой взгляд, нелогично говорить о функциональности ЯЗЫКА, который без хост-среды ничего не может. Это всё-таки следует рассматривать в контексте предоставляемых средой возможностей
Мурыч, не бомби ты так. Ну не правы и не правы, подумаешь. Мы предельно признательны, что ты нам доносишь истину. Но и здоровье твоё сообществу важно 😊
Очевидно, так и есть, но ведущий стрима в силу специфики своей деятельности поправляет и такие моменты, поскольку занимается прям таки академическим комментированием
- Все что в спеке - должно быть реализовано - В спеке явным образом определены асинхронные функции - Асинхронные функции -- это механизм реализации асинхронного программирование - Следовательно, в JS асинхронность обязана быть реализована. Ни один рантайм не может обойти этот момент А вообще, завбавно, что люди всерьез спорят, есть ли там асинхронность или нет. Найдите мне хоть один рантайм, который не поддерживает асинхронность? Таких нет. Вот когда будут - тогда и поговорим. А поэтому пока что утверждение "JS имеет асинхронность" является правдивым
С моей точки зрения этот урок ШРИ опасен тем, что он навязывает начинающим конкретную физическую реализацию исполнения асинхронных задач d JS, и призывает использовать это знание в своих проектах, что чревато полным обрушением архитектуры не только при смене HOST среды JS, но и просто после серьезного обновления браузера. Это просто бомба замедленного действия для проекта и для "умения" программиста. Асинхронность есть асинхронность писать надо так чтоб от последовательности ничего не зависело иначе в лучшем случае длинные weekend-ы отладки на milestone-ах.
Мне другое непонятно: что не так с кодом, который обзывают "адским"? Он по структуре напоминает html вложенные узлы и его выполнение, как и структура наглядны и понятны. В то же время, когда его преобразовывают во что-то, выглядящее как последовательное выполнение команд, но при этом представляет передачу ссылок на вложенные друг в друга функции - то код становится максимально неинтуитивным, и даже вводящим в заблуждение при беглом взгляде.
Мурыч, ты чё такой душный? Доебался, до слов, кто когда в какой последовательности выполниться. Понятно, что хост среда, решает и управляет Execution Context Stack, но, всё равно, приоритет выполнения регламентирован, в случае setTimeout, queueMicrotask и promise и ещё ряд есть других функции API браузера. Утверждение, о том, что на профессионализм JS разработчика не влияет, что и в какой "последовательности выполняется", очень опрометчивое. В примере, Григория, последовательность вывода сообщений, однозначно определен. К примеру, если бы это был не просто вывод, а вычисление, то, очень повлияло бы на результат, а реальных примеров, где одновременно используется Promise и setTimeout (setInterval) можно привести очень много. upd. При всем уважении, Максим, но, почему вы считаете, что задача стоит, в том, что бы асинхронный код, нужно выстроить синхронно, а не правильнее ли задачу, сформулировать, так: "Имея асинхронное выполнение чего-то, почему мы получаем, то результат который получаем?" upd2. Ну в самом деле, например, задача "Request collector". Если более конкретизировать, есть асинхронный протокол обмена данными, нужно построить сделать синхронный (инкапсулировать socket в http)
_В примере, Григория, последовательность вывода сообщений, однозначно определен. К примеру, если бы это был не просто вывод, а вычисление, то, очень повлияло бы на результат, а реальных примеров, где одновременно используется Promise и setTimeout (setInterval) можно привести очень много._ Приведите хотя бы один. Вы не сможете, по той причине, что в асинхронной среде время формирования результата вычисления - недетерменировано. Именно по этой причине используется Promise then then then. Как следствие попытки спрашивать о том, в какой последовательность будет выполняться setTimeout Promise resolve RequestIdleCallBack является идиотией. Так как Вы не МОЖЕТЕ спрогнозировать их время вычисления. И именно по этой причине дается механизм, который вне зависимости от времени вычисления - гарантирует Вам нужную последовательность вычислений - механизм Promise -ов
> в какой последовательность будет выполняться setTimeout Promise resolve RequestIdleCallBack является идиотией. в какой последовательности выполняться будут setTimeout, Executor promise и прочее, является действительно идиотией, а вот выполнение их callback функции или resolve в случае promise, это вопрос другой, они выполняться в ОПРЕДЕЛЕННОЙ последовательности, при ОДНОВРЕМЕННОМ наступлении события их выполнения. (Давайте только не душнить, про агентов, многопоток и прочее), среда выполнения кода chrome в дефолтной настройке. > Приведите хотя бы один. Promise у которого есть N секунд, что бы стать resolve иначе reject. или Выполнение какого-то действия через 10 секунда, если не наступило определенное событие. Давайте тоже не душнить, что задачу, можно решить более правильно если знать всю "машинарию" хост среды.
Григорий Бизюкин, о как же я рад!
Григорий Бизюкин, меняет расклад!
Григорий Бизюкин, вещает как Бог!
Григорий Бизюкин, ты вырасти смог!
"Здравствуйте, Мурич! Спасибо вам за всё! Благодаря вам я понял, как работает 'this'. И хотел бы, чтобы вы сняли учебное видео на тему 'Асинхронность'. Если вам не трудно, спасибо!"
Спасибо что Вы с Нами!!!! Очень Оптимизирующие взгляды и подходы!!! Ещё раз Спасибо!!!
- JS, ты асинхронный?
- I Promise.
Несколько раз услышал у Григория фразу "Машинерия" которую я до этого часто слышал только от Мурыча... Забавное совпадение (:
Совпадение? Не думаю 😂
тот самый момент когда поднял скорость воспроизведения до 1.25 а потом господин Мурыч еще добавили газку!
Kyle Simpson: "You Don't Know JS".
Murych: "No, you!".
Похоже Григорий прислушался к коментариям Мурыча. У него (Григория) радости в глазах поубавилось, а седены в бороде прибавилось.
❤ с неизменным уважением, здоровья
Я бы начинал рассказы про асинхронность со свойства конкуррентности ( concurrency ).
Мурыч, а можете рассказать про requestIdleCallback подробнее на стриме или отдельном видосе? Кажется, это одна из покрытых мифами тем, и эту апиху мало используют, хотя она очень полезна.
Спасибо за стрим, сделайте пожалуйста подробный разбор многопоточности в JS если будет желание, спасибо. Привет из Киева
Люди, помогите найти таймкод, как Мурыч говорил про базу для начинающего разработчика. На стриме отвлекли меня, думал что потом найду, а ни как (
Уважуха Мурычу - знаний туча. Однако есть организационные моменты. Например, аналогия с ДВС. Я, конечно, тоже могу не понимать чего-то, но... Говоря, что сам по себе язык не работает, а должен встраиваться куда-то, при этом ecma предъявляет требования к тому, как должна выглядеть хост-среда, чтобы синтаксис мог быть реализован в полном объеме , то это не ДВС, не куча проводов и пр. И многопоточность, асинхронность и т.д. - это свойства (элементы) хост-среды (а не языка, который сам по себе ничего не может), которые должны поддаваться управлению со стороны набора команд, заложенных в ecma. Формально говоря, если внешняя среда не даст - язык не сможет. Как в случае сервисов, которые внутренне неправильно, или не полностью реализуют положения ecma. Тут, скорее, понятнее сравнивать, например, BMW с Lifan-ом, например: те же круглые колеса, похожие по форме сидения, есть ДВС ,бензобак(!), ABS и пр. Но только вот едет не так, да и чувства от вождения не те. Вообще, на мой взгляд, нелогично говорить о функциональности ЯЗЫКА, который без хост-среды ничего не может. Это всё-таки следует рассматривать в контексте предоставляемых средой возможностей
Мурыч, не бомби ты так. Ну не правы и не правы, подумаешь. Мы предельно признательны, что ты нам доносишь истину. Но и здоровье твоё сообществу важно 😊
Видео светлой памяти Григория Бизюкина
на 38 минуте мне кажется, что Григорий имел в виду не обновление интерфейса браузера, а обновление интерфейса веб-приложения
Очевидно, так и есть, но ведущий стрима в силу специфики своей деятельности поправляет и такие моменты, поскольку занимается прям таки академическим комментированием
3:11:50
let a = {
then: () => 'i am a promise, lol'
};
console.debug(a instanceof Promise);
таки false (в Node.js и в хроме)
13:07 а это специальное издание короткомертажи "Асинхронность" с комментариями режиссёра.
И такие Григории работают в Яндексе
ГРИГОРИЙ БИЗЮЮКИН
- Это нельзя просто так: ля-ля-ля-ля-ля - и проигнорировать. Это нужно знать и понимать. (с) Мурыч
great video
- Все что в спеке - должно быть реализовано
- В спеке явным образом определены асинхронные функции
- Асинхронные функции -- это механизм реализации асинхронного программирование
- Следовательно, в JS асинхронность обязана быть реализована. Ни один рантайм не может обойти этот момент
А вообще, завбавно, что люди всерьез спорят, есть ли там асинхронность или нет. Найдите мне хоть один рантайм, который не поддерживает асинхронность? Таких нет. Вот когда будут - тогда и поговорим. А поэтому пока что утверждение "JS имеет асинхронность" является правдивым
как нет, а под esp32?
@@ndiscovery я отказываюсь признавать испльзование js для железа!
Всё видео не понимал, Мурыч на ускоренном смотрит или нет. Пошёл в оригинал, оказалось на ускоренном. Ждём ответочки от Бизюкина.
Просто ору когда Мурыч комментирует викторины 🤣
я: поднял скорость просмотра видео до 1.5
Мурыч: поднял скорость видео в видео до 1.25
XD
Походу Григорий все таки получил доступ к gpt 4
Мурыч и Брендан Эйх - единственные люди, которые действительно знают, как работает JS, хотя в последнем я сомневаюсь
Мурыч явно шарит в JS, но вот во всём остальном - как все узкие специалисты - часто просто фейпспалм...
Мурыч скажи зачем разделили таски на таски и микротаски?
С моей точки зрения этот урок ШРИ опасен тем, что он навязывает начинающим конкретную физическую реализацию исполнения асинхронных задач d JS, и призывает использовать это знание в своих проектах, что чревато полным обрушением архитектуры не только при смене HOST среды JS, но и просто после серьезного обновления браузера. Это просто бомба замедленного действия для проекта и для "умения" программиста. Асинхронность есть асинхронность писать надо так чтоб от последовательности ничего не зависело иначе в лучшем случае длинные weekend-ы отладки на milestone-ах.
Мне другое непонятно: что не так с кодом, который обзывают "адским"? Он по структуре напоминает html вложенные узлы и его выполнение, как и структура наглядны и понятны. В то же время, когда его преобразовывают во что-то, выглядящее как последовательное выполнение команд, но при этом представляет передачу ссылок на вложенные друг в друга функции - то код становится максимально неинтуитивным, и даже вводящим в заблуждение при беглом взгляде.
А вышиванку зачем надел? Чтобы фраза "смузиеб детектыд" показалась максимально токсичной?
Мурыч, ты чё такой душный? Доебался, до слов, кто когда в какой последовательности выполниться.
Понятно, что хост среда, решает и управляет Execution Context Stack, но, всё равно, приоритет выполнения регламентирован, в случае setTimeout, queueMicrotask и promise и ещё ряд есть других функции API браузера.
Утверждение, о том, что на профессионализм JS разработчика не влияет, что и в какой "последовательности выполняется", очень опрометчивое.
В примере, Григория, последовательность вывода сообщений, однозначно определен. К примеру, если бы это был не просто вывод, а вычисление, то, очень повлияло бы на результат, а реальных примеров, где одновременно используется Promise и setTimeout (setInterval) можно привести очень много.
upd. При всем уважении, Максим, но, почему вы считаете, что задача стоит, в том, что бы асинхронный код, нужно выстроить синхронно, а не правильнее ли задачу, сформулировать, так: "Имея асинхронное выполнение чего-то, почему мы получаем, то результат который получаем?"
upd2. Ну в самом деле, например, задача "Request collector". Если более конкретизировать, есть асинхронный протокол обмена данными, нужно построить сделать синхронный (инкапсулировать socket в http)
_В примере, Григория, последовательность вывода сообщений, однозначно определен. К примеру, если бы это был не просто вывод, а вычисление, то, очень повлияло бы на результат, а реальных примеров, где одновременно используется Promise и setTimeout (setInterval) можно привести очень много._
Приведите хотя бы один.
Вы не сможете, по той причине, что в асинхронной среде время формирования результата вычисления - недетерменировано. Именно по этой причине используется Promise then then then.
Как следствие попытки спрашивать о том, в какой последовательность будет выполняться setTimeout Promise resolve RequestIdleCallBack является идиотией. Так как Вы не МОЖЕТЕ спрогнозировать их время вычисления. И именно по этой причине дается механизм, который вне зависимости от времени вычисления - гарантирует Вам нужную последовательность вычислений - механизм Promise -ов
> в какой последовательность будет выполняться setTimeout Promise resolve RequestIdleCallBack является идиотией.
в какой последовательности выполняться будут setTimeout, Executor promise и прочее, является действительно идиотией, а вот выполнение их callback функции или resolve в случае promise, это вопрос другой, они выполняться в ОПРЕДЕЛЕННОЙ последовательности, при ОДНОВРЕМЕННОМ наступлении события их выполнения.
(Давайте только не душнить, про агентов, многопоток и прочее), среда выполнения кода chrome в дефолтной настройке.
> Приведите хотя бы один.
Promise у которого есть N секунд, что бы стать resolve иначе reject.
или
Выполнение какого-то действия через 10 секунда, если не наступило определенное событие.
Давайте тоже не душнить, что задачу, можно решить более правильно если знать всю "машинарию" хост среды.
Слава Украине!
Какая же у этого Бизюкина мимика противная.
В Яндексе все такие