Dear Mike,
Can I just say, before anything else, I love your work? I first found it with the marvellous charts you made for the New York Times Presidential Election coverage of 2012 (what simpler times they were!). I got a much closer look at it thanks to a Udacity Machine Learning Course I did a few years later and, let me tell you, I remain stunned by the potential of this amazing graphing technology that you and your team have brought into the world. Hats off to you. Chapeaux!
However. Neil Young once sang that only love can break your heart and if he really wanted to explore heartbreak, he'd release a triple album about trying to learn D3 and use it to its fullest possibilities.
They say great soccer players make poor soccer managers. The genius players do what they do because they can do no other. They don't understand why other players can't see men making runs and hit passes to fall right in front in teammates, or know how to deliver a ball to a team-mate before the team-mate may even realises he needs it. What's obvious to them is opaque to the rest of us. There's a communication gap there.
Do you mind my saying, Mike - I can call you Mike, can't I? - that you might have a bit of that. The D3
process, the D3
environment is like Châteauneuf-du-Pape, the finest of fine French wines. D3 documentation is a little more like something someone called Pappy made in his bathtub somewhere in Kentucky.
D3
is written in JavaScript
, because it has to be. What else could it be written in? But JavaScript
- and let's speak frankly here Mike, because truth sets us all free - is howling dog of a programming language. If programming languages were rock bands, C
would be The Beatles, Python
The Rolling Stones and JavaScript
The Sex Pistols, turning up drunk, puking on the amps and scaring the daylights out of everybody.
So anybody having to write any JavaScript
documentation always has to come to the terms with the fact that JavaScript
messes up your mind. It just isn't orderly. It is all over the shop. You need your hand held when it's taking you for a ride. But Mike, when JavaScript
is doing things to document-object-model similar to what Sid Vicious did to Frank Sinatra's My Way, what hope is there for any of us?
How hard is D3
to learn? It's this hard: I asked OpenAI to draw a multiline chart in D3
and it failed. OpenAI
, Skynet in vitro, and it coughed up a hairball trying to do D3
. D3
is very damned heard to make work properly.
And you know what else Mike? There's no need to create a marvellous environment every six months. I'm sure it's thrilling to think of a new way to bind data to SVG objects but it's a lot less thrilling when somebody finds out that his or her whole project has gone wallop because there's a new D3
version out. That hurts, Mike. That pains people.
As for Observable, look. I hope you make a ton of money from it. You deserve it. But if you enjoyed Game of Thrones as so many did, and every now and then wondered why George RR Martin wouldn't finish the damn thing instead of going off on side-projects while leaving the whole world hanging - well, you might have an idea about how some people feel looking at Observable
while they're still trying to figure out joins and the general-update-pattern in "regular" D3
. That's all I'm saying.
Well Mike, I had to have this talk with you. My happiness depends on you, and whatever you decide to do, Michael. I'm going to try to make some D3
tutorials myself, and stick them up on YouTube. My own prayer is that you can let D3
stay at version 7
until I finish the things and they might be some use to somebody.
Yours, with love and respect,
Anthony Munnelly, a harmless drudge.