I'm just concerned about speed. Diffing works ok for forms but charts with 1000s of elements... let's see.
As someone who has worked with D3 and React a lot, D4 makes a lot of sense.
And the name is great!
- vs -
Declaring 'how' this structure is created
selection.enter().append("div").attr("class", "bar") .style("height", function(d){ return d + "px"; }) .style(“margin-top”, function(d){ return (100 — d) + "px"; });
enter is not imperative, but what you write just afterwards is.
It's an active verb and seems to imply an imperative style. Except it's actually declarative. The problem with d3 is that it takes a declarative system and gives it an imperative-looking API.