This morning a tweet by Heydon Pickering landed in my timeline, where he quoted a text that started 10 things to learn for becoming a solid full-stack JavaScript developer, only to include a paragraph As for HTML, there's not much to learn right away and you can kind of learn as you go, but before making your frist templates, know the difference between in-line elements like <span> and how they differ from block ones like <div>.

Heydon aptly commented this with How Full Stack Development is destroying the web: a story in two pictures.(Source)

This triggered me (not his tweet, but the quoted text, which you can find here in full), and I responded with a short tweet-thread. And of course each tweet-thread should be a blog post, so here we are. :-)

I think with JS/dev and HTML there is this fundamental misconception of a programming language being superior to a markup language, thus ignoring the semantic and inherent value of the markup, just treating it as just the 'view' for the programming.

Not knowing or even ignoring the implications certain markup has is ignoring the affordances of the web's material. It is like building an elaborated factory that produces drinking glasses out of sugar, or producing cardboard firewalls.

Ultimately, you'll deliver this markup to the browser, no matter how programmed, pre build or hand written it is.

So please take good care of the markup your scripts produce and by doing that, gain advantage of what the browsers can already do for you(r web app).