And secondly, the whole point of development is abstraction. Instead of writing HTML, write wrapper classes that write the HTML for you. That way after a while you won't have to write HTML anymore. You just interact with the classes you've written.
Agreed, "For the most time".
The problem of abstraction is that, whenever the wrapper has bug, or being too helpful to add unwanted code that breaks your code (maybe interfering with another library you use), unless it's opensource, you'd have no way to fix it.