# Future directions of Julia

**URL:** <https://discourse.julialang.org/t/future-directions-of-julia/46269>\
**Category:** Community\
**Created:** [September 8, 2020, 2:21pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269 "2020-09-08T14:21:17Z")\
**Posts on this page:** 20\
**Page:** 7

<div class="post-metadata">

**Author:** ![anon92994695](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@anon92994695](https://discourse.julialang.org/u/anon92994695)\
**Post date:** [September 26, 2020, 8:36pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/122 "2020-09-26T20:36:26Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [September 26, 2020, 11:11pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/123 "2020-09-26T23:11:57Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [September 27, 2020, 7:25am UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/124 "2020-09-27T07:25:50Z")

</div>

There are all kinds of niche solutions for GUIs in various languages (eg [McCLIM](https://github.com/McCLIM/McCLIM)), but practically they are not really used or maintained.

---

<div class="post-metadata">

**Author:** ![tknopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tknopp/32/3569_2.png) [@tknopp](https://discourse.julialang.org/u/tknopp)\
**Post date:** [September 27, 2020, 12:02pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/125 "2020-09-27T12:02:34Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Jordan\_Cluts](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jordan_cluts/32/13753_2.png) [@Jordan\_Cluts](https://discourse.julialang.org/u/Jordan_Cluts)\
**Post date:** [September 27, 2020, 1:03pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/126 "2020-09-27T13:03:00Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)\
**Post date:** [September 27, 2020, 1:24pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/127 "2020-09-27T13:24:34Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [September 27, 2020, 1:37pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/128 "2020-09-27T13:37:56Z")

</div>

[https://github.com/JuliaGraphics/Gtk.jl/pull/523](https://github.com/JuliaGraphics/Gtk.jl/pull/523)

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [September 27, 2020, 1:40pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/129 "2020-09-27T13:40:11Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [September 27, 2020, 3:12pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/130 "2020-09-27T15:12:48Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![tknopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tknopp/32/3569_2.png) [@tknopp](https://discourse.julialang.org/u/tknopp)\
**Post date:** [September 27, 2020, 3:27pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/131 "2020-09-27T15:27:48Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Steven\_Sagaert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/steven_sagaert/32/29578_2.png) [@Steven\_Sagaert](https://discourse.julialang.org/u/Steven_Sagaert)\
**Post date:** [September 27, 2020, 3:29pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/132 "2020-09-27T15:29:21Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [September 27, 2020, 3:33pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/133 "2020-09-27T15:33:40Z")

</div>

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

 ![unnamed](https://global.discourse-cdn.com/julialang/original/3X/7/e/7e8c26d8ff9750e31c68ef302b263d524823e5f3.png)  
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.

---

<div class="post-metadata">

**Author:** ![tknopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tknopp/32/3569_2.png) [@tknopp](https://discourse.julialang.org/u/tknopp)\
**Post date:** [September 27, 2020, 3:41pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/134 "2020-09-27T15:41:48Z")

</div>

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)

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [September 27, 2020, 3:44pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/135 "2020-09-27T15:44:34Z")

</div>

> [@tknopp](#):
>
> Is programming UIs in Matlab easier than with 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.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [September 27, 2020, 3:45pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/136 "2020-09-27T15:45:13Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![tknopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tknopp/32/3569_2.png) [@tknopp](https://discourse.julialang.org/u/tknopp)\
**Post date:** [September 27, 2020, 3:49pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/137 "2020-09-27T15:49:09Z")

</div>

ok, so is that a Matlab UI?

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [September 27, 2020, 3:50pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/138 "2020-09-27T15:50:35Z")

</div>

Yessir. Sorry I wasn’t explicit.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [September 27, 2020, 3:59pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/139 "2020-09-27T15:59:21Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tknopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tknopp/32/3569_2.png) [@tknopp](https://discourse.julialang.org/u/tknopp)\
**Post date:** [September 27, 2020, 4:06pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/140 "2020-09-27T16:06:21Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [September 27, 2020, 4:09pm UTC](https://discourse.julialang.org/t/future-directions-of-julia/46269/141 "2020-09-27T16:09:13Z")

</div>

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.

[Previous page](https://discourse.julialang.org/t/future-directions-of-julia/46269.md?page=6)

[Next page](https://discourse.julialang.org/t/future-directions-of-julia/46269.md?page=8)
