Mahlet-Inc / hobbits

A multi-platform GUI for bit-based analysis, processing, and visualization
https://mahlet-inc.github.io
MIT License
660 stars 45 forks source link

Consider Electron for GUI #131

Open hello-adam opened 2 years ago

hello-adam commented 2 years ago

I'm not sure about this, but Qt 5 is becoming a pain to deal with for builds (doesn't work with GCC 11) and Qt has been pretty routinely complained about by both professionals and students that have worked with this project. Even though I'm very familiar with Qt, I really like the idea of programming the UI with web technologies and I think that will make UI development easier for students/interns as well.

I guess this would require the core library to be free of Qt stuff and to have a JS package. A nice bonus would be that pure JS plugins would then be pretty straightforward.

eden-desta commented 2 years ago

Electron actually works beautifully with React, and creates executable for the relevant OS distributions (macOS, Windows, Ubuntu). And React is grand because it allows you to develop on a component level which can reduce your overhead especially because you all separated out your Qt development into widgets (which was marvelous). That way development can be more component/widget level at a time instead of having to transition the entire project over at once.

This is if you are considering React. Obviously there are a ton of other frameworks (Angular being right up there with React, or Vue). And you can still maintain your general back-end efforts using something like Flask to bridge your UI to you API! In short i definitely agree with you in potentially transitioning the UI to a web framework of some sort.

hello-adam commented 2 years ago

thanks for the feedback on this! and yes, I was thinking React would make sense.

I experimented with Node-API, cmake.js, and electron a couple weeks ago and I'm now slightly more convinced that this will be pretty straightforward and interesting.

classabbyamp commented 2 years ago

(from a linux distro perspective) electron is a massive pain to deal with. It's most optimal to be able to use the system electron instead of a bundled version, and many electron-based packages make it very painful to un-bundle electron.

hello-adam commented 2 years ago

that's a good thing to keep in mind - I am not very familiar with distros and OS package managers. Would using something like electron-builder not be as straightforward as it sounds? Is the issue with the tight bundling a matter of size?

classabbyamp commented 2 years ago

Would using something like electron-builder not be as straightforward as it sounds?

it may help for some distros, but I can't speak for all of them

Is the issue with the tight bundling a matter of size?

I think mostly size, not having duplicate things across the system, allowing for security updates to be handled, and allowing for compatibility patches to be added as needed. There's probably other reasons too

hello-adam commented 2 years ago

Ok, thanks for putting this on the radar