top | item 24252239

(no title)

UnnoTed | 5 years ago

The stable options for native cross-platform GUI are:

1. Sciter

- Languages: C++/Python/Go/Rust/Pascal (optional: HTML/CSS/tiscript)

- Development time: fast

- Resource usage: light (space and performance)

- Visual customization: easy, doesn't use native widgets.

2. Qt

- Languages: C++/Python (optional: CSS/JS/QML)

- Development time: slow

- Resource usage: quite heavy (space), but well performant

- Visual customization: QtWidgets: hard, QML: easy, doesn't use native widgets.

3. WxWidgets

- Languages: C++/Python

- Development time: slow

- Resource usage: light (space and performance)

- Visual customization: hard, uses native widgets.

4. Lazarus

- Languages: Pascal

- Development time: slow

- Resource usage: light (space and performance)

- Visual customization: hard, uses native widgets.

[1]: https://sciter.com/ - https://quark.sciter.com/

[2]: https://www.qt.io/

[3]: https://www.wxwidgets.org/

[4]: https://www.lazarus-ide.org/

discuss

order

dkersten|5 years ago

I’m not sure how you’re coming up with the development time estimates but personally I’ve found Qt to be fast to develop in, both Widgets (using designer) and QML. Hell, I mostly do React web UIs nowadays for various reasons, but I find QML a lot easier and faster than web UI’s, especially for layout (vs bootstrap style layouts as well as flexbox and css grid).

zelly|5 years ago

You can add Flutter to this list which is becoming a viable option for desktop UIs. The downside is Dart, but that's not so different from picking Pascal/Delphi just for its UI framework.

sli|5 years ago

I would say the downside is Google, because they may just kill Flutter and/or Dart even if they get popular. I just can't make myself hitch anything important to Google's tech anymore.

I do think Dart itself is a fine language, though.

pkphilip|5 years ago

I am not sure what you mean when you say that the development time on Lazarus is slow.

I would actually say that it is perhaps the fastest in the list.

mamcx|5 years ago

True. Lazarus/Delphi are the "APEX predators" for UI building. Their only caveat is their lack of resources (Lazarus) and weird costly licensing (Delphi).

billfruit|5 years ago

One another viable option may be java with JavaFX.

andi999|5 years ago

Tk is probably also native since version 8 or so. But somehow the tutorials for Tk usually have ugly examples (not pleasing the eye).

jabirali|5 years ago

At least on Linux, Tk apps still tend to look like remnants from before Windows 95. (Which personally is the main reason I avoid Tk apps whenever possible, including Tkinter apps.)

bscphil|5 years ago

Do you have to update code to take advantage of native widgets? I use SCID [1] because it's the best FLOSS tool for its purpose, but the interface is still absolutely horrific looking. It doesn't even respect the DPI hints that GTK and QT programs do, so the fonts are too big on my computer.

[1] http://scid.sourceforge.net/

raverbashing|5 years ago

WxWidgets worked fine and it was very easy to integrate on small C++ projects when I tried. If you just need some basic windows it's the way to go.

Qt is good but it requires you to go fully into the Qt ecosystem (build tools, etc) not sure about QML though.

bsenftner|5 years ago

I second wxWidgets. It can produce small executables, like 50K, that sport a complete modern UI. Just look for the AUX addition, that the more modern and customizable version.

zerr|5 years ago

Qt (Widgets as well as QML) doesn't use native controls and it is fairly easy to customize (even Widgets, lookup "stylesheet").

For wxWidgets, there is wxUniversal, which draws custom controls, thus easier to customize - not sure how well it is maintained though.

I'd argue that dev time is quite fast for all - Qt, wxWidgets, Lazarus.

andi999|5 years ago

I dont know if Lazarus compiles as fast as Delphi, but I'd argue that dev time for Delphi is equal to compile time for Qt app.

dublin|5 years ago

"Native" GUI toolkits that do not fully implement pen and touch UI are not really native, are they? Do NOT assume your users are on devices that are limited to 20th century UI hardware! (Win10 can fully leverage both pen and touch, iOS does touch well and pen fairly badly...)

justin66|5 years ago

You've overstated the comparative advantages of Sciter so much that, upon clicking through, people might flash back to when they found out was a Segway was and shout, "it's a @#$&-+) scooter?!?"

bscphil|5 years ago

In particular, it's very weird that "doesn't use native widgets" is presented as an advantage, given that apparently the result is that your apps end up looking like this on every platform: https://notes.sciter.com/

adontz|5 years ago

I'd rather disagree about Qt/QML. It is fast.

What people initially miss about UI libraries is composition features. Which are over the top for QML and not so to put is softly for Sciter.

billfruit|5 years ago

Perhaps Xamarin as well, not sure if it works on Linux.

digi59404|5 years ago

It does but by default it uses GTK2. You won’t get the same experience on all platforms with Xamarin Desktop. Each platform has a different rendering engine.

collyw|5 years ago

Pascal is still going?