March 2015

HTML is a data structure

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.