Hacker News new | ask | show | jobs
by stared 5 days ago
Interesting! If I get it right, the API is in the spirit of Observable Plot (https://observablehq.com/plot/), less ggplot2.

In any case, I'm curious whether aes is necessary, or whether it would suffice to drop this function entirely and just use keys in the mapping (similarly for labs). Or, more broadly, whether using patterns from other implementations of the Grammar of Graphics is a conscious decision, or some sort of legacy baggage.

1 comments

That's still an open question to be honest. Whether or not I should still surface aes() or just drop it in favour of the plain dictionnary. it's indeed not really necessary, but makes it way easier for all ggplot2 (R), plotnine (Python), ggsql (SQL) users to switch or adopt Gribouille in typst.
My take: does something add value OR is there because were are just used to?

Gribouille is not ggplot2, or other. Syntax is different. Superficial keyword similarity is (usually) a false friend. Reusing a keyword might be useful, but keeping an unnecessary construction is (in my view), a cargo cult.

Typst itself breaks with a lot of LaTeX stuff, and it is good that it does not pretend it is LaTeX-with-Rust, but has a fresh look.

With a constructor, you get to document/validate. A plain dictionary makes this harder or virtually impossible (you most often will silently fail).

https://m.canouil.dev/gribouille/reference/core/aes.html

I already drifted apart from ggplot2/plotnine in many ways, I don't mind as long as it's not confusing.

I've opened a GitHub issue about this question (no ansers at this point): https://github.com/mcanouil/gribouille/issues/143

> A plain dictionary makes this harder or virtually impossible (you most often will silently fail)

I didn't know about these Typst restrictions. Silent fails are the worst, so if a constructor is necessary to prevent these, good it is there.

Thanks for explaining! (And for developing gribouille in the first place!)