In terms of being a platform for applications, the browser landscape today is paradise on earth compared to the hellscape we endured in the early 2000s while trying to develop apps for IE6.
Just focussing on the browser itself:
* Today's developers enjoy a large and rich platform of (relatively) bug free functionality and APIs on which to build. The hellscape had very limited APIs and were riddled with bugs. For a long time IE and the other browsers didn't even agree on how to compute the width/height of an element w.r.t. padding and borders. (CSS box-models did not match!). We spent a lot of time just working around bugs and keeping up to date on the latest work-arounds for all the problems.
* Today's browsers have high performance JS JITs with very few user visible bugs. The hellscape had slow buggy JS implementations. I remember having to unregister event handlers on page unload otherwise the browser would leak memory.
* Today's browsers have excellent debugging tools built in. In the hellscape, if you had a trailing comma in a JS list on IE, it would give an error message (pop up) with either no file and line number or a bogus one. Yes, that bad.
Even when supporting just one browser, development was often a miserable experience. MS had won the browser war and was trying to kill the idea of apps on the web by neglect. It wasn't until Firefox got going that things improved.