And: It&#x27;s true that DOM manipulation could be seen as &quot;lower level&quot; than HTML generation, but the main difference for programmers is the API.  A framework that forced you to call createNode(&#x27;b&#x27;) and createTextNode() and appendChild() would not get the adoption that one which lets you say &quot;return &#x27;&lt;b&gt;Foo&lt;&#x2F;b&gt;&#x27;, all other things being equal.