Anyone crazy enough to develop a pure Julia GUI toolbox?

Copy/paste in text boxes would be nice too

You know what would be amazing? A natural language description to gui code chatbot.

ā€œI need a window with a plot tool and a set of inputs for the quantities … Put a scroll bar on the left that scrolls the pane of inputs … Now do it in a dark theme with small drop shadows around the controls… When you hover over each control pop up a hint box… Now write the hint textā€¦ā€

3 Likes

javascript is not a visual language, it can’t do any UI things. It can only code UI things. There’s a world of difference.

Is anybody familiar with the guiEditor, a visual graphical user interface editor for GNU Octave?

guiEditor appears similar to MathWorks guide, and it is in active development. It utilizes the Qt framework.

It is described in this article.

Perhaps this work might offer inspiration and a path for a similar tool for Julia.

3 Likes

Maybe that’s a meaningful version of the proposed idea? Ie GUIs.jl which wraps other backends like GTK.jl (or potentially Quartz.jl, LinuxWM.jl, WindowsWM.jl, …) so a unified interface can be used that has a Julia-style design. But probably these frameworks are too different to make this possible.

1 Like

With regards to the excellent Makie plotting package,
one widget I would suggest adding is a tree-type directory and file display with an option to return all the files names in a directory for loading into an application or returning the name of a file or names of a set of files selected within a directory for loading into an application.

I think that there are many common use scenarios for such a widget.
Assume that it would involve a fair bit of gruntwork.

As a general comment, after having followed this discussion, rather than a full heavyweight Julia GUI toolbox - a massive task, a reinvention of the wheel with a potential steep learning curve for users [re Qt, GTK, etc.], my preference is that the set of Makie widgets becomes the de facto standard for a lightweight Julia [scientific] GUI as the current set of Makie widgets is a very good start.

3 Likes

Seems a perfect fit.

1 Like

I am making it rn, already got a window up *sunglasses

2 Likes

I appreciate when some of these older threads get resurfaced for us newcomers… good read and reinforces some things I’ve been thinking about:

  • Focus on scientific and engineering app development, particularly sharing of internal tools
  • Leverage the existing, well-understood Julia UI ecosystem players, e.g. Makie and Genie, rather than reinventing yet-another-widget-system
  • Be cross-platform. Your practical list of options isn’t too big to explore (and I’ve explored most of them at this point…)
  • More recently, I’ve been thinking about the ā€œlivenessā€ aspect and how that is a more Julian experience in parallel with our REPL-based workflows. The discussion here about tools like GUIDE resonates with some things I’ve been looking at this week such as tools like the Pharo Smalltalk environment; I’ve found myself easily able to substitute ā€œJuliaā€ for ā€œPharoā€ in many of the threads describing the philosophy behind the environment.

In conjunction with (but, importantly, not dependent upon) improvements in the compilation environment, I agree with the sentiment that such a capability could contribute to a step function in Julia adoption.

1 Like

Although offtopic, you might be interested into that universal Smalltalk-like IDE (written in Pharo) that you can add Julia support for.

Yes, tracking Glamorous and moldable development, malleable software (and other research at Ink & Switch), and related efforts – all are quite on-topic as ways to think about a GUI development experience that is appropriately Julian. I didn’t know about the existing Julia support in GT – thanks for that! – and would be interested in experiences of anyone who has used it or something similar.

2 Likes

Love to see this discussion re-surface. As usual you folks are talking over this humble Biologist’s head but it has re-kindled my interest in the GUI development.

BTW I have tried GTK.jl and QT and find them to be obtuse and almost intentionally confusing. Glide (if that is the name of the GTK’s GUI for GUI’s) in my opinion needs to become the standard of how to write absolutely horrific software yet pass it off as quality. On top of that the documentation is actually worse that the software.

As an American if you figure this one out, let us all know. We tried in the 70’s but it petered out. Why? Don’t know. I hate using obscure completely arbitrary units for measurement of anything.

What do you not like about QML.jl ?

I know I should have improved the documentation more than I did so far, but I think the examples are great. If you want to improve the current status, the most effective way would be to improve the documentation of QML.jl. A lot less work than writing a new GUI library.

1 Like

Glade… and it’s deprecated in favor of Cambalache.

I’m generally thinking GTK, Qt and similar are good to have as options through Julia bindings, but are best for general application development with a relatively significant investment. Julia isn’t too great in this space at this time. We need something a little more lightweight (for the developer), but that closes the perceived gap between the Julia-native toolkits (e.g. Makie, Genie) and the kinds of desktop apps we might develop and deploy as internal tools for scientists and engineers.

3 Likes