A comically large proportion of “AJAX”-type use of JavaScript could just be frames and probably perform better, if frames had evolved a bit rather than remaining stagnant.
Fix that and give us HTML tables with basic features built-in and datasource-backed tables + list views back in the mid ‘00s and mind-boggling amounts of time and money could have been saved.
Instead, none of that happened, and it still hasn’t.
Don’t even get me started on how much money could have been saved if the Web had adopted payment standards so that the browser itself could handle payment input.