top | item 27485123

D3 7.0

180 points| cltsang | 4 years ago |github.com

61 comments

order

whimsicalism|4 years ago

The one critique I have of D3 is that it is becoming increasingly closely paired with Observable, such that when I'm searching for examples of how to make something in d3, I can only find Observable examples that require the Observable runtime in order to function properly.

I think the examples should have a JS native version in addition to the Observable implementation.

_dwt|4 years ago

It's a real pain. I work with lots of "data science" types who are often trying to concurrently learn JavaScript and d3 - often with JS as their first or second programming language. It's difficult enough for an experienced programmer coming back to d3 after a few versions to pick out what's d3 vs. what's Observable - and very difficult to help a relative newbie through the process of turning what's shown in an Observable notebook into something that can run in an ordinary web page.

kowlo|4 years ago

Indeed - I don't like the pairing with Observable. I don't like Observable in general because the full experience can't be self-hosted. However, both projects belong to Mike, and D3.js is free - so I can't complain.

dimal|4 years ago

What’s the difference between the two? As someone who only dips into D3 every few years and just discovered Observable, I wasn’t aware that they were different. I thought Observable was just a way of sharing D3 visualizations.

th0ma5|4 years ago

Someone should make an open source version of the Observable ecosystem or integrate it into Jupyter tooling better. The notebook format is not encrypted or anything.

j-pb|4 years ago

That's a bit like complaining that there are examples on codepen.

I'm super grateful that they provide such good documentation, which is second to none, in a nicely explorable environment.

spankalee|4 years ago

> Adopt type: module. #3501

Standard JS modules, very nice! D3 now works in all playgrounds and libraries even as dependencies without non-standard tooling!

https://jsbin.com/ducosajehi/edit?html,output

I do wish they didn't even publish UMD, that's a recipe for duplication if some libraries import the module and some import the UMD.

azangru|4 years ago

So, is d3 tree-shakeable yet? If I import { scaleLinear } from 'd3' in a webpack-built project, will I get only the scaleLinear code? As far as I remember, in v6 this will import a lot of (or perhaps the rest of) d3 as well.

jwilber|4 years ago

You can also just import it from d3-scale.

mirekrusin|4 years ago

Exciting to see ESM everywhere. It works so well with Observable. I'm trying to put live playgrounds at observable for my packages as part of docs [0] - just starting, nothing exciting to see there yet, but I think the concept of playground as part of docs is quite awesome.

[0] https://observablehq.com/@mirek/tsql-examples

terpimost|4 years ago

Thank you Mike!

nickreese|4 years ago

This x1000. D3 is such a great tool. Just the scales/coloring/map project libraries would be impressive standalone. D3 is incredible.

Vaslo|4 years ago

Used this in a data viz class and I’d say it’s overkill for most visualizations. Also very difficult to learn and frustrating to implement with all the “enter, exit” stuff. Excel, Tableau, etc so much easier and most of what you need to do visualizations in the corporate setting. Obviously it’s excellent for very specialized unusual visualizations but it’s rare those are really needed.

mskullcap|4 years ago

All the "enter, exit" stuff is what makes d3 beautiful. From a core handful of ideas, Mike is able to express a vast world of visualizations. I think it is the most amazing framework I have had the pleasure of using in my 30+yrs of software development. Ya, you could grab bar chart library and just give it data and get a graph out, or, you could spend a little time with d3 and actually learn something so powerful you can make bar charts - or virtually any other kind of visualization you will ever need. Well worth working past the frustration, imo.

HatchedLake721|4 years ago

Apples and oranges.

D3 is a low level visualisation library where you write code.

Excel/Tableau are business tools.

gaws|4 years ago

> Excel, Tableau, etc so much easier and most of what you need to do visualizations in the corporate setting.

D3 is the best way to make visualizations online. Yes, it requires learning the library and building things from scratch, but it's light years better than the dog shit modules Tableau offers.

NelsonMinar|4 years ago

You're comparing Paint to Photoshop.

kowlo|4 years ago

Feels like less than a year ago that we had D3 v6!

wongarsu|4 years ago

D3 v6 was released on 27th Aug 2020, so your feeling is right. We seem to get a major release about every year now, compared to every two years before v5.