AMP is also literally breaking internet. People share google.com/amp links,sometimes there'd be no preview and hard telling what the actual website being linked is.
It's a resource problem. The average website is in megabytes(that's expensive in emerging markets), loads lots of JavaScript on small devices draining battery.
Even if we take Louis CK's standard, a lot of sites would take more than 10 seconds on 3g. From a webdev point of view this is unacceptable.
That's quote ,a library that generates code for you at compile time ,it takes code as input,has it's own syntax. It's like compile-time reflection.
It's not code rust programmers would normally write, I'm one of those programmers. I'm glad some libraries like serde,rocket and diesel are using it to generate code instead of doing run-time analysis.
I don't understand why the downvotes , JS is one of the most target languages. Elm,GHJS(Haskell),Purescript,Clojurescript and supersets like Typescript which come with their own toolchains.
As rust developer from a higher-level languages , I really struggled with that ,then I discovered format!() macro ,maybe they should make it more visible to new developers.
Think as an author of a function that does something that can fail .
the signature ;"fn risky_shtuff() -> Result<Response , Err)"
Rust guarantees to you as the author who ever uses this function HAS to handle both cases (even if it's an unwrap).
However Rust doesn't stop you form making functions that instead return Option ,bools or even strings ,but you'd be actively working against very strong convention.
Go promotes the pattern of dealing with errors ,which to be fair I think is an improvement on exception based handling. But rust compiler forces the user of a function to handle error .it's impossible to 'val ,_ = getValOrErr()' in Rust. You just can't ignore an error.