GR.jl icon indicating copy to clipboard operation
GR.jl copied to clipboard

GR.jl + GRUtils.jl + recipe system?

Open juliohm opened this issue 4 years ago • 9 comments

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.

juliohm avatar Sep 21 '20 23:09 juliohm

@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.

juliohm avatar Mar 02 '21 14:03 juliohm

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.

jheinen avatar Mar 02 '21 18:03 jheinen

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.

juliohm avatar Mar 02 '21 18:03 juliohm

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/

heliosdrm avatar Mar 03 '21 09:03 heliosdrm

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.

juliohm avatar Mar 03 '21 17:03 juliohm

(・_・).。oO ( Very interesting comments here. )

kojix2 avatar Mar 03 '21 23:03 kojix2

@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.

juliohm avatar Mar 11 '21 00:03 juliohm

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).

heliosdrm avatar Mar 11 '21 21:03 heliosdrm

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 😭

juliohm avatar Apr 25 '21 19:04 juliohm

Closing the issue as the community is moving towards Makie recipes nowadays.

juliohm avatar Jul 23 '23 02:07 juliohm