HTML has its roots in an earlier markup language called SGML (which was based upon another markup language called GML which dates back to the 1960s). SGML was a document markup language with the express purpose of taking document based content, and marking up that content for use and interpretation by other applications. SGML was not (in and of itself) intended to be a formatting language for documents. Formatting was handled externally to SGML through the use of Document Type Definitions (DTDs) and style sheets.
HTML itself was created in the early 1990s as a simplified set of SGML commands. It was created with the same basic goal of SGML in mind- content marked up for interpretation not necessarily for formatting. The HTML subset of SGML consisted of a small library of simple markup functions to make the communication and exchange of data easy among those scientists and engineers utilizing a network of computers that would eventually become the world-wide-web.
As the world-wide-web became more and more mainstream, web-designers and browser programmers began adding more and more markup functions that dealt with formatting to HTML. Tags such as "bold", "italics", "center" began to appear.
Soon, HTML became a mess of tags and custom interpretations. Netscape has it's "blink" tag which does not work under Microsoft's IE. IE has its own way of embedding Microsoft applications. Etcetra, etcetra. The maintenance and upkeep of simple HTML documents soon became nightmarish, as did the futile effort to ensure that your HTML document was formatted the same across platforms and applications.