7 ms·
Maybe when native languages manage to come up with a single good UI framework
by novagameco 3y ago
Maybe when native languages manage to come up with a single good UI framework
- olliej 3y agoMacs have Cocoa which is a good UI framework. There's your single good UI framework for them. iOS has UIKit, which is a good UI framework. There's your single good UI framework for them. Linux has GTK and Qt, though I'm not sure which one is in vogue these days, but both of which seemed fine when I used them in the past. etc But it sounds like what you're actually saying is "I only want one OS to exist". Every OS has its own UI API, because every perform has different UI design language, UI interaction, and UI behavior. You cannot make one UI that is good on every platform because every platform is different and those differences are what make people prefer one over the others, but a single UI is (as Java and Chrome wrappers demonstrate) going to produce a bunch of exceedingly mediocre apps that fail numerous basic UI tools on their respective platforms. If you want a cross platform apps you have cross platform core logic, and per platform UI. If you want a single UI framework across platforms, it cannot be good, and it will inherently at best produce the kind of mediocrity we get with chrome apps, or you only have a single platform and have the same UI toolkit across all of them: desktop, phone, tablet, etc. I'm going to guess that's going to produce a fairly terrible UX on at least one of the options if it's good on others, or maybe it will just be mediocre across the board.
- deleted 3y ago[deleted]
- novagameco 3y agoThen nobody will go back to making native apps
- olliej 3y agoYes, the problem is easy crappy apps are cheaper for developers even if they're worse for users. The alternative "single UI framework" is "everyone must run the same OS". As long as people keep buying/using crapware apps that's all that will happen. The fact that so many people are ok with that mediocrity is depressing, but that they do so while then complaining about things being slow is actively annoying.
- novagameco 3y agoIt is totally possible to have a "runs on anything" UI framework; it simply has to have bindings for every applicable platform. SDL does this, for example, in 2D Graphics. Java has a few "run anywhere" UI frameworks, and Microsoft has .Net Maui (as well as the 3rd party avalonia UI). The problem with most native frameworks, however, is they are nowhere near as flexible as HTML and CSS (which many pre-teens taught themselves as a way to customize their tumblr and myspace pages). Other frameworks, by comparison, require programming knowledge or more setup than just a text editor (usually requiring an IDE and the rest of your toolchain). I can see native software making a comeback if it is: 1. Declarative: only software engineers like imperative UI systems 2. Flexible: some frameworks (like any of the XAML-based ones) are strongly typed and you can only combine certain XAML elements with other certain XAML elements, and will fail to compile entirely if you mess something up 3. Unopinionated: HTML, CSS, and Javascript don't require you to implement any particular paradigm for getting data on the screen; that is left up to the coder 4. Dead ass simple: the litmus test is that a 7th grader should be able to learn the basics of it on their own, and the tooling should be ideally no more complicated than a text editor 5. Totally sandboxed: You can't trust 99% of frontend devs with security The people you need to appeal to are not hardcore software engineers, but hobbyists and newbies, since they end up being the majority of frontend devs anyways. Honestly I think you could get pretty far with just adding declarative languages (read: XML) to existing native frameworks, like gtk and Win32.
- fulladder 3y agoYour post is thoughtful. Why do you care so much about declarative? I tried SwiftUI last summer to see what it was about and I find the whole style rather awkward. Writing a desktop app in XML sounds even worse. And I'm not seeing the benefit to the user. With an imperative coding style, you can more directly control the user experience and give them the best one.
- novagameco 3y agoWith an imperative style, you need to learn a programming language before you can start making applications. With HTML, you can start making applications immediately by just writing HTML, and then you can learn the programming language (javascript) later. It's a barrier to entry for non-engineers