I don't see how this reply addresses the core point, it just argues that async await is useful (that's fine but not novel by itself).
It is possible to work around the "color" by using generators [0], that way one algorithm can be used in synchronous and asynchronous way. Async await tightly bind to underlying Promises.
Select a subject that will challenge you on multiple levels simultaneously, for example if you don't know Rust and microcontrollers go through this: https://japaric.github.io/discovery/
> It’d be fair to say that I could’ve written an equivalent service in Ruby in a tenth of the time it took me to write this one in Rust.
Ha, I had the same feeling when I needed to create a simple REST service that'd just process a request using command line tools. Seems easy but Rust's tooling is full of rough edges. Code completion sometimes works sometimes doesn't, cargo cannot install dependencies only (without building source) so it's not good for Dockerfile layers, etc. etc. Borrow checker is not bad at all for people that worked with languages with explicit memory management (where you do ownership tracking in your head anyway).
Long story short I spent 2 days working on the service and had 80% done but figured out the rest would take twice as much if I want this to be production quality. I scraped the project and rewritten it in node, using one or two dependencies in 2 hours.
I'll be trying Rust again surely and I'm glad that articles like this one exist!
I wonder what do they do with Service Worker updates that the browser normally does every day or so. Do they somehow block install and activate events? If not then the attacker just needs to update the worker and the history repeats.
I can second this. I wanted to write a simple provisioning tool a while ago that sets up HTTP endpoint on API Gateway and forwards the call to Lambda and the process was extremely complicated.
> The larger issue, I think, is that most open questions now are either of the "How do I do obscure thing X in framework Y under rare condition Z" variety, or beginner "Please do my homework" or "I have a bunch of things in my array it's not printing" sorts of questions.
I think it's due to the fact that the questions "in the middle" are already answered and people find them through searching. No need to and again. Only beginners (that can't search effectively) post on SO or people having rare edge cases (for which asking in SO is a last resort).
I'd like to see various serverless providers adopting this interface (Service Workers) as well. Currently AWS Lambda needs some mapping in API Gateway and a handier function. Google Cloud Functions use express-like interface and so forth.
It is possible to work around the "color" by using generators [0], that way one algorithm can be used in synchronous and asynchronous way. Async await tightly bind to underlying Promises.
[0]: https://curiosity-driven.org/promises-and-generators#decoupl...