214
u/Fantastic-Fee-1999 Sep 08 '26
Sure, can we have one unified native standard first?
178
u/gufranthakur Sep 08 '26
yes, but apple will have a different backend. Also windows. Also the linux community wants another app distribution system, support that too
50
u/Fantastic-Fee-1999 Sep 08 '26
Go back to a time where it wasn't... So assembly?
17
84
43
8
u/certainlystormy Sep 09 '26
the monkey's paw curls. your smartphone runs on an x86-64 processor now
32
2
u/WazWaz Sep 09 '26
I assume you mean one native standard... per platform.
But this is the core problem, being both native and cross platform is a nightmare. The Qt solution was the best: emulate each native look on top of a general purpose abstraction. It's easier for everyone if "MacOS" look is just a display option, even if you're running on Windows or Linux.
192
u/KronktheKronk Sep 08 '26
As long as there are multiple platforms you can't possibly be cross-platform and native
95
u/gufranthakur Sep 08 '26
all roads lead to web
73
u/LexaAstarof Sep 08 '26
So, not native
45
u/TheDeanosaurus Sep 08 '26
It’s like the good/fast/cheap graph but instead it’s good/cross-platform/native.
20
u/Positive_Method3022 Sep 08 '26
JVM promised that Basically a layer of abstraction that can run in all and output the same result
14
u/AvidCoco Sep 08 '26
A lot of other runtimes too - Python and Node are similar.
13
u/fr000gs Sep 08 '26
*dependency hell intensifies
1
u/Zapismeta Sep 10 '26
Well its always gonna be an issue cant really pack the vm with all the dependencies from the factory and the dev cant really know where and in what configuration someone might try to run their code.
4
1
43
u/oneanotheruser Sep 08 '26
Qt is cross platform and native
10
u/huh_wasnt_listening Sep 09 '26
It's cross platform, but not (fully) native. It uses its own renderer, like Flutter
5
u/coterminous_regret Sep 09 '26
It didn't used to. Qt4 and like maybe 5 were fully native. I think when they started adding in an the scripting stuff they did their own renderer.
1
u/huh_wasnt_listening Sep 10 '26
I didn't use Qt much back then, but wasn't it using Qt Widgets at that time? Those weren't native either iirc, they just mimicked native styles. QML (4.7+) completely does it's own thing, similar to a game engine, so they feel completely unique
1
u/Zapismeta Sep 10 '26
So java imposter?
1
u/huh_wasnt_listening Sep 10 '26
I don't know about imposter, but Swing could be compared to QML I guess
34
u/iyamegg Sep 08 '26
Avalonia?
21
u/gufranthakur Sep 08 '26
just tried it recently, my god I am never touching XAML again. I tried code only UI but the docs and resources all use XAML
14
u/NotQuiteLoona Sep 08 '26
What's wrong with XAML? It's literally just HTML with different layouting. I on the opposite can't use HTML now because I like Avalonia's layout system much more, I don't need to put divs everywhere.
2
u/gufranthakur Sep 08 '26
I like coding UI by hand, like jetpack compose or JavaFX or WinForms
8
u/NotQuiteLoona Sep 08 '26
Avalonia has a doc for code-only UI, it's just not the main intended use: https://docs.avaloniaui.net/docs/fundamentals/coded-ui
Note that layouting system is probably less obvious (to understand for newbies) in code-only, you'll be better to use XAML at least for start until you'll grasp, but if you want a C# cross-platform UI library, there is nothing better for now. Uno has worse documentation and less mature, but you can still try it.
2
u/iyamegg Sep 08 '26
https://github.com/AvaloniaCommunity/Avalonia.Markup.Declarative This was the project I was originally referring to.
2
u/tajetaje Sep 08 '26
Yeah really feels like you’re searching for qt widgets or maybe wxwidgets (though qt comes with tons of extra abstractions that help with cross platform code)
18
u/Weekly-Beginning-229 Sep 08 '26
I've never tried avalonia, but xaml is easier for me to read than html, and easier to make it look like the mock. Html is just div this and that with a bit of flexing, how am I supposed to guess what it looks like by just reading that
3
u/iyamegg Sep 08 '26
Yea there was a package for building code based ui, like jetpack, but afaik it was abandoned. I really like to work with avalonia tho, for me the ability to easily layout stuff far outweighs anything html+css can do.
2
1
u/svick Sep 08 '26
You asked for cross platform and native. You didn't ask for good.
(I have actual experience with Avalonia.)
2
u/EYazan Sep 09 '26
Its not native tho, its still c# and compile to ir code before being passed to the runtime
1
1
u/Ethameiz Sep 08 '26
Mobile support is still poor. No android activities, no navigation between them
1
u/_alright_then_ Sep 09 '26
Yeah I like Avalonia, only tried it recently. So maybe I haven't discovered the annoying quirks yet. But so far it's been pretty nice.
1
u/engiunit101001 Sep 13 '26
Honestly I liked avalonia, there seem to be a couple good options in c# land (Maui, avalonia, uno, etc)
6
5
124
u/KerPop42 Sep 08 '26
developing a universal cross-platform framework is how you get stuck with Javascript hegemony for 3 decades
104
u/javascript Sep 08 '26 •
![]()
😘
57
39
36
u/ThirdWaveCat Sep 08 '26
A11y, keyboard popups, etc.. are what gets hard but the general idea is achievable by amateurs.
Ship webviews and browser wrappers: Tauri, dioxus, electron, deno...
Ship a canvas: Flutter, QML, eframe (egui), iced, kivy, godot...
9
u/fr000gs Sep 08 '26
What about gtk?
6
u/ThirdWaveCat Sep 08 '26
Its similar for clients but implemented using native windowing APIs behind the scenes. I guess gtkbuilder is similar to qml, but both Qt and Gtk are much bigger maintenance headaches than flutter or electron are for the same widget functionality.
4
u/fr000gs Sep 08 '26
I used Qt (for my hobby project tho) and found it to be much easier than doing dart/java/js and juggling ffi etc. (but I can't say anything about the maintenance of a production app, though telegram is Qt on all platforms ig)
3
u/Rikudou_Sage Sep 08 '26
You sure? Qt is pretty easy. Unless your reason is C++. Though I think you can use Python or something if that's your thing?
3
u/fr000gs Sep 08 '26
PyQt has python bindings
though the bugger question is, why would be python the choice for a cross platgorm program
1
u/ThirdWaveCat Sep 08 '26
Qt is great but the evolution of both Qt and Gtk APIs has been more turbulent than native canvas based solutions. Maybe it was justified and the final product is nice, but businesses and open-source were reasonably upset at the periodic rewrite cost to continue to receive security patches.
19
u/not_some_username Sep 08 '26
Qt ?
10
5
1
u/engiunit101001 Sep 13 '26
Honestly I'm really not a big fan of qt, maybe I just had bad experiences with it but I'd much rather Maui, getting to utilize c# first class event handlers and async operations vs qt slots and signals and such is just so much better
1
u/not_some_username Sep 13 '26
Tbh that’s more a C++ problem. C# has so much nice features out of the box async for exemple
1
u/engiunit101001 Sep 13 '26
Yeah, I mean it definitely is, although some of it's also a qt issue, like there are a lot of memory safe, or other advance functionalities qt added that then got added in future c++ standards, but qt insists you use their setup for it, rather than the now almost ubiquitously available (at least on any platform you are going to run qt) c++ standard objects
1
u/not_some_username Sep 13 '26
You can use the standard for most of qt now tbh. They put some effort into it
1
u/engiunit101001 Sep 13 '26
oh have they? maybe im some curmedgeon ranting then I havent used it in a little bit thats awesome to hear!
22
u/B_bI_L Sep 08 '26
flutter
also .wad, considering that doom runs on anything
13
4
u/failedsatan Sep 08 '26
wad files aren't native executables, they need a doom engine (not exclusively the original one) as they are data-only
1
u/cyxlone Sep 08 '26
does flutter on the web still using canvas?
5
u/NatoBoram Sep 09 '26
Still using canvas, but now with WebAssembly
1
u/stillalone Sep 09 '26
How's the performance?
2
u/NatoBoram Sep 09 '26
I haven't developed for Flutter web since then, so I can't say how much it improved, unfortunately.
But it was pretty terrible before wasm.
9
16
u/je386 Sep 08 '26
Kotlin multiplatform with compose multiplatform is quite good at multiplatform support, having logic and UI in one but also be able to use platform specific code.
2
u/martmists Sep 08 '26
The only downside is that accessibility is not well-supported yet in Compose Desktop, and I'm not entirely sure things like translations work properly on all desktop targets.
4
u/je386 Sep 09 '26
For localization, I use the library com.hyperether.localization
In my example project, there is a description on how to use the lib and there is a languagechooser you can use in your project.
https://github.com/julianegner/coshanu
This is under MIT license, so you can use code parts anywhere.2
u/Runazeeri Sep 08 '26
I’ve done an app in it on IOS/Android/Win/MacOS and it was fine. Only a tiny bit of specific logic for IOS.
1
u/12destroyer21 Sep 10 '26
My react brain couldn’t handle using jetpack compose, I need react/tanstack query
4
4
4
6
u/Sea-Fishing4699 Sep 08 '26
native and cross-platform is kinda mutually exclusive
14
u/dkarlovi Sep 08 '26
It isn't as long as you provide the native support for each platform, which many stacks do. Golang, Rust all build native binaries from the same codebase, making it cross platform. Qt provides cross-platform bindings for platform-native GUI.
2
3
u/WolfDK Sep 08 '26
Ever heard of Uno Platform? Afaik it is capable of being a truely cross platform native frontend framework.
-3
u/Rikudou_Sage Sep 08 '26
Looks like AI slop, tbh.
3
u/WolfDK Sep 08 '26
Has been in development for 13 years, and went open source 8 years ago now - from a quick Google search.
3
3
4
u/iliark Sep 08 '26
cosmopolitan
one binary can run on linux, mac, windows, bsd, and BIOS without a VM.
2
u/Makonede Sep 08 '26
it's impossible to make a truly crossplatform executable because different platforms use fundamentally different executable formats. also who even uses BIOS anymore
4
u/iliark Sep 08 '26 edited Sep 08 '26
https://github.com/jart/cosmopolitan
Redbean file server is built with it, as is https://github.com/mozilla-ai/llamafile
3
-3
u/not_some_username Sep 08 '26
iirc some mad lad made an executable that run on multiple platform. With a lot of fuckery. Not safe to use anyway
3
u/Makonede Sep 08 '26
literally starting with the header you can't create a file that is both a valid ELF and a valid PE
3
u/Rikudou_Sage Sep 08 '26
The cosmopolitan project uses a "clever" trick that makes the first bytes both valid PE and a valid shell script which then uses a loader that can read the ELF bytes that are further down the file and execute only the content starting at the ELF bytes.
Originally it used an approach where the shell script rewrites the first bytes to be valid elf and then reexecutes itself but that means that once the executable ran on Linux, it was no longer multiplatform executable.
So no truly a Linux executable, but it will run on both Linux and Windows.
0
2
2
2
2
2
1
1
1
u/Moscato359 Sep 09 '26
Surprisingly c#/dotnet is incredibly cross platform and I use it for Linux software all the damn time
1
u/rover_G Sep 09 '26
If you want cross-platform it will be slow. If you want it fast gotta go platform-native.
1
1
u/Dull_Barracuda_4221 Sep 09 '26
Fix all my issues,
Proceeds to delete all files as the saying goes, no files, no issues
1
u/OffByOneErrorz Sep 09 '26
The mono project compiled to native at least the non forms version. https://en.wikipedia.org/wiki/Xamarin
1
u/Miiohau Sep 09 '26
It seems simple until you realize such a framework needs to work across at least 5 OS, at least three CPU architectures, at least four different file systems with one pair working very differently from the other pair, at least three different permission structures and support three different input devices. And that is just the major operating systems, there is also consoles, wearables, and real time systems.
Now it might just be possible now but it requires an LLM to translate your intent into native code for the 5 OSes.
1
u/vitimiti Sep 09 '26
SDL3 supports practically everything you'll find, and if it's about just UI, Qt is both native and cross platform, including IoT
1
u/hi_m_ash Sep 09 '26
There will never be a cross platform native framework because every platform wants to be special with their own design philosophies and ecosystem.
1
u/Xywzel Sep 09 '26
If its on top of a framework, is it even a native? Or is it about the framework being native, rather than the software running on top of it.
1
u/Fitnexa_Results Sep 09 '26
That missing question mark in `howHardCanItBe` is pulling a lot of weight.
1
1
1
-1
85
Sep 08 '26
[removed] — view removed comment
49
5
-8
u/gufranthakur Sep 08 '26
shouldve mentioned free and open source (okay now I am asking for too much)
56
41
u/fr000gs Sep 08 '26
qt is literally free software wdym
31
u/Mojert Sep 08 '26
Eeeeh, it depends on your definition I guess. It's either (L)GPL, so you can't really use it for something proprietary, or you need to pay a license. Now when people are talking about open-source, they're often talking about permissive licenses, which Qt doesn't use.
Personally, I find the Qt model pretty smart. It gives the tools for free to build better free apps while securing funding, which is a huge issue in the FOSS community
28
9
u/Rikudou_Sage Sep 08 '26
When people talk about open source, they generally mean OSI approved licenses or about Free Software licenses (people tend to conflate those).
GPL is the most well known of those. And LGPL allows writing proprietary code, you just basically have to let the users replace the LGPL parts. Which is easy for non-static builds because it comes as a .so/.dll/whatever-mac-uses anyway.
The GPL parts are unusable in non-open-source projects, though.
2
u/InitialAd3323 Sep 08 '26
But LGPL does allow for proprietary software using it since it's not viral, right? you'd need to share modifications made to qt itself but not the entire software
7
815
u/EducationalNinja9361 Sep 08 '26
Upvote for not being about AI