Anyone crazy enough to develop a pure Julia GUI toolbox?

Why would you want to create a GUI app for an input form? Isn’t it much easier to create a web form? You could serve it from genie.jl for instance.

It would also be perfectly cross-platform.


Don’t recall if we opened an issue or not. Probably not, since we’ve only been opening issues for obvious bugs.

Several responses have suggested web-based and I have to say I am reluctant to take that approach. Web browsers are great at what they do, but the issue I have is I don’t think anyone really knows what it is that they are doing. You can call me paranoid, I really am not but I have never really been satisfied about who is getting what information from a browser.

Yes, I am aware of the security features, but who is going to put clandestine code in and then provide a way to block it? Doesn’t make sense. I am also aware of Linux security, but as one contemplates the potential security problems that have been discovered, much less the ones that haven’t it is easy to imagine spending more time preventing clandestine data collection than actually making the UI.

Again I may be paranoid here, but every time I get where I am comfortable and consider using a web based interface, someone publishes a report about a “bug” in the code that allows browsers to monitor my activities. I would rather just keep the data flowing locally, and know where it is going. Bottom line, I do not trust the companies who make browsers, they have violated my trust far to often to be trusted.


Reminds me of GitHub - elkowar/eww: ElKowars wacky widgets

I am sorry if that came across as a harsh criticism, it was not intended to be.

It does make sense, except that not all of GTK is supported by GTK.jl as far as I can tell, and the GTK documentation is written as if I am fluent in C++, which I am not, nor do I really have a desire to learn yet another language. I chose to learn Julia to avoid the “two language problem” and having to learn C++ to create a GTK interface, tells me I should have skipped the Julia step and gone directly to C++.

Again I am not pointing a finger at you, or heaping blame on anyone in particular, but I am already getting my brain stuffed full of high level genetics, evolution, epigenetics and other biological theories, add in there Python, as many bioinformatic programs are written in Python and I would like to be able to read them and maybe learn something from these black boxes we biologists use, and R because, my advisor doesn’t trust Julia Stats, because “it hasn’t been used in any publications that I is aware of”. This is a compromise under the category of picking battles. So I just don’t have the bandwidth in a 54 year old brain to start a deep dive into what by all accounts is an obtuse and temperamental and old man “get off my lawn” cranky language such as C++.

1 Like

see my response about using web based forms.

1 Like

Yes. I want to use Autocompletion to control entry errors. For example, I have over 100 varieties of blueberry in my database that are correctly spelled ( I double checked) and one of the varieties is BlueJay. This is the correct spelling, no space (and don’t get me started on BlueRay). However, it is very common to put the space in there which the database would interpret as a different variety than BlueJay. Also there is a variety named Rancocas, which is just inviting misspellings. Autocompletion would solve these issues if the list tree were populated from the Varieties already entered into the Variety table.

1 Like

Since likely you are doing research, why do you ever need a GUI?

Belive it or not I’m a bit of a maverick. I don’t store my data in an Excel spreadsheet like most of the biologists I work with, way too clumsy, inefficient and prone to data entry errors. Excel was never designed for data storage. I use databases (trying to make the switch to Mariadb from Access) , and without at least a rudimentary GUI entering data into a database is the same as entering into a spreadsheet.

The best research in the world is useless without a good place to store your data.


I believe MariaDB is a SQL database? Julia has several nifty packages for dealing with that.

Data entry into a relational database? Haven’t seen any but I may not be looking in the right places.

Oh, yes, I’ve used ODBC.jl quite a bit. That allows communication but the entry of the actual data into the tables is still difficult.

Why wouldn’t a researcher need GUIs? Anyone who does lab work with electronic equipment for example are likely to use GUIs, I spent a lot of my lab time developing a GUI package for acoustic measurement and control.


Certainly, with a GUI, users can easily access some functionality and do simulations and analysis etc. more conveniently. However, it is tedious to design and write a GUI app. For research work, as the research goals and projects change rapidly, it is not possible to have a single GUI suitable for all research projects. It is simply not worth it to develop a full functional GUI. Hence, as compared to GUI, it is more natural to use Jupyter notebooks or Pluto.jl. As a researcher, we can do all kinds of work (produce data, process data, store data) without ever needing GUIs.

If your work is so popular and important, sure, you can then try to write a GUI and commercialize it. Otherwise, it is not worth it.


I second this point.
My impression is that the “classical” GUIs are being more and more replaced by (JS-based) web frontends, which can run in any (modern) browser on any system (including mobile devices) or as standalone Electron apps.
Thus, investing a lot of resources in developing a classical GUI framework may be a dead end.

The fastest / easiest way to build a GUI in Julia is using Pluto.
If you need more flexibility / more complex GUIs, a JS framework like Vue or React is probably the best choice, which can be combined with a Julia backend.


I’m sorry. Are you talking about writing a GUI app, or about developing an entire library for creating GUIs? I can see how the latter is a pretty big task to take on inside of a research project, but writing a GUI app is something that takes between 30minutes and several months.

Not necessarily. Some parts of a research project may be changed, but I’ve not come across a project where no part of it remained stable throughout the project period. The need for a GUI package for experiments would typically be a predictable and stable requirement.

That’s not necessary. Often you just need a specific GUI for a specific task.

Shrug. I did. There wasn’t really an alternative, except buying a $60,000 system that wasn’t flexible enough for our use and took up a lot of floor space. And notebooks is not an alternative when the GUI needs get more complicated.

I think you are either generalizing wildly, or talking about something I’m completely missing.


I have to say that I agree with @liuyxpp here. I never saw a reason for coding a GUI for data input in research. Even if you need to collect data from people from outside the research, then you can go with an online and free browser-based solution that delivers a CSV with the answers at the questionnaire period. Otherwise, data will probably be generated from automated means or a personal spreadsheet is a much better cost-benefit solution.


There are many fields of research and many kinds of data input, with very different requirements on the user interface. Image annotation tasks tend to be pretty difficult without a GUI whereas other don’t need any graphics at all. My favorite UI tool when it’s expressive enough is REPL.TerminalMenus. But more important than anything, automate everything which is possible. Don’t let humans enter names if it can be avoided, especially filenames. They will introduce errors or inconsistencies and if you’re unlucky those will haunt you for years.


I’m a bit surprised at how people are able to generalize their own experience to make conclusions about the needs of others:/

I definitely needed a GUI for interaction with my measurement system. I have no problem understanding that not everyone needs a GUI, but I have problems with the claim that no researcher does.

Edit: And now @GunnarFarneback’s post reminded me about how we were completely dependent on a in-house GUI for interactive analysis of image data. I would say using self-made GUIs has been a large part of many projects.