JuliaGraphics / Luxor.jl

Simple drawings using vector graphics; Cairo "for tourists!"
http://juliagraphics.github.io/Luxor.jl/
Other
576 stars 72 forks source link

User testing before release #258

Closed hustf closed 1 year ago

hustf commented 1 year ago

1)

As mentioned in #255, the latest changes are hard to test in a CI environment. I took Luxor through the paces here. The readme's are linked from the main one and shows the graphics.

There are limitations from the libraries we use here:

As long as we don't have exact limits, I believe checking against them may prevent users doing extreme things. It's probably better to error upstream, and one day these small problems may be fixed.

So I have no suggestions for improvements to the current master. I would release now.

2) The repo linked above is also an experiment: What is needed to work like many of us are familiar with from CAD: Have a 'model space' and a 'paper space' for adding annotations and the like. Hence, 'LuxorLayout.jl' is implemented as a module, and I think it can be quite useful for some users.

The LuxorLayout module could be implemented in Luxor.jl, but that would introduce even more user interface - most Luxor users won't be aware of half what you can do already. I am interested in your thoughts on the matter. Maintaining a public package is something I personally won't do alone, especially the documentation part of it. On the other hand, I'd love to use the functionality, and as a minimum I would put this in a package structure on my own registry.

cormullion commented 1 year ago

The LuxorLayout module could be implemented in Luxor.jl, but that would introduce even more user interface - most Luxor users won't be aware of half what you can do already. I am interested in your thoughts on the matter.

Luxor's purpose was (and is) to provide an easy way to create simple graphics, so I like to keep it focused on that goal. I try to point people towards other graphics packages - Compose, Makie, Layered, Descartes, ConstructiveGeometry and others (eg MakieDraw) which can provide more sophisticated operations, more object-based structures, better interfaces to more seriously implemented and tested JuliaGeometry libraries, and so on. Perhaps they won't be quite as simple as Luxor, but they should be more powerful for rich interfaces and complex graphics.

I think there's definitely an opportunity for someone to design and build a better 2D package; perhaps it's still early days in the Julia ecosystem?

hustf commented 1 year ago

Oh, should remember, but forgot: "Luxor is the lightest dusting of syntactic sugar on the Cairo graphics package"! That was in November 2014 (I checked).

Thank you for the reply. I hadn't noticed Descartes and Constructive Geometry. It is fascinating how people approach graphics from different sides: I could never get my head around the way Compose and Layered works (or rather, why) - perhaps that's the way real computer people think, those who understand the world as functions of functions? Some hands-on programmers prefer scripting a 3D construction rather than learn to use a mouse and a spaceball. My start was with AutoCad, keyboard commands and a built-in Lisp interpreter. That's 58% of my years ago. Still, I think in 2D, prefer less grouping and less abstraction for sketching ideas and building mental models. So Luxor is the graphics tool for me in Julia, no doubt! I love it!

I prefer ten year old programs. Most of what's in Luxor is there for a good reason - please keep it that way!

Still, it's nice to tweak it a little, like Thebes.jl!

@oheil, your thread-safe thingie was a really nice addition to Luxor, and an example of what does, perhaps unfortunately, need to be done in Luxor itself. I'd just like to thank you both for this. I have some ideas I'd like to explore with the combined tools now!