Future directions of Julia

Don’t have self experience but I heard that Mono+C#+.NET does a good job on linux.

Back in the day(5-10 yrs ago) Mono C# was pretty rough. I’ve heard it’s gotten better, but everyone I know doing C# dev for employment is windows only. Not trying to be a nay-sayer, but I wouldn’t be surprised if it was still more than a little rough around the edges. Especially considering how much .NET has changed since then.

In Matlab it’s pretty easy to program GUIs. It would be fantastic if we had the same facility in Julia.

10 Likes

There are all kinds of niche solutions for GUIs in various languages (eg McCLIM), but practically they are not really used or maintained.

Is programming UIs in Matlab easier than with Gtk.jl?

Even if they’re equally easy, GTK.jl is basically unusable on windows.

1 Like

Yes it is. And with the new Matlab appdesigner it’s even easier: you can easily manually align items on the gui and once placed the callback placeholder is already generated. You don’t have to mess around with Glade, xmls, programatically aligning stuff on vboxes or taking care of signals.

https://github.com/JuliaGraphics/Gtk.jl/pull/523

1 Like

How do you define “easier” here? I’m not doing UI in matlab - my colleagues do, but from the outside it looks like they can help themselves with the appdesinger and the documentation. Code i have seen looks quite similar to pygtk.

I have only barely tried Matlab’s new app designer, but with the old Guide Gui designer, I almost always gave up and did the layout manually, or with something like (the unofficial) Gui Toolbox.

It’s not that it didn’t work, but it produced ugly, non-scalable guis, and ugly awkward code.

I believe the new designer is significantly better.

GUI design was a serious Achilles heel for Matlab for decades.

@lobingera: I am not defining easier here. It was an honest question to @joa-quim since I have not yet programmed a UI in Matlab. So the question was/is: what is easier in Matlab than with Gtk.jl

My personal experience is that there is a certain level of knowledge that is required in any UI framework and from than on its pretty similar to program any UI framework. I have in-depth experience with WPF/C# and found, after switching to Gtk, Gtk not much harder than WPF.

A bit off topic but check out https://platform.uno/.
For a more official MS cross-platform solution (windows, Mac, iOS & Android but no Linux) check out Xamarin/Xamarin forms.

Matlab circa 2006: Not quite a week (no prior experience, really):


The user can interact not only with the widgets, but also with
the images. BTW: This was created with ~13-y ago. No GUI tool was used.

2 Likes

Since you are replying to me: Is that a question if it is possible to do this with Gtk.jl? Or what is the question? (I am doing medical imaging as well and have written a similar data viewer in Gtk.jl)

I cannot honestly answer that because I have no experience with GTK.jl. But I was not referring specifically to the GUI design. Matlab produces an awfully long verbose GUI code but one can strip out ~75% of it. But it’s the interfacing with GUIs that is so easy. Either images or vector elements.

There are much nice looking GUIs in other languages but programming simplicity it’s Matlab.

No question: just supplying info so that you could answer your question: how different is (was, really, I haven’t used it in years) Matlab and Gtk.

ok, so is that a Matlab UI?

Yessir. Sorry I wasn’t explicit.

This does look enticing. But it appears to be proprietary.

Ok, thanks. I should clarify in what would be easy with Gtk and what would be more difficult. Basically everything in the lower right corner is very easy. One just clicks it together in Glade is done. One difference is the layout manager, but understanding grid and box layout is not that complicated. The screenshot seems to be using absolute layout, which is usually not recommended in any UI framework.

What is indeed a little bit more challenging are the other parts. I would call these “higher-level” widgets. Gtk itself does not really offer much in that space. So it is required to implement these on you own. If there is interested in it we could have some “GtkDataDisplay” package to work on this part. Currently we have various scattered places where these things are implemented. As I have said, I have an implementation of a 4D data display but in its current state it is not really generic.

1 Like

I think in Makie the situation is a bit opposite from the established GUIs. I think we have good functionality with dynamic plots and dynamic axes. With MakieLayout these also can be really easily combined into flexible layouts (better than Matlab I’d say). But “normal” GUI elements can be a bit of a drag to implement correctly, so for example our text field is primitive.

2 Likes