Future directions of Julia

It would be so great if one could combine Makie with Gtk. I am doing this right now with Winston.jl, which works ok but Winston.jl lacks quite some plots. Isn’t there a Cairo backend within Makie.jl? Then it would be easy to combine them.

There is, but it’s not been written with interactivity in mind. At least I only put care into making good 2D vector graphics when I started improving the package, I don’t know what Simon had in mind

Yes, Matlab only had proper support for absolute layout until a couple of years ago, so guis looked terrible. You could easily make something that worked, but it was an eyesore.

1 Like

No both are completely free and open source.
Note that in .NET 5 Xamarin forms is renamed to MAUI Introducing .NET Multi-platform App UI - .NET Blog.
But personally I still think that Uno is the better way to go.

For another option for a modern cross-platform GUI solution: check out Flutter https://flutter.dev/.
iOS/Android,web, desktop (windows,mac,Linux) even Xbox via UWP. pretty sweet :wink:

2 Likes

(am i the only one, we had discussions like this before?)

At work i have matlab available. I played with the App designer today - this is how it should be: GUI design and code editing inplace, also very simple way to ‘package app’. I’m convinced that (apart from intereference/compilation delay) everything could be done manually or mixed with external tools in julia at the same level of End-GUI performance, but the integrated tooling is just impressive.

The uno thing looks nice from usability perspective, trying to integrate julia code might be closer to impossible (as no C-API is available).

1 Like

Racket that was already mentioned before is very good with creating quick and clean GUI interfaces as well:

Maybe it’s possible to make something like Flutter but completely in Julia, sharing some code with Pluto.jl.

1 Like

Didn’t know you were also an Amigan!
I was one since 1985, went to all of the Amiga Developer’s Conferences, knew all of the Amiga team and the Amiga community. Wonderful times!

In Matlab, you are still left with a relatively slow GUI compared to what I just made with Makie and the Observables. Getting additional elements in there like dialog boxes, text input, file selection, maybe some dials would go a long way.

1 Like

After using MATLAB App designer for some time, I find it not so impressive. Yes, they get rid of legacy boilerplate, made a little nicer UI builder and wrapped the whole GUI code into one big class. But they made many poor decisions with it:

  • Now your source code is not a text, but a proprietary binary format, so no version control can be done. You cannot even compare commits or PR!
  • Wrapper types around classical GUI elements, lacking backward-compatibility with the old code. For example, try to bind some event listeners to UIAxes or change its property, you will find that they made some properties private (why?), so you should convert UIAxes wrapper to Axes, and even then it has bugs just because you change it directly, bypassing that wrapper type.
  • New code editor is altering from the classical one in many strange and inconsistent ways: custom fonts and styling (that cannot be changed), read-only lines of code (because they are linked to GUI elements), different error handling and debugger - so now you have two different editors with different behaviour and inconsistesies when using both at a same time.
1 Like

I am, in my professional life, an enterprise software guy. I got attracted to Julia about four years ago after reading a description of how an early version was used by MIT to develop (and simultaneously document) an algorithm for the new collision avoidance system to be mandated by the FAA. I fell in love with its expressive syntax that feels similar to Ruby, another language I love. I coded for many years in Java, but after learning Julia I lost all interest in Java, which is sad because Java has become the standard for many large companies (excepting the internet giants, of course). And it is getting harder to find Java developers. (I have turned out dozens of Java developer job offers in the past year!) SO … I think the enterprise space is ripe for a new language that can play well with existing Java apps but offer developers a far better coding experience. Some people might argue that python is there now. But I’m not sure python can compete with Java in raw speed.

All this to say that I believe the regular, staid world of corporate IT could be attracted to Julia. I have started a project to build an XSD (XML Schema Definition) parser for Julia. My parser runs but is not yet full featured ;-). Having an XSD toolkit will open the door to generating client and server stub code for SOAP/XML transactions, which are still widely used.

To support the enterprise, Julia will need packages for security, identity and access management, awesome network API libraries, and the ability to support middleware such as Kafka, MQSeries, and JMS queues. In short, Julia needs to be be pluggable into the enterprise service bus in its various forms. It needs to be easy to deploy and managed on the cloud. We can rise to the challenge!

25 Likes