* C++ and GTK or other UI framework : hard but excellent performance.
* Java and Swing UI framework : easier but less performant.
* Javascript and Electron : easy but terrible performance.
Which one will prevail?
* C++ and GTK or other UI framework : hard but excellent performance.
* Java and Swing UI framework : easier but less performant.
* Javascript and Electron : easy but terrible performance.
Which one will prevail?
From the development side you get WYSIWYG UI editing, an IDE that has deep understanding of the code and updates it "live" as you make modifications to the UI (and other "managed" components), very fast compilation times, a very mature and rich framework (which is also very stable as the developers almost never break backwards compatibility meaning your code will compile for years to come) and recently the IDE got an online package manager and installer (repositories existed for years but they were manual to install).
Also the entire IDE can run and be usable even on a first generation Raspberry Pi (though for comfort, especially with the UI designer, it is a better to use something slightly faster).
The negative side is that as it relies on native widgets, it is much harder to create custom themes. Though there are themeable controls available (especially if you are not against paying for them as there are a few companies selling commercial components for Lazarus). Personally i prefer native controls anyway.
Have you ever heard of static linking? Assuming you're using a GUI framework that has a sane license which allows that, it is rather easy to get "self-contained" native executables in most languages.
Lazarus is nice though: Delphi has always been an awesome RAD IDE and Lazarus brings cross-platform support to it.
Lazarus being much easier to use than the first two while requiring minimal resources and providing an advanced yet lightweight IDE (among other stuff) are more important IMO.
(Thank you for the hint though.)
[1] https://www.pilotlogic.com/sitejoom/index.php/downloads/cate...
But all you need to do is to install the AnchorDockingDsgn package (and optionally the sparta_DockedFormEditor package so that the form designer isn't floating but itself also part of the main window - yes the package names could be better).
I think they should ask you the first time you run it though. It already has a first time setup dialog anyway, showing two buttons with screenshots of the two setups shouldn't be that hard.
Or at least this was true for Delphi, not sure about Lazarus
Same goes for Swing, I didn't mind writing in it, but the framework parts aren't really easier than Qt etc. Java as a language has fewer footguns than C++, so if you include that, sure...
There's also FPC/Lazarus as a Delphi replacement (the original seems to be driven into the seventh layer of enterprise heck). Easy enough to create small-ish native UIs.
Then you have the 95% of apps that just need an interface.
For close to four decades OS providers have actively fought against the development of a common cross platform GUI framework that was easy to use.
Now finally we have electron so we can use the only existing cross platform gui platform (html/javascript) that survived in spite of the big players attempts to kill it.
So electron/javascript will dominate. It’s not pretty but it’s the best we have.
https://github.com/google/flutter-desktop-embedding
But I think they will focus on mobile first so the time when we can use Flutter for desktop programming is still far far far away.
Also you forgot, PyQt and PySide: easy but terrible performance.
Is performance that terrible though? VSCode works ok for me, is it more to do with how people use Electron rather than Electron itself causing the performance downgrade?
* Revery (language: Reason) - https://www.outrunlabs.com/revery/
* WebView (language: C/C++/Golang) - https://github.com/zserge/webview
* Dear ImGui (bindings exist for many languages!) - https://github.com/ocornut/imgui
* Flutter (language: Dart) - https://flutter.dev/
None have really stood out yet to replace Electron, but the future seems bright.
Using AOT compilation and not doing everything on the UI thread solves the performance issues.