Yes. Web developers should be able to handle async code. However, it does not mean they should not prefer sync code over async code. There is nothing inherently wrong with async code. Async code is, however, inherently more complicated and therefore more error-prone than sync code. If there is sync alternative, why would not use it?! Yes, setState does have its merit, like batch updating UI, which should be the argument for it. Async is just the means to implement that. Async nature in itself is not really the point.