Problems: HTML is terrible, HyperCard or other markup languages outdo it in ease of use and metaphorical power.
JavaScript is the worst programming language I’ve ever seen.
HTTP lacks built in security, so it has to be tacked on afterwards, making the web 4–5 x slower than it should be, and makes embedding problematic.
This is the case because Andreesen and co were amateurs, or worse than amateurs. It only works at all because the underlying Internet was written by top programmers, mainly in the military.
Imagine if you could just drag n drop a Word document into a page, and someone with LibreOffice could directly edit it (or a spreadsheet or presentation). If web applications could scale beyond a small cluster. If a decent client side programming language could be used for client/server applications. For that though you need a distributed object model and a decent embedding technology.
Better, rather than just imagining it, go to the Wayback Machine and download OS/2 v. 4.5.2, install it in VirtualBox on your PC.
Now download the Developer Connection CD’s (release 12 is a good start) and see how DSOM enables scaling distributed web apps, provides the ability to use C++ or Smalltalk for both client and server (the VisualAge IDE for both is on the CD’s), and underlies the best embedding technology to date, OpenDoc. Try out a few examples, see how well it all plays together. OpenDoc was fully supported by Apple as well.
All these were given up because M$ wouldn’t play, and the web had gotten along to some glitchy degree without them, but they did and do exist. And if Apple and IBM won’t release the code, it would be easier to redo than to do it the first time.