🚨 NEWS: JavaScript ES2024 — Nuove Feature, Performance e Casi d'Uso per Sviluppatori

Ecco i punti chiave in breve:
💡 Perché aggiornare il tuo JavaScript a ES2024?Ti è mai capitato di aprire una web app e sentire quel secondo e mezzo di attesa? Succede quando il codice JavaScript è scritto con tecniche di dieci anni...

🚀 LINK: https://meteoraweb.com/sviluppo-di-siti-web/javascript-es2024-nuove-feature-performance-e-casi-duso-per-sviluppatori

#eS2025 #javaScriptES2024 #asyncAwait #eSModules #webWorkers

JavaScript ES2024 — Nuove Feature, Performance e Casi d'Uso per Sviluppatori

Scopri le novità di JavaScript ES2024 e ES2025: async/await, moduli, Web Workers, performance e come aggiornare il tuo stack senza perdere fatturato.

Meteora Web

Episode 30 of @RuntimeArguments is live at RuntimeArguments.fm — "Available compute: way more than you need, right up until you need it." Wolf @YesJustWolf leads a deep dive into why almost every program you've ever written has wasted most of the hardware it runs on, while Jim @jammcq brings the infrastructure angle on what happens when one machine genuinely isn't enough. Concurrency and parallelism aren't the same answer — maybe they aren't even the same problem. This episode maps the whole stack from SIMD up through goroutines, async/await, and actor models, takes a hard look at GPU transfer costs (and why Apple Silicon sidesteps them for some kinds of problems), and lands on the one truth that unites everything: shared state is your enemy.

As always, we want to know what you think:

[email protected]

https://www.buzzsprout.com/2469780/19333401-30-available-compute-way-more-than-you-need-right-up-until-you-need-it

#Podcast #TechPodcast #Concurrency #Parallelism #Python #Go #Rust #AsyncAwait #GPU #AppleSilicon #PerformanceEngineering #SoftwareDevelopment

Одна строчка .Result роняет ваш ASP.NET Core при CPU 8 %: разбор hill-climbing в .NET 9

TL;DR. Один «безобидный» foo.GetAsync().Result в middleware способен превратить ASP.NET Core, державший 50k RPS с p99 = 40 мс, в сервис с 12k RPS и p99 = 4 с — при CPU 8 %. Виноват не сам blocking call, а hill-climbing — фидбэк-луп в ThreadPool, в недрах которого живёт дискретное преобразование Фурье. Разбираем по исходникам CoreCLR, почему это вообще возможно, воспроизводим эффект на ~80 строках кода и разбираемся, почему SetMinThreads — не решение, а анестезия.

https://habr.com/ru/articles/1040804/

#threadpool #hillclimbing #asyncawait #net9 #aspnetcore #starvation #configureawait #taskresult #bulkhead #setminthreads

Одна строчка .Result роняет ваш ASP.NET Core при CPU 8 %: разбор hill-climbing в .NET 9

TL;DR. Один foo.GetAsync().Result внутри middleware превращает ASP.NET Core, державший 50k RPS на p99 = 40 мс, в сервис на 12k RPS с p99 = 4 с при CPU 8 %. Виноват не блокирующий вызов сам по себе....

Хабр

So the caller must await too. Ah no, rather return-immediately-with-a-fucking-promise. And so the caller's caller too and so on.

Now you hardly have a function call not preceded by await. Ask yourself: why is that not the default? For the other case, lets invent the keyword **getlost** to get the functionality we now have if we forget await.

😡 Sorry for venting. It is a relief.

#javascript #typescript #async #await #asyncawait

Because that's what it actually is. It does not wait at all. Quite contrary, it returns immediately, throwing the rest of the function code into a pool of stuff to be executed some day.

And the caller? Getting control back before things are really done? Without extra tooling the dev easily misses that the called async did exactly nothing and lets proceed the code as if. Fail!

2/n

#javascript #typescript #async #await #asyncawait

TypeScript is fun, but often I hate the JavaScript async/await crap.

Background: https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/

Async is like mold spreading through the code base. On top of it: why is it called **await** and not **return-immediately-with-a-fucking-promise**? ...

1/n

#javascript #typescript #async #await #asyncawait

What Color is Your Function? – journal.stuffwithstuff.com

Как старый роутер съел 2.5 ГБ ОЗУ в моей вкладке, или cетевой инфаркт асинхронного кода

Интро Это история о том, как «кривой» роутер научил меня смотреть на память браузера иначе. Есть вкладка с ИИ-чатом, есть WebSocket/Streaming, есть обычный i5. И есть момент, когда все это превращается в кирпич: вкладка раздувается до гигабайтов, процессор залипает, страница оживает только на пару минут после перезагрузки. Лид Проблема оказалась не в нейросетях и не в JS. Виновник — старый домашний роутер, который не вывозил IPv6 и фрагментацию. Итог — застрявшие пакеты, нарастающий буфер в браузере и тысячи незавершенных async/await -машин в памяти. TL;DR - Вкладка с WebSocket раздувается из-за сетевых затыков. - Роутер ломает MTU/IPv6, пакеты зависают, bufferedAmount растет. - Асинхронные цепочки не завершаются и копятся в Heap. - Фикс: MTU 1400 + отключение IPv6. - В коде: мониторинг bufferedAmount , таймауты и AbortController . Симптом - Вкладка с ИИ-чатом пухнет до 1–2.5 ГБ. - CPU уходит в 100%, интерфейс замирает. - Перезагрузка помогает на 5 минут, дальше все повторяется.

https://habr.com/ru/articles/988398/

#websocket #javascript #network #performance #asyncawait #memory

Как старый роутер съел 2.5 ГБ ОЗУ в моей вкладке, или cетевой инфаркт асинхронного кода

Интро Это история о том, как «кривой» роутер научил меня смотреть на память браузера иначе. Есть вкладка с ИИ-чатом, есть WebSocket/Streaming, есть обычный i5. И есть момент, когда все это...

Хабр

How do structured and unstructured tasks behave differently when cancelled in Swift? This breakdown of 𝑎𝑠𝑦𝑛𝑐/𝑎𝑤𝑎𝑖𝑡 task lifetimes clarifies cancellation behavior in Swift's concurrency system.

🔗: https://tanaschita.com/swift-async-tasks-cancellation-asyncstream by Natascha Fadeeva (@tanaschita)

#Swift #Concurrency #AsyncAwait

Understanding task cancellation and lifetimes in Swift concurrency

Swift automatically manages the lifetime and cancellation of structured tasks, but unstructured and detached tasks behave differently. In this article, we look at how cancellation propagates, when tasks outlive their scope, and how to manage them safely.

Confused about when to use 𝑇𝑎𝑠𝑘.𝑠𝑙𝑒𝑒𝑝() versus 𝑇𝑎𝑠𝑘.𝑦𝑖𝑒𝑙𝑑()? Wesley de Groot clears up the confusion, explaining the critical difference between fixed-duration suspension (sleep) and voluntary control yielding (yield). Essential knowledge for managing Swift concurrency effectively.

🔗: https://wesleydegroot.nl/blog/task-sleep-vs-task-yield-the-differences-explained by 𝗪𝗲𝘀𝗹𝗲𝘆 𝗱𝗲 𝗚𝗿𝗼𝗼𝘁

#Swift #Concurrency #AsyncAwait

Task.sleep() vs. Task.yield(): The differences explained - Wesley de Groot

Task.sleep() vs. Task.yield() The differences explained What is Task.sleep()? With Task.sleep(), you can suspend the execution of a task for a specified duration. This is useful when you want to introduce a delay in your asynchronous code, such as waiting for a certain condition to be met or simulating a long-running operation. What is Task.yield()? With Task.yield(), you can voluntarily yield control back to the ...

🛠️🎉 #Zig finally got its Async/Await back! 🙄 The world's most anticipated feature for a #language no one's heard of—because, obviously, we don't have enough async/await in other languages. 😂 But hey, #compiling from the master branch makes you a real programmer, right? 🤓✨
https://charlesfonseca.substack.com/p/asyncawait-is-finally-back-in-zig #AsyncAwait #Programming #DeveloperHumor #HackerNews #ngated
Async/Await is finally back in Zig

What changed, why it matters, and how to use the new API.

Charles Fonseca's Substack