GR.jl
GR.jl copied to clipboard
GR.jl + GRUtils.jl + recipe system?
Any chance we could have a GR.jl shipped with high-level routines like those in GRUtils.jl plus a recipe system that would work like the recipe system in Plots.jl but specialized for the GR project? I really don't use the other backends in Plots.jl, and I think the experience would be much nicer if the recipes were developed by GR maintainers for GR.
@jheinen given my experiences with Plots.jl this effort here could really improve the experience. People are always contributing to the Plots.jl backends without the necessary knowledge of the internals and things break too often in their side. I really wish we could have a recipe system just for GR.
If I had more knowledge about the Plots recipe system, I would probably start implementing similar thing in GR. The TTFP problem is IMO the main reason why many scientists prefer to stick with Python or commercial products like MATLAB.
I feel that GR could definitely contribute to this situation given a recipe system that composes well at a high-level of abstraction. The only reason I stick to Plots.jl is the recipe system, nothing more. I am basically a GR user that cannot work without recipes. It is not because I am lazy but because recipes come with a really didactic experience for students who don't know how to code very well. You just say plot(mycomplextype)
and everything is handled for the user internally.
I don't have time to dedicate myself now to this, but when I rewrote the module jlgr
in GRUtils, one of the main purposes was to make the structure of the plots modular enough to facilitate the definition of new kinds of plots (let's say, for instance: area plots, box plots, etc.). So, the interface provided by GRUtils might be a suitable starting point to create a system of recipes specifically for GR, without the overhead of Plots.jl. See https://heliosdrm.github.io/GRUtils.jl/stable/internals/extending/
That would be amazing @heliosdrm. Having these building blocks to start creating a recipe system would really be a game changer. The situation in Plots.jl is terrible and I'd rather have a single backend working smoothly than a bunch of buggy ones.
(・_・).。oO ( Very interesting comments here. )
@heliosdrm a curious question as someone that is not following the development here. Is there a reason not to merge GRUtils.jl with GR.jl and start working on a common codebase for the recipes? I am just asking because fragmentation in different packages tend to complicate external contribution usually. End users may not grasp the differences between the two, and sometimes may even avoid using both because they can't predict which one will become the standard. I've seen that happen in Julia packages before.
Is there a reason not to merge GRUtils.jl with GR.jl and start working on a common codebase for the recipes?
Maybe that the current situation "just works", other issues have greater priority, and developer time is limited. But that was, and I hope it is still the plan (see #225 for the context of why and how GRUtils was created out of GR).
Every time I get stuck with a Plots.jl bug I remember this issue here. It would be so nice if everything was pure GR 😭
Closing the issue as the community is moving towards Makie recipes nowadays.