pelotom / purescript-d3

PureScript bindings for D3
MIT License
87 stars 19 forks source link

Migrate to purescript 0.14.2 #25

Open CGenie opened 3 years ago

CGenie commented 3 years ago

I resurrected the code so that it compiles on more recent PureScript 0.14.2. Also, I added some features like zoom and link.

afcondon commented 3 years ago

Hey @CGenie, if you are using D3 with PureScript and/or have any interest in collaborating on a more fully featured library you might find this work i've been doing interesting: https://github.com/afcondon/purescript-d3-tagless-II

pelotom commented 3 years ago

Hi @CGenie, I haven’t been involved with purescript for a few years now so I’m probably not qualified to review this PR any more. I’d be happy to make you a maintainer if you’d like.

CGenie commented 3 years ago

Hey @CGenie, if you are using D3 with PureScript and/or have any interest in collaborating on a more fully featured library you might find this work i've been doing interesting: https://github.com/afcondon/purescript-d3-tagless-II

This looks interesting, however I'm lacking some simpler examples in the README. I've skimmed through the src/Examples dir but I'm still not sure if this covers all of D3?

I like this library because it's quite close to original D3 and doesn't introduce any higher-level stuff. We learned from experience that this is in fact simpler in the long term: we used the overly complex thermite wrapper for react, and now with purescript-reactix it's in fact maintaineable :)

afcondon commented 3 years ago

I'm hoping to get a minimally viable version of it ready in the next month or two...i will add at least a couple of simpler examples, tho the focus of my work is on writing something which can i and others can use to develop larger, more "app-like" things and less for "script-like" charts. It may not be what you are looking for in that sense.

My intention is to provide a more Purescript-idiomatic syntax above D3's Selection, Transition etc (as in this library, purescript-d3) but also to support the so-called General Update Pattern, force-layout / simulations and hierarchies (trees, treemaps, circle-packing etc). This leaves large areas of the D3 API surface that i don't intend to touch or only wrap very minimally.

The background to this is that i spent several years working at a company developing a D3-based, PureScript-controlled application which convinced me that i did want some higher-level API that would let me compose things on the PureScript side. I also tried taking the design of this library forward on a couple of occasions, so if you do decide to do that i can maybe save you some time or give you some pointers as to what worked or didn't work for me.

You might find this recent article interesting too, as were Mike Bostock's comments on it on Twitter: https://wattenberger.com/blog/react-and-d3

CGenie commented 3 years ago

Plan is to use d3 with react as well. We plan to do complex things, but we're just starting out so we'll see how this evolves.

CGenie commented 3 years ago

Hi @CGenie, I haven’t been involved with purescript for a few years now so I’m probably not qualified to review this PR any more. I’d be happy to make you a maintainer if you’d like.

Yes, if you can't maintain it, we can continue. We're from the open-source Gargantext project (https://gargantext.org/) and our github account is on https://github.com/poorscript