| >What I fail to understand is why it's so important to you whether a pre-processing/compiler/de-sugaring of language A results in a valid snippet of language A or another language for complexity of language A. It's important because any and all code in language A is fair game when it comes to criticising semantic properties of language A. Code in other languages isn't. noncoml criticised Rust based on a piece of Rust code. My point is simply that this criticism is potentially legitimate in ways that criticising C based on a piece of assembly code could never be. I think our disagreement arises because you are asking a completely different question. What you're saying is that for devs who invoke some code it may not matter one bit whether that code was implemented in language A or language B or language A generated by language A or B. Those distinctions do not necessarily affect the semantic complexity for users of that code. I completely agree with that. I also agree that the code snippet noncoml posted does not mean using async code in Rust has to be overly complicated. But when I see a piece of Rust source code, I can criticise Rust based on it regardless of where that code came from or what purpose it serves. Someone had to think in terms of Rust in order to write that code, and it's always worth asking whether it shouldn't be possible to express the same thing in a simpler way or whether that would have been possible in another language. The fact that this code does not have to be understood by its users is completely irrelevant for this particular question. |