:eyes: <https://johnguerra.co/reactiveWidgets/> A ...
# linking-together
j
👀 https://johnguerra.co/reactiveWidgets/ > A Reactive Visualization widget displays data and allows users to directly interact with it (e.g., select a bar in a bar chart 📊). It then emits events based on these interactions (e.g., signaling which bars are selected). > The paper presents several usage examples of the pattern, templates for implementation, and even a wrapper for facilitating the conversion of any Vega specification into a reactive widget.
k
I really like this idea, and particularly appreciate the link to Vega which seems to create a vocabulary for what was a bunch of special cases in my mind. I'm frustrated though by the format of the paper and its Observable Notebooks. I often click on things and nothing happens. Or I scroll up to find the browser unloaded the top of the page, and it takes seconds for it to come back. The whole thing feels just janky. And this form is included in the spec:
A reusable and reactive visualization widget should be.. a function that returns.. an HTML Element.
Surely a neat idea like this should be tech-independent? The web and web browsers are often held up as having accessibility benefits, but I often find complex pages to have poor accessibility. And if you don't have that, then I wish I could just go implement such charts in a plain canvas and be compliant with the spec.
developing visualization software tends to be an overwhelming task.
Each of the examples in my link above requires less than 100 lines of code. I'll suggest a lot of the overwhelm here is accidental complexity that stems from tech choices.
j
I can relay that targeting HTML/Observable is a pragmatic choice directly inspired by the success of D3. Previous frameworks like flare.json (and some others that were named but I wasn't around for, and cannot remember) were successful enough within the VIS community! But these did not see outside adoption. And John's argument was, I believe, that the very large engineering efforts / browser-tech spend behind HTML and Observable are what enabled broader community adoption. I suspect we all agree that the browser does introduce weird complexity creeps, and vary on how much we are willing to tolerate (for any given project!). I'm glad you are sharing so much of your work on LÖVE, which demonstrates that the complexity is not essential, but rather a weird mix of historical contingency and one-off requirements. Whereas the HTML spec looks more like a moving process of public governance than an adequate teaching example.