Regarding the "HTML is (not) a programming language" thing, all I can say is: Why give a shit?
It doesn't change anything about how HTML works or its challenges. It's just juggling around labels. Laugh people in their face if they go "but _ isn't a programming language, so you aren't really programming." Free yourself from the shackles of allowing labels to hold power over you. Just do your thing.