I more or less made my peace with JavaScript years ago, but it took me until
pretty recently to come around to liking it.

Browsers have always been pretty good at dealing with a certain baseline of
declarative structure. I find if I think of JS as a mechanism for extending that
competence, I get along with it pretty well. Plus, as you say, it encourages
interfaces that spit out machine-readable structure instead of spewing a bunch of
presentation. I get kind of curmudgeonly about people re-implementing basic
features of the browser for no obvious gain, but there's something to be said for
the way you can now offer a payload that tweaks the behavior of a client
everyone's running anyway and then just talk structured data to it.

Whoah. I just read the first section of the d3 intro and broke my brain...

I think the thing that's making me come around on JavaScript is that we're finally seeing this as a gateway to publishing semantic data and letting people actually do stuff with data. The various JS libraries are just a "and here are a few things you might try with that data" in-between step.