Yeah, it is mostly laziness and cost cutting at the expense of users.

Nowadays there isn't even an excuse anymore, just vibe code it away in native frameworks.

Which native framework?

Even in a "post-vibe code" era I wouldn't want to create multiple versions of the same app, and none of the "platform-native" GUI toolkits run on everything.

SwiftUI is apple-only, gtk has pretty bad compatibility on non-linux, qt is decent but requires C++ or python, and even so still not much for mobile. Don't even get started on "Windows frameworks", because as I write this sentence they may have left a new one in the ditch.

Flutter may be the closest, but why didn't they go with e.g. Java instead of a new language?

So yeah, if you want a truly universal UI then web is your best bet.

> if you want a truly universal UI

Right. If you want your app to look the same, custom way, ditching what the OS has to offer.

Some developers still believe an operating system has useful UI components and patterns worth adopting. From this thread it's clear that there's plenty who don't. Personally I view that as a regression.

Well, maybe Java's AWT has been correct all this time.

Of course there is value in having "OS-native" buttons, transitions, windows etc. And many parts of GUIs are basically standardized. The problem is all the parts that are not, and have to look the same everywhere.

Probably many Electron users also view that as a regression, but a tradeoff worth making.

one missing from that list: Slint, which i work on. runs on Linux, Windows, macOS and embedded, with app logic in Rust, C++, Python or JS.

You can use JS but it doesn't ship a browser engine, it renders with its own lightweight toolkit.

How about something like this https://github.com/gen2brain/iup-go? Still not released, but I plan to clean all todos in the next few weeks.

The one which OS has to offer.

Web is bad everywhere outside of the browser.

I want to have both linux and mac users (but maybe also android, ios, windows).

You clearly see the issue.

When I started programming, one had to repeat in Assembly the same application for each computer brand.

We are not that bad nowadays, it is a skill issue.

There are plenty of ways to have portable applications with native UIs without shipping a browser.

Somehow we managed to do it for decades and without AI writing the code for us.

If you want to ship a browser, I already have one, thus standard Web, with a daemon if it really must be.

I agree on the standard web point, but you still failed to reply to what is a native UI for every OS.

Portable frameworks exist, but they are at most native to a single platform.

[deleted]

> You clearly see the issue

I don’t. VLC is available everywhere, so your requirement is clearly not a problem. Jetbrains is available on all major desktop OS.

Well, getting a hardware-accelerated blank buffer onto a screen to render video content is hardly the epitome of graphical user interfaces. VLC has very few and basic UI elements.

Jetbrains is a better example, using Java with Swing which is not a common choice. As seen from my other comment, I do think this is a good direction, but it ain't any more native than Flutter or for what it's worth an Electron app, none of these are "what the OS provide". FYI Jetbrains has to do quite a few platform-specific tweaks to make them better citizens on each platform.

Portable applications is not a recent need. The only requirement is to have a standardize interface and an implementation for each of the platform. Where you put that interface is an engineering skill.

VLC went with QT (which has done all the hard work) for the UI, and their own libraries for the media playing part. Other software like Emacs and sublime has implemented their own UI libraries. Some just ship libraries and others build UI for them.

The issue with Electron is that it brings a whole jungle and a gorilla holding the single banana that the devs actually need. And the dev flung the whole thing at the users. It's like establishing an iron mine, a steel factory and then pollutes the whole region when building a quick stone bridge would do. Because the only thing you know are suspension bridges.

VLC is not the example you're looking for. Written in Qt for desktop and their own libVLC wrapper for mobile. Yes, in the case of VLC, parent comment is right: you clearly see the issue. And a media player is a relatively uncomplicated piece of software, UI wise.

I never thought I'd defend Electron, but I'd rather use the bloated web UI than a vibe coded Qt/GTK version I'm positive will not have seen any human QA.

But GIMP! /s

When I can modify my desktop/theme (KDE) with css I will happily start doing it since that sounds easy.

Styling every application independently because it’s all individual Electron UI without a shared toolkit is much better indeed…

I have better things to do than spend my time adopting UI for various different systems. If Electron gives me the option to easily create a UI that looks the same everywhere, then I'll pick Electron over anything else any day.

I'm completely sure your software is an accessibility nightmare.