From reddit user remy porter in the thread “Is Separating HTML and JavaScript Harmful? ” we have:
The problem is that most frameworks misunderstand what HTML is.
HTML is a data structure. Specifically, it’s a semantic data-structure for holding human-readable information. It is the backing-store of a presentation layer, it is not, itself the presentation. CSS is a rule-based system for defining how to map that backing-store into actual rendering. JavaScript is a tool to manipulate that data.
The purpose of our MV- frameworks is mostly to map actual data- XML or JSON- to our HTML backing store. Their mistake is thinking of the HTML as a view- HTML does not have the concept of a “View”, and bolting the view on is awkward and leads to all sorts of tooling issues- which is mostly what the author is complaining about. These are valid complaints, but they don’t arise from separation- they arise from leaky abstractions.