AI is turning all data viz into JavaScript

June 19, 202649:57

Hosted by Mehdi Ouazza, Alex Monahan · With Yan Holtz (data-to-viz.com / R Graph Gallery)

Yan Holtz (data-to-viz.com and the R/Python/D3 graph galleries) joins Mehdi and Alex for a full episode on data visualization in the age of AI: picking the right chart, whether dashboards are dying, and why serious data viz is converging on JavaScript and D3 now that AI writes the hard part.

Yan's website: data-to-viz.comYan on LinkedIn

All show notes unlocked

$catnotes

Chapters

  • 00:00 Welcome + guest intro (Yan Holtz)
  • 01:29 data-to-viz.com: choosing the right chart
  • 07:58 BI is dead, long live BI: dashboards vs agents
  • 17:09 ninejs: interactive ggplot2 charts in Python
  • 20:01 Teaching an AI agent to make beautiful charts
  • 29:20 D3.js: infinite flexibility, now AI-writable
  • 36:24 Shiny: the right tool in the age of AI?
  • 42:02 Token economics: data is token-hungry
  • 46:33 Data visualization in the age of AI
  • 49:37 Outro

Show notes

Mehdi and Alex (DevRel at MotherDuck) are joined by Yan Holtz, the data viz educator behind data-to-viz.com and the R, Python, and D3 graph galleries, for a full episode themed on data visualization in the age of AI.

Yan's framing sets up the whole conversation: data viz has always had two problems, the design problem (what makes a good chart) and the coding problem (how to build it). AI has largely solved the coding problem, which makes design matter more than ever, and it removes the language barrier that kept people in R or Python. The through-line of the episode: serious data viz is converging on JavaScript and D3, because AI will write the hundred-plus lines of code for you and you can finally pick the best tool regardless of your background.

Along the way: data-to-viz.com as a decision tree for picking the right chart, the "BI is dead, long live BI" debate (dashboards vs agents), ninejs bringing interactive ggplot2 to Python, Randy Olson's agent that grades its own charts against the Tufte test, why Shiny and Streamlit may no longer be the right call in 2026, the token cost of data work, and whether a chat box is even the right interface to design a chart.

Key takeaways

  • AI is quietly turning all serious data viz into JavaScript. Alex: "the best tool for visualization is JavaScript," and "most Python libraries are just wrappers to build HTML and JavaScript, you don't need the wrapper anymore." Yan: "everyone is gonna move to D3."
  • AI solved the coding problem, so design is the job now. A good chart is one you understand in about three seconds: strong title as the takeaway, direct labels instead of legends, no chart junk.
  • D3.js went from the hardest tool to the default. It was always the most powerful and most flexible, just too verbose to hand-write; AI removes that barrier.
  • Dashboards are not dead. The dashboards-vs-agents shift is real but it is a spectrum (centralized vs decentralized), not a replacement. The hard part of agentic viz today is sharing a chart with your team.
  • Shiny and Streamlit are losing their main selling point. They were fast to build; when AI makes the "right" stack (HTML/CSS/JS) just as fast, a static Shiny app is often the wrong tool.
  • Data work is token-hungry. A Pylon tweet (sample size of one) showed data spend rivaling engineering on Claude usage, and the table itself was a great example of a bad data viz.

0:00Mehdi: Hello everybody and welcome to another podcast episode of Explain Analyze. And we have today Alex again joining me from Motodak. Devra, how is it going, Alex?

0:11Alex: Good. Happy to be inside.

0:14Mehdi: And of course, a special guest today, we are three person on the pod, Jan, which is you know supposed to be, at least for me, from my perspective, one of the references for databasation. And so we're gonna go over the news and the links that we all brought to discuss specifically today around the theme of AI and data vis. but Jan, how is it going? Do you want to do a quick intro about yourself?

0:41Yan: Yeah, sure. I'm going very well. Thank you. And thank you very much for inviting me. It's a pleasure. where I am very quickly. I worked in academia for a few years, then I worked in a big tech company called Datadog for a few years, and now I'm working as a consultant. And what I've been doing for all two years is data visualization. So basically taking some data and building nice pictures from it to make sure it's easy to understand what's in there. so yeah. With all two years I've been working with R, with Python, with JavaScript, and I kind of know a little bit about data visualization. And the reason why I'm here now, I guess it's because I've created a lot of educational content. So some free online websites that teach you how to how to build nice graphs. And and yeah, exciting to be excited to be here and and talk about database.

1:29Mehdi: Yeah. So so maybe maybe let's start let's start with this link, data do vis, because that's one of the reasons I actually know you. We actually use it in some of us best practice at Motodoc to write dive. I mean to educate content about how to write good dives, which is our data visation tool. yeah, can you explain a bit to us what is this website and what is it all about?

1:57Yan: Yeah. So basically when you want to make a graph, you've got some data, you need to tell a story with it, and you you need to make a graph and you basically have two problems. The first problem is about data v theory. What is a good graph, what is a bad graph, what are the common caveats, what graph type you should select for your project, how to make it beautiful, stuff like that. That's problem number one. And then you've got the problem number two, which is how to actually build this graph. what piece of technology should should you use and when you start coding, how to write.

2:23Mehdi: Mm-hmm.

2:26Yan: the the right code to get the chart. Okay? And so you've got two problems. And nowadays with AI, the problem number two, which is about coding, is less and less important because AI is kind of writing most of the code for you. But that makes the problem number one, which is design, even more important. And that's why I've selected this link. Because this project is all about database theory. What is a good graph, what is a bad graph, the common mistakes and stuff like that. So it works as a decision tree. Basically you describe your dataset at the beginning and you say, for instance, yeah, I've got two columns or I have three columns. one column is numeric, the other one is categorical. what kind of graph can I do with this data set? That's kind of like the step number one in my workflow when I need a good graph. and so it gives you a bunch of options with with nice logos, and at least you know what kind of chart types you can apply to your data set. And the next step is then when you click on the logo, it's gonna explain when this chart type is a good idea, when it's a bad idea, what are some common variations around this chart type, what kind of tool you can use to build it, and the common caveats that you don't want to to do around it. So

3:39Mehdi: And that's I I I see you put directly, so it's on data to viz dot com. We'll put the the links in and in the resource. But it I see you have for the implementation codes, air graph gallery, python gallery, d three GS gallery. So I want to go out of the rail directly. It's like what is your take on BI tools in that? Because you've built knowledge around, you know, I would say data visation based on coding, right? How one that is stuck like I'm a at a company and stuck with BI tool, like have you worked with with such company? What's what's your your advice over there to actually try to follow this?

4:20Yan: So very very good question. So yeah, to summarize, there are four big types of datavist tools. There is like spreadsheets, BI tools, data science tools like R and Python, and web tools like JavaScript and DC.js. And so you're talking about the category number two. So it's gonna be tools like Power BI, Tableau, Data Wrapper, tools like that. the reason they are not on the website is mainly because I don't know them very well. I've always been working with code.

4:30Mehdi: Mm-hmm. Yeah.

4:49Yan: So I don't know to no code tools very well. That's why they're not seated. And also it's hard to know which one is the best. like I have no idea if Power BI is better than Tableau, which is better than data wrapper. So it was hard for me to make a choice and add a link.

5:06Mehdi: Yeah, that is that's understandable. I think Alex you have some some experience on some VI tool. What's your take on that to like actually like I love this one to respect it as a code and I'm a code person. How would you approach that from a B I tool based on your experience? And what's your experience like what's the major experience you have with B I tool? Actually I haven't I I don't exactly know.

5:27Alex: I've used Tableau for a couple years. I used Power BI for a couple years, and then I built a homegrown BI tool while I was at Intel using Plotly JS and PolyPy. So yeah, I I I enjoy this this type of decision making of how do you communicate well. I think that the default charts of Tableau are much better than the default charts of Power BI, but both of them have enough hooks to kind of do whatever you need. you could do custom visuals in in each of them. I think it's probably easier to get a good chart from Tableau. It takes more work in Power BI. but I'm not a fan of either, really. as part of why, you know, built my own as well. But yeah, I think to me, I come from the more like the data science statistical side and and to me the like how do you design the actual data behind it to have the answer jump off the page is also an important factor. So like Okay, if you're mapping just a a a time series plot, maybe what you really want to do is look at the slope. And then the slope change will jump off the page because you have a different data set there. Rather than trying to interpret the slope of a line, it's it's not as easy for us visually. So I come at it more from like the, you know, what what can I change about my underlying data? And those you can do equally well in Tableau or Power BI. but again, it's gonna be easier to get a good one out of Tableau.

6:42Mehdi: Yeah. Okay. I I want to to switch actually on on on this topic as we are talking about BI. I have a blog. I think that's a good sideways. so yeah, so database.com we have all the decision tree I I recommend people to to go watch and you have

6:59Alex: And it's beautiful. If you're not looking at this screen like it's beautiful, you have to check it out visually. I'm

7:02Mehdi: Yeah. You get if you're not f if you're listening to us, I I would recommend to look at the YouTube channel to to see what we are looking at. but yeah, it's it's pretty well done. I think one question before jumping on the next bug, have you thought about skills and giving that information to to agents like the decision tree and so on?

7:08Alex: Yes.

7:21Yan: So very good question. That's something I'm currently working on actually. And that's something I would like to give first at all the students of my courses, and then more generally attached to all my open source websites. skills are pretty new for me. I've started to use skills maybe three or four months ago, not before that. So now that I know what it is

7:38Mehdi: Yeah. But I think that that's a good average. That's a good average. It started to explode like I figure o overall three, four, two, four months ago. Yeah.

7:46Yan: Alright, yeah, I guess I just follow the the massive trends. But but now I understand how how useful it is. and yeah, I it's definitely on my to do list to write a few data v skills to to help AI do some better jobs.

7:58Mehdi: Great. So the segue I wanted to do is this blog from another Mehdi, which is also French. I don't know if you know him. Is he used to work at Siffle and now he is at Bubba Bum. I don't remember. but he's been in data for a while, as data engineer and now more working on product.

8:06Alex: That's amazing.

8:24Mehdi: So BI is that long live BI. So we were just talking about BI. in the context of how actually some you know framework can be applied or not, because with code that's that's just simple. with BI you you know just get what you can get and customize up to a certain point. I think what I wanted to ask you personally is mentioning OpenAI, Meta and Clickhouse and more have published data blog on or they are moving away from dashboard first analytics toward agent as the primary data consumption mechanism. So I think my underlying question is, aside from BI, is that is data usation is that or like if there is blog about people that you know don't need to look towards a dashboard, but just ask an agent. what's what's your take on that, Jan?

9:15Yan: I l I love the topic. And I didn't I didn't read this blog post, but I've read other blog posts claiming the same thing. So basically we're moving away from dashboards and we're gonna have only chats where we ask questions and we've got charts in real time. I don't have a crystal ball, so it's hard to tell. And I can definitely see use cases where this is going to be true, but I don't see a world where this is going to be 100% true. I mean as a as a as a person who have a business, there are some dashboards I check every week and I really love the way they are. they are just perfect. Some people have put many, many hours of work to have the right chart type at the right place with the right options. And it it just works well and I'm a very visual person, so I'm happy to connect and see all those graphs in one in one in one shot. So in a world where I would have to ask the AI to build the same charts again and again. I don't see that happening. in some situation perhaps, but not for everything. So I don't think we're we're going on a world where it's gonna be chats only. probably a little bit more, but not hundred percent. But as I said, we will we will see how it goes.

10:26Mehdi: What what's your take on that, Alex?

10:27Alex: I have thoughts as well. sure. Thank you. And I think I agree. It's it's very tempting whenever there's a new wave to always assume that adoption will become 100% instantly. But but not everything is an exponential curve. A lot of things are an S curve where it it goes fast at first and it slows down later. I think there are cases where workloads will be a better fit for one or the other. to me, I mostly see it as a spectrum of centralized analysis versus decentralized analysis.

10:38Mehdi: yeah.

10:54Alex: And I tend to be just my own personality. I like the decentralized aspect because I like how fast you can go, how independent you can be. but what that means you give up is standardization and consistency. And I think there are some people that tend on that other side where the consistency is the important part. so I think I think there's a little bit of opportunity for both of those. to me, the the hard thing today in an agentic workflow is is sharing things. It's very easy for me to build a chart. It's not as easy for like me to build a chart for my team. And I think that gets back to like part of the impact of data viz is making decisions myself, but the other part is making decisions for the company or for the team. And I think that's an area where the agents out of the box don't have that totally figured out yet.

11:38Mehdi: I I think there is gonna be executive that only look at the top KPI, like they don't even care about graph or maybe like, you know, the general trends. And I could see a word where you have like a dashboard and then you have, you know, what we call semantic layer or a context that pull the KPI. And so if you say, Okay, what's the you know number of new customer we have this week, the agent is just fetching the catch data from the dashboard has been computed as a KPI. But you don't need to go towards the finding what's the dashboard and go to the dashboard. I think there is a lot of people that go to a specific dashboard and just look at, you know, one or two things. and I think that may be better in a flow of a chat, but I totally agree that I think you made a good point, Alex. It's not about a full replacement. And I think it's not fair here because I haven't read the the various blog and this one from Click Offs it's already from November last year. but I think yeah, so but I think it's the I I don't know I don't know the detail. They talk about the traditional b guy stuff, but they're not saying I think I haven't read

12:43Alex: Ancient history, huh?

12:57Mehdi: They they do s they do speak about seventy thirty splits what stay in traditional BI. So I think that that's to your point, Alex. I think it's not it's not everything. It's there is definitely things where yeah, people will just don't need to actually go. I think one one nightmare I had in the past with people building database is also just Which dashboard I need to look? And if I just ask the agent, right, what is the matrix or what's the information? I don't need to go and find the dashboard. I don't need I don't know if you work on those problem where basically you have multiple people, you know, building multiple databases and it's hard to find the source of truth or some of there are slightly different and it's not the information that you have. Do you have like feedback on that?

13:49Alex: So that one I'll I'll I'll take that one. we tried to confront that with our own internal BI tool that we were building, and it's a hard problem, you know, the discovery problem. When you have a tool that's designed for use by people at the edge, they might not know exactly where to go up front. They they are kind of coming into the problem new. And so making it discoverable is hard because you want to show things like usage statistics and which one is trusted, but then as soon as you realize, I've made a mistake, I made a new one. Suddenly the old one has all the traffic history and it's still at the top of the list for a long time. So there has to be some sort of way where you can kind of flag things as hey, this is important, even in addition to the metrics of who's looking at it. I also have always wondered if there'd be a better metric of like what does the CEO look at, right? And then maybe you should look at that one. but you know, that's a little bit invasive to to track that particular metric. but it it is sort of what is being used for the decisions is important to know.

14:38Yan: Ha ha.

14:45Alex: I think that it's hard to to pull that out. You also have to make sure that whatever you're using to build this has access to that information. You know, my my clawed code probably have to do a lot of exploration and digging just to figure out what are the usage stats for Power BI in my org. Like that's probably not super easy to just know. So you have to do a little bit of investment from the data platform side to make make that type of thing available to your organization. So that way they can they can narrow things down. but but Jan, have you have you gotten into that space where people are just can't find the right place to look even?

15:16Yan: what what I've seen so so basically you make a good point that sometimes dashboards are messy and people don't even know where to look at. but why what I see sometimes also is when data is messy and you don't really know if you need to use column A or column B or what version of the data set. And actually there is a dataset in the database, but the CEO didn't know, but the data between that day and that day are actually wrong and stuff like that. So I feel like if you just pick with an AI And talk with the data and get some answers, but you don't have like all the knowledge that the data analysts of the company have, it's very easy to do some wrong assumptions and get some wrong results too. So yeah, you can definitely have some bad dashboards, but you can definitely have some bad data too, and if the AI doesn't know it, it can be it can be dangerous. So I think the the work of the data analyst is not just to make dashboards, it's also like to know the data very well and all the little specificity of it. And and yeah, I think it's it's better to to trust the data analyst, not just the data directly.

16:18Alex: I think it's a lost art to actually look at the data. you know, that was the old joke of like the data scientist side, and I'm a I'm a recovering data scientist. It's like, hey, you know, you came up with this prediction, it's like, you know, 90% accurate, but like, did you look at the data? You know, it's mostly missing or you know, what have you. So there's it's very common that you have to look at it.

16:18Mehdi: All right, next. Yeah. Yeah. And it's true that visualization helped there, because if you ask the AI to compute something, for example, and if you have a long table, you cannot see any spike or if there is an anomaly over there. If you visualize the data, that's like, you know, a one shot in a in an eye, you can in a glimpse of an eye you can see okay, something is wrong there. So that's that's one one point for for DV is also also there to to help watch. you brought Nig Nine G S. I I actually have I don't know this project. I do know a lot of projects in in this, so tell us all about.

17:09Yan: Yeah. Yeah, I I I wanted to talk about something a bit new, not just all big projects. and this one has been published with somebody with a friend of mine now. He's called Joseph. So Joseph made an internship with me, it was two years ago, and now he's working as a database consultant. and he's very good at Python and he's creating a lot of great Python packages. So to give you a bit of context, In data science, you've got R and Python. That's the two main languages, two main programming languages. And to be honest, R is a bit better than Python for data Vs for a very long time. Because the community interested in data Vs is so big that they've published a bunch of libraries allowing to do absolutely anything. And also because of ggplot2, which is easier to use than MatPod. And so when Joseph saw that, he started to build some very interesting Python packages. And I think that's his fifth one or sixth one. And this one basically it allows you to take some Python code that is written using the ggplot2 syntax. And it allows to make it interactive. So basically you use some ggplot2 syntax in Python, and with just a few more lines of code, you get an interactive graph. And if you go to the gallery section, you're gonna see some pretty cool example. It looks very good. And what I like is that it's very flexible.

18:28Mehdi: Yeah.

18:36Yan: So there are a lot of things you can do with it. You don't have like too many limitations. You're not too limited by the options it offers. so I feel like it's a very promising project. I shared it on LinkedIn last week and I got something like two thousand likes or something. So yeah, I think it's it's gonna it's gonna become a great a great project.

18:56Mehdi: Yeah, so I saw like you can inject basically basic CSS over to have a certain behavior when you ove over the graph. Is that correct? That's the TLDR. Yeah. Okay. Okay.

18:56Alex: It looks like there's some

19:06Yan: Yep. Yeah. Yeah. Exactly.

19:10Alex: Yeah, I also really like it. Looks like the syntax is using some cool Python capabilities of just using the the the addition operator to mean something other than adding two numbers together. It's you know operating and overloading that to to use it to have some nice clean syntax. So that's a a cool way to use Python for that too.

19:26Yan: Yeah, we'll we'll see how it goes, but to be honest, I think is there is a bright future for bright future for this package.

19:32Mehdi: Wha why is it called nine G S if it's a Python library?

19:37Yan: because it's it's based on plot nine and plot nine is a Python library allows allowing to use the ggplot syntax in Python. it's easy to get lost, isn't it?

19:39Mehdi: yeah, yeah. Okay, Yeah, yeah, yeah. No, but it's it's true because sometimes like I actually that's a good transition maybe for but actually let me take a blog from from Alex. that's that's yours, right? teaching an AI agent to make beautiful charts.

20:01Alex: Yes. Yep. This

20:06Yan: yeah the so I guess the skills are already there.

20:09Mehdi: Yeah.

20:09Alex: This there is. I grabbed this one. So yeah, this will be my starting point. I have not not used it in prod yet.

20:13Mehdi: I think I I think I think there is so just like before, I think there is a tons of skills. We we've put also skills on that. You see you have like Edward Tufter principal and so on. But I think what would be great is to have your take based on your decision tree that you you've made, Ian on that. I don't think someone has done that.

20:33Alex: Yeah. I I'm not sure this particular piece solves that exact problem, but I think it it impacts it a little bit. So this is a blog by Dr. Randy Olson. he has done a lot in the data science and machine learning space. He created a library called Teapot, which is like a genetic algorithm for improving hyperparameter tuning, but he's also been a moderator for the R Data is beautiful community for a long time. So he is an expert in in data communication and he has a skill that he's built and that he actually autonomously develops multiple candidate charts and candidate data sets overnight and then he posts a new viz in the in the morning based on those. And as you saw in that gallery, if you're if you're watching on video, all of them are beautiful and also very interpretable. I think that's my favorite part about it is to me, the sign of a good data viz as more of like an engineering background y person is not necessarily the beauty of it. It's the speed to which I can make the right decision. And so for me, I think control charts are beautiful. Okay. Like I love a good control chart because it tells me exactly when I need to take an action. It's when something is out of control, when I need to change something about my business. And I think a lot of these charts are beautiful, but the communication aspects are my favorite where you know specific trends are highlighted and called out with call-outs. everything is very clean and legible, and there's there's limited chart junk. you have the axes and the sorry the legends labeled, not in a separate legend. which which a lot of people call chart jump, but actually, you know, inlined within the chart in the area where your eyes are already looking. So it's a good blend of the the decision making aspect and the the you know the the design side. but but Jan looking at this coming from from your background here, w what would your grade be? What what are your thoughts?

22:17Yan: Well, so I didn't read the the blog post before, I just saw all the graphs very quickly. But yeah, I totally agree that they all look very clean. And so basically nowadays I've got hundreds of students publishing graphs all day long and I'm giving feedback about them and it's kind of always the same thing that I'm saying. Like, yeah, try not to put a legend, use some direct labelling instead. write bigger, align everything yeah, always align something with something. Don't use crazy shard type, just use something that is insightful and tell the story. Use a strong title and for what I've seen in the gallery, everything was like respecting all the basic rules and meaning they're all very insightful and in just three seconds I can understand each of them what it's about. And that's a very good sign usually.

22:50Mehdi: Yeah. Yeah, that's

22:59Alex: I love the your point about the title because that's also my favorite recommendation for slides as well. It's the same problem, it's a communication problem. The title should not be a you know high-level summary of what it is, it should be the takeaway you should grab. And so this chart, for example, says new grads now have higher unemployment than the average worker. It does not say something like unemployment over time of new grads, because then it's left up to interpretation. And so I do think that's another key takeaway. And

23:12Yan: yeah. Mm. Hundred percent. Yeah.

23:25Alex: You know, AI agents are famous for either telling us what we wanna know or being very general and fuzzy about things. So this might be an area where we're really gonna have to poke them to say, make the title the takeaway.

23:36Yan: Yep, yep.

23:36Mehdi: Yeah. And here it's it's it's really crazy. I found like just this one, like you know, there is a level here for the dates, but it's actually it's pretty hard to see the like when is it, right? So there is key information right in the middle of the chart. So you see like okay, this inflection point is February two thousand and nine nineteen. But so just like something I don't understand, is that generated by AI or is it like or

23:49Alex: That's true.

24:05Mehdi: That was bum bum. That's that's just a tips

24:12Alex: So it's built with AI, but what it does is it he's actually given the AI a capability to grade itself and incrementally improve. I think that's another key aspect of AI is that it's okay at one-shotting things, but it's much better if you can give it a grading criteria and a decision criteria and a goal and allow it to have multiple tries at it. And so there's actually a skill for the Tufty test where it can take screenshots of things and grade itself and say, do I pass the Tufty test? And I think that's another key takeaway for me on this whole approach is.

24:19Mehdi: Okay. Yeah. Okay.

24:41Alex: How can I make it such that it's not a one-shot process to generate these? How do I give the agent the information back to know if it's doing a good job? And and there's some really good tips here to to do that.

24:51Mehdi: Yeah, the the E is an av an MCP where for high signal chart workflow. I see. And you can use it when you have an ID for a data story and want a publication quality chart back to basically see like those kind of things. This is this is crazy. That I I want to try it now on the on the blog. I think like you mentioned a good point. I I'm curious to hear your take on that, Yan. those are all static.

25:11Alex: Yeah, yeah.

25:19Mehdi: Right? What's what's your take on, you know, chart like this which tell a story by itself versus, you know, having more dynamic and filters like yeah, when do you use one or the other?

25:31Yan: Well, that's a very good question. And a very common caveat in datavies is using tech just for the sake of it. And just because you are able to build an interactive chart doesn't mean that you need to. Like this line chart, for instance, it just works very well. It's easy to understand what's going on, it's very clear, and adding interactivity there probably doesn't help at all. now I recently shared a graph where in my opinion interactive interactivity was very much needed. it was a graph, it was like each country was on the graph several times and there were several metrics. And so you had some annotations, so you knew that Denmark, for instance, had a high value for this category and a low value for this category and stuff like that. And because I'm French, I really wanted to see where France was. And that was very frustrating because I had to search for France, or even even worse, it was a static chart, so I couldn't know where France was. So basically I did the reproduction. And I did exactly the same and I had a search bar at the top. And when you type the name of a country, it highlights just this country on the chart. So in my opinion, that's a very cool use case of interactivity because you give the main message and then you allow the reader to go a bit further to understand a bit more from the same chart. So yeah, so my conclusion is sometimes it's useless, probably like tease line chart here, but sometimes it can be so beneficial that it's a bit sad not to use it.

26:56Alex: I love that because to me, like I think many you were making a point earlier about how many people just look at one or two metrics like KPI level, top level. But I actually think that's great. Cause what you want for your viz is you want a hierarchy where the first decision you make is do I need to look in the details? And so if you can only look at the top, it means everything is great and and an error hasn't jumped off the page or a you know a problem in your business. But if you see an outlier, then you want to immediately ask a ton of follow-up questions and The old school way was that was going to be a, hey everyone, take this as homework for the meeting and come back tomorrow and then we'll try and make a decision. but what it really should be is you should have the the ability to explore once you detect a problem and and kind of have a hierarchy of of data viz that you can kind of traverse down. is that something you've heard about?

27:43Yan: There is there is n there is nothing more frustrating than having a scatterplot with a dot that is an outlier and you have no idea what what it is, like who it is, what happened. That's so frustrating. And so just having a tool tip on top of it is game changer.

27:56Mehdi: Yeah, annotation I think it's really underrated. And I think this is something that I haven't seen a lot. I mean, I it's been a long time since I have used transitional BI tools, but I haven't seen that a lot on like I feel BI tools like help you to have quick template quickly, but on customization on specifically call out static, where you want you know no I want the the the annotation over there because visually it's more clear. I think that's you know it it needs to be programmatic, you know, so that anyone can do things. So there I feel there is always limitation around around that side around annotation. D tree

28:37Alex: I think that that kind of I was just gonna mention that hierarchy is also true in a Vid Dataviz library as well. You want to have it good out of the box, but then having the ability to tweak a lot also is really what allows you to make a truly beautiful and easy, easily you know understood visualization. So that's when I usually try and like grade, you know, is this a an approach or a library that I want to look at? I usually look at how does it work out of the box, but then if I really want to tweak this thing. How much freedom does it give me? Again, crazy freedom oriented person. That's that's that's a big part of my decision criteria.

29:08Yan: That's actually a very good transition with D three because it gives you infinite power of customization.

29:13Mehdi: Yeah, all right. So so a lot of people now I think D Tree GS maybe do a quick intro. why did you bring actually that link?

29:20Yan: So So I broke that link because if there is an impact of AI on datavs, the one thing to say is D3. So as I said, you've got several tools to build to build charts on this planet. And the most powerful one, the pinnacle, the best one is D three.js. why is it the best one? Because it comes with no limits at all. You can build absolutely everything if you want to put one circle there, one square there. You can because it doesn't like make you a s a chart out of the box. It just gives you some little tools to add some shapes on your screen. So it's hundred percent flexibility and also it comes with full interactivity. So you can build anything and anything interactive. So it's the end of the game. why do people don't use it all the time? Because it's very complicated to use. just building a simple bar plot is probably going to be something like at least hundred lines of code. doing something interactive? Yeah, probably. Well it's it's it it adds up very quickly. so for a very long time D3 was known as the best tool but the most complicated one to use. it's still the most complicated one. But now with AI, we've got some smart things writing the code for us. So in my opinion, there is another reason not using D3 anymore. If you just need a quick line chart, it's okay, just use whatever you have because you don't need

30:15Alex: A hundred? A hundred lines.

30:44Yan: anything very custom. But if you need something bespoke, if you really want what to do and if you want don't want to be stuck at some point, you really need to switch to D3. And that's why I brought up this link, because I think with AI, more and more people are going to use D3. And I think this change is actually already happening right now. I've launched a an online course about D3 with React. It was in February and it's been from far my best course. So many people bought it and what was interesting is that some designers bought it, some people using BI tools about it, and now they are integrating some D three charts inside Power BI or inside Tableau. So basically I feel like everyone is gonna move to D three because D three is the best tool, the most powerful one. And that's why I really wanted to talk about it today.

31:21Alex: Yep.

31:28Mehdi: And like if we zoom out of D tree, is there like other JavaScript library? For me, it's like I feel there is also the the serving points. Like, you know, today a lot of people write blog and so on, and you can put so much dynamic in the web, right? I mean we just talk about the actually the added value of having just a static, you know, image or visualization. That's really great. But I think if I look at this, for example, I'm in front of a spike map, which is really nice.

31:43Yan: Mm-hmm.

31:55Mehdi: There is not that much dynamic here on this one. But again, that's also why I'm looking at at observable, which is like notebook for all out use for databasation, but it's like a JavaScript notebook. So what's your what's your take like more on the serving on on the serving sides of things? Because I feel sharing static image is okay, but like it It's it has its limits as soon as you want to publish and share stuff. you know, if you have typically like a notebook analysis, it works kind of okay, but like having a Python story you know, hosted is much harder than just pure JavaScript and and a web page.

32:37Yan: Well, actually I feel like it's pretty simple too. if you if you use GitHub, you just have to push your chart. If it if it's like if it's made with JavaScript and D3, it's gonna work. If it's just a Python notebook, it's gonna work. If it's a R Quarto notebook, you put it online, it's gonna work and become and become a website too, and you can you can share your chart this way. so I feel like we should all be Building websites nowadays because it's so it's so easy to do. the the first module of my course is about that. And after like an hour or two of learnings, people are able to publish on GitHub and get their stuff on online instantly. So I feel like the the the best the best way to encapsulate your work nowadays is just a HTML page with your with your content in it. Does that does that make sense?

33:26Mehdi: Yeah.

33:27Alex: So I think

33:28Mehdi: Yeah, it makes sense in a way, but what I want to challenge that Python is not meant to live in HTML. So so th that that's that's my question is if you've seen other beautiful you know, websites where this is all included and it's just JavaScript, right? And if you want to include the Python stuff, yeah sure, git, you know, it's it's there, there is some runtime.

33:46Yan: Mm-hmm.

33:52Mehdi: But just in general, you're trying to put, you know, a Python runtime into, you know, a JavaScript engine. So that's basically the the thing I want to challenge. Do you see do you see actually more people using you you told me that more D three G S actually, but you see actually more people using JavaScript in general for creating charts?

34:11Yan: well that's my instinct and I I I guess I'm biased because that's my favorite tool and I talk about it all the time all the time. But yeah, I can definitely see some people transitioning from other tools to the world of to web and distribute.js and usually when you start using it and you plug AI correctly into it, there is just no coming back. So my expectation is that this is going to be more and more true.

34:34Mehdi: Okay.

34:34Alex: I agree with that as well, actually, because you know, I'm coming from the Python side and then I picked up JavaScript afterwards. But now AI allows you to choose the best tool for the job, regardless of the language. And the best tool for visualization is JavaScript. You know, like it or not, it's got its problems like any language. But you know, if there's no any language that people don't like you know, really like only, if there's only people that like it, it means no one uses it, right? For for for it to have any haters, it's gotta have some adoption. Obviously, JavaScript is, you know.

34:44Mehdi: That's true.

35:02Alex: by some metrics most popular on the planet. And and I think it's the right tool for the job for for visualization, especially with interactivity. And most Python libraries are wrappers to build HTML and JavaScript. And so you don't need the wrapper anymore.

35:14Mehdi: Yeah, yeah, that's the thing, it's driving me crazy.

35:17Yan: Mm-mm. And talking about wrapper, something that is very important to me is that in JavaScript you've got a lot of libraries to make charts to. so you talk about plotly, but we can talk about Vega, chart.js, and stuff like that. And I feel like they are incredibly frustrating to use because they give you this catterplot function with a set of options, but as soon as you want to go out of to the options, then you're stuck and there is no way that you can customize your graph enough to fit your needs. So so Sooner or later you're gonna have to go to D3.js. because it's the only one that gives you full flexibility. So in the AI era, I think it's better to just go to D three right at the beginning and forget about the rest.

35:57Mehdi: But I think it's just that those frameworks have been designed to optimize your you know ID to implementation where you have a framework and you just fill certain, you know, box and that's it, you have a graph. You were mentioning like you know D three G S versus you know, a Python library where you have like hundreds of code. Like without AI it's just like impossible. So you made like

36:14Yan: Mm.

36:24Mehdi: Everybody was aware of the trade off of limitation, but that was not the main features I feel. I was just to say, I can generate, you know, a graph just a couple of minutes instead of hours. and and related to that, you brought another another link, a lot shiny, because we that's another framework and we have also, you know, Streamlit, which is more like data apps and also more open into to that. But Why why actually did you bring this one? Is that on the exact same topic that we are talking right now?

36:56Yan: Exact same topic and I w I was a bit hesitant to put teaslink because some people are starting to hate me when I talk about Chinese. and I I don't want to get

37:03Mehdi: Can you give a maybe a quick a quick recap on what is shiny for people listening? Yeah.

37:09Yan: Alright, alright, cool. quick recap. So basically you've got R, which is a now some tool to analyze data. and people analyzing data, they all want to build some application allowing to explore the data themselves. So basically you're gonna have a histogram plugged on your data set, you're gonna have a button that says I want to show group A, group B, group C, and it's gonna work and you're gonna write only R code to get your data up. So it's kind of magical and to be honest, it's because of Shiny that I've started to love data visualization so much. That was twelve years ago when I discovered Shiny. I was like, okay, I'm gonna do that all night long, it's so exciting. building web apps with R is is just my jam, it's it's awesome. And then later I became a web developer. So I started to use JavaScript, React D3 and stuff that. And I was like, okay, Shiny is great, it allows to go very quick to build cool things.

37:45Mehdi: Yeah.

38:02Yan: But then once once you taste what JavaScript is and what full flexibility really means, and when you use when you use actually the right tool for the job, because building web app has to be made with HTML, CSS, and JavaScript. That's the that's the proper tool. Then you realize that Shiny is great, but very limited. And so my take two days is that because of AI, we're not writing code anymore. and so writing Using Shiny for the job is sometimes not the right tool at all. And I see some people building some static Shiny app, just doing like just taking a static CSV and building a few graphs from it. And using Shiny for that is gonna give you a very disappointing result compared to using a React application using D3 for the same amount of work, for the same amount of time, because AI is doing it for you. and so that's why I wanted to browse this link. but when I talk about Shiny, I always remember that I love Shiny, that's the reason why I love data visualization. I have a deep respect for people working for this project. I just feel like sometimes nowadays that's not the right tool for the job.

39:05Alex: so this is a link of a don't use this link. I love it.

39:08Yan: Yeah.

39:09Mehdi: That's true. We never we never added that on the podcast. Here is a link you shouldn't use.

39:15Yan: Mm. I I talk about that a lot. It's it's a hot topic. and I I've got there is like not some drama but a lot of debates on LinkedIn about that. and some people reach out, like take my post, cite them and say that they don't agree and list why and I don't know. For me it's passionate passionate discussions, but but yeah.

39:33Mehdi: But it what do you think, Alex? Is that I mean you already mentioned that you move a for JavaScript for that, but you do you agree?

39:39Alex: do and and I think I'm also a a pythonista. I I've used R like two times in my life. So I I I also, you know, think it's very interesting.

39:47Mehdi: What about Streamlites? Streamlites is the same story. You can give your own

39:49Yan: Yes, ex exact same story with Tonight.

39:52Alex: Yeah, I I I haven't gotten into StreamLight. I StreamLot actually has even more limitations, personally. There is also Shiny for Python now also. So you can see that link here it says get started Python.

39:59Mehdi: Yeah, I saw that. I was I I was

39:59Yan: Mm-hmm.

40:01Mehdi: like, Wait, they're coming for Python people now.

40:04Alex: Right. And and if you it it's a pattern, right? This is this is from the company Posit. There there's some you know, some of the folks, you know, behind Shiny and they they have pivoted their whole company to be R and Python instead of R only. And I think i you can make different arguments about about that as well. That's a that's another whole separate layer. But to me I I would probably not pick Shiny as the number one first thing to try. in in

40:15Mehdi: Yeah, that's true.

40:29Alex: Twenty twenty six with the power of AI.

40:31Mehdi: Yeah, I I think I did I did a post like this on LinkedIn a while ago to talk about StreamLead to say I don't feel like there is a lot of needs for StreamLead to be used as a as a first Z app and I still see people using it and I've I I can feel your frustration and I feel it's like they still haven't opened the Pandora box and they feel you know it's like in the age of AI, like you you were talking, we're talking just I think

40:39Alex: Mm-hmm.

40:58Mehdi: about that you've been using skills for three or four months and it's like yeah it's still all of that is pretty recent, right? A year ago you maybe say, Yeah, AI is not there yet, so if you want fast and reliable data apps, then that's that's that's all this option, right?

41:14Yan: A hundred percent. Like it's it's moving so fast. my discourse about AI is so much different now than a year ago. A year ago I was like, you need to learn coding. AI allows you to go faster, but you still need to understand everything you do. And no my discourse is like I barely write code anymore. What you need to understand is like the concepts and need to think hard about the product and about what you really want to do, but code is just like not a problem anymore. and I guess in one year it will be I don't know, we're writing code in binary because we don't even read it anymore. I I have no idea. But but yeah it's changing it's changing fast. Assembly arrest, I don't know, yeah.

41:44Mehdi: Yeah.

41:47Alex: Assembly, yeah. I don't know if I don't know if assembly is very token efficient. I think we're safe from that for a little while.

41:53Yan: Maybe not. Maybe not.

41:57Mehdi: all right. next you have a couple of

42:02Alex: Yeah, I had some kind of just kind of generic AI topics a little bit, not as not as on the data viz side and just because some of these topics are kind of I I think we're hearing all about it. One of them's about, you know, Fable Five. I think I think we could talk about that briefly.

42:14Mehdi: Okay, but actually I'm interested like i it is linked to maybe what Jan is saying is that so token economics, right? Alex, can you give a bit of context there on this tweet?

42:27Alex: Yes. So what we're looking at is a tweet from Marty Kaosas. I should have tried to learn how to pronounce that ahead of time. Apologies. Thank you for the fun tweet. and he shows his forecasted Claude spend broken down by team. And by far the highest total spend was on engineering, averaging about three thirty one hundred dollars per person, and that is per month. Thirty one hundred dollars per person per month. Now, but if you look interestingly There is a higher per capita spend. The highest per capita spend is actually the data person with slightly more, thirty three hundred, buried in the middle of the table. So this is another example of a table being a terrible data viz, right? That was very hard to pull apart. And yes.

43:00Mehdi: Yeah, it's it it's there, right?

43:02Yan: Hundred percent. It's it's taking so long, like to me to understand the data.

43:06Alex: This is our second link for what not to do today. Okay, here we go. I apologize. yeah, so th but this I think the the takeaway to me is that data is very token intensive. It is still takes a lot of effort for these models to able to pull, analyze, write queries and run in data analytics. It's still very token heavy and it's right up there with with writing code as a really good use case for for using a lot of tokens to do it. so that was my takeaway there is that that

43:09Yan: yeah.

43:34Alex: you know, make sure to give your data team a lot of budgets for for tokens while they're while they're analyzing. so I guess Jan, I'm curious, what does your your agenc, you know, AI story look like today? Do you use it heavily? Are you really running out of tokens at the end of the day? What does what does it feel like for you?

43:49Mehdi: Yeah, and I and I'm curious as you as you have a lot of students, like is that a problem for the students?

43:54Yan: so two questions. how do I use AI? I'm using cloud code and I've got the pro account, which is like or the max account, I don't remember how it's called. Basically the the top one, the biggest one. So I'm using AI from the beginning to the end of the day. but I never I never finish my tokens, so I'm I'm never stuck because of tokens. but I don't work with very big code base where where AI has to think for a very long time.

44:02Mehdi: Yeah, it's like two hundred.

44:19Yan: my code bases are pretty small. I always work on on small project now that I am a a consultant. so that's the that's the first answer and for my students yeah it's definitely a problem. because yeah I pay hundred euros per month I think. for for a bit f Yeah exactly yeah as a student that's just impossible to pay. as a as a professional it's it's okay but as a student it's impossible. So yeah they have they have to stick to

44:34Mehdi: I can not afford that as a student.

44:47Yan: Free tools like ChatGPT or just like chat AI. I need to dig a bit further into open source models that you can run locally. That's not something I know very well, but that's definitely something I would like to teach a little bit to help them. so yeah, definitely something, definitely a concern. And I feel like prices are going up and up, and it's not gonna stop. So probably more and more of a problem, unfortunately.

44:57Mehdi: Yeah, I was about to say, yeah. Yeah. I think local model is is gonna help, but the problem again is that you still need to have a decent machine. I think the there is a lot of things you can look up, yeah, around small model, which are trendy and you know can go on specific tasks. for example if you teach a course then that you know that might help rather than you know general one. But but yeah, we're still I think in a situation where

45:32Yan: Mm-hmm.

45:42Mehdi: For professional it's okay and still for company it can you can burn a lot of of money. That's that's still a concern. And

45:50Alex: I have to say before we go off this page though that this is a small sample size. It was very hard for me as statistics nerd here to show you a data person team of one and then draw a conclusion out of it, but we did it. So do your own analysis.

46:01Mehdi: Yeah, but I I do I I do feel it's it's reflecting the general feeling worldwide where people said don't care about spending on AI, care about your productivity and what you deliver, and then now it's like, Okay, but if it's cost me more than your salary, let's let's let's revisit or at least let's see how you are using it and I think a lot of company and us included we haven't watched like that much on you know how to be more efficient for small task and others we're getting close to the end one last one i think i wanted to let's bring this one databasation in the age of the i and i think the thing i wanted to bring text only interface as a fundamental bottleneck. I think it's related to to the very first topic, but not really, is that do you think if you need to design a beautiful database, do you think a text a chat box is the right one? So it's not about generating the code, it's about is it the right tool? You were talking that designers are following your course. So I'm I'm curious if they coming more from

46:55Yan: The very first topic of today.

47:16Mehdi: you know, designer tool like Figma and they prototype the Vs and then they say to the AI, Hey, this is what I want to do or explaining it visually some stuff by, you know, by text, by language is pretty hard for me. So I'm just curious how you you tackle that problem.

47:32Yan: Well the the designers following my courses, they're like they're very good at Figma, for instance, so they can do a prototype of a chart. But then when you need to plug tease visual to the data itself, which can be changing and moving every single day. You have to use code and build something real, not just not just a mock up. and it's awesome to see them working because they're the one getting the best results.

47:49Mehdi: Yeah.

47:56Yan: Because as I said, we have two problems in dataves, the tech and the design. And they've got the design already. And the tech is pretty easy nowadays. So when they publish projects, so at the end of each lesson we've got project, they've got some stuff to to make. They also they always have the best results, because they know how to do pretty things and AI is writing the code for them. So I guess they they get the best of of both worlds and they realize how much value they they can have. something I would like to talk about too is that as a consultant I'm kind of changing my habits nowadays. Before I was building some mockups, some diagrams for the for the client, explaining what I planned to do. And once we would agree on what to build, then I will start coding and build it. Nowadays that's not what I'm doing anymore. We talk and then I take like two hours and I do some mockups but using AI and I show them something real that is almost working already. and that works so much better with the clients because they can really see the value and they can really be convinced that it's gonna work the the way they want. So I think it's the same for designers. Instead of doing moc ups, maybe one day they will stop using Figma and they will just like build the real thing right away.

49:05Mehdi: Okay. Cool. Do you have any comments on that, Alex, before closing?

49:08Alex: I love that. I think that's true for for anybody, right? It's you know, there's that old ad edge in business of like make your manager happy, right? And and part of that is you want to make a decision quickly. So you want to be able to bring a full thing as quickly as possible. So I absolutely think that while there's a a spectrum or some visuals you want to tune to be perfect for decision making, other times you need to be able to generate them quickly because it's the speed of the decision that matters. and that's what determines a good decision is how fast you can make it. And so there's room for both.

49:37Mehdi: Alright, thank you for listening to us. as always, you can find the episode in all the show notes at mother.com slash explain analyze podcast. And I'll see you the next one and probably I'll see you also online. yeah. Thank you again for for joining us.

49:54Yan: Thank you so much for inviting me. That was very cool discussion.

49:57Alex: Pleasure, great to have