I think it's generally caused by a few issues: 1. UI development is hard to do well. Throughout my career I've seen complexity explosions in C++/Win32, C#/WPF, and JS UIs so this isn't a new phenomenon 2. It's always easy to develop the correct UI in hindsight once all the requirements are known. When starting out it's hard to know what will be needed or not and this leads to overly complex solutions 3. The browser a…
This is pretty accurate. I would rank your issues a little differently though.
I think what's different here from other front end development are items 4 and 3.
So 4, 3, 1, 2; I guess.