6 ms·
Your post is touching on a key question: why write a Windows-specific app? I'm a developer who has built and published several apps. I want the biggest possibl
by judah 6mo ago
Your post is touching on a key question: why write a Windows-specific app?
I'm a developer who has built and published several apps. I want the biggest possible audience for those apps. Why would I limit those apps to Windows? (Or even to any single platform/OS?)
Web apps work everywhere. The web has grown increasingly powerful and capable. Why would I invest in a technology that can only run on a single OS? Doesn't make sense.
Just build for the web. You can package web apps for all the major app stores using PWABuilder[0], no Electron needed. Just fast, lightweight apps distributed by app stores and accessible from the web.
[0]: https://pwabuilder.com https://pwabuilder.com. Disclaimer: I work on this
- jemmyw 6mo agoI used to get hung up on this native vs web thing. But when it comes down to it, it's just one renderer or another unless you're actually drawing the controls yourself pixel by pixel. The sticking point is following the system style / theme. But all the popular desktop OSs seem to have deviated on this so much themselves I'm not sure how important this is.
- skydhash 6mo agoThe DOM is very ill-suited for most UI. Too complex and lots of missing features. It’s a whole bag of unneeded code and the resulting UI doesn’t fit anywhere.
- jemmyw 6mo ago> The DOM is very ill-suited for most UI. Too complex and lots of missing features Can you expand on this, because I'm not seeing it myself. The DOM, html+css is very flexible. It easily encompasses most UI. Most UI is some kind of data display, so lists, trees, tables, forms. The need for JS might be what you're complaining about. I think we might be stuck with it as a UI control language forever.
- skydhash 6mo agoThe DOM(and CSS) is primarily built for documents and forms, even with the latest addition like Flexbox or Grid layouts. It is closer to typesetting tools like troff, latex, texinfo than any UI engines you can think of. And some that are not needed, like the difference between <i>, <a>, <span>, <strong>,... Also with most GUI frameworks, there's some difference between widgets like label, button, menu, checkbox,... and containers that does layout management. And there are not a lot of elements in both sets. This is the reason why React Native has a very sparse components library. With simpler implementation, you have a simpler rendering path, and the developer have less elements to deal with. Also some have ready-made implementation of really useful widgets, like tree, grids, tables, lists, and other dynamic things. You can find libraries for those on the web, but the web implementation of scrollable container is janky.
- PaulHoule 6mo agoThe GUI system for the NeXT was based on the Display PostScript system which in turn was based for the PostScript system designed for rendering to printers. Quartz in MacOS X is a further evolution of that. Inside HTML 5 you can find facilities for rendering documents and you can find facilities for rendering applications, including those forms. There is not a clear line between one and the other.
- skydhash 6mo agoPostScript was for rendering graphics to a printer with a good emphasis on texts. Most of HTML is about marking up and styling interactive documents. There’s no clear line between the two, but an API for applications UI has different goals than one for document typesetting (even interactive one). HTML have a lot of tools for devex, but if you’re going for a good codebase and simple implementation for a desktop application, QT is way easier.
- neutronicus 6mo agoI don't know about "most UI" but it's sure as shit ill-suited for CAD (what I work on).
- l72 6mo agoWhy don't we have more great UI toolkits for the canvas?
- trueno 6mo agoyea there's so many ways through this now. golang and wails is great, rust and tauri is great. both seem to not feel like the slug that is electron because they just use whatever os native web view your os has. for the dedicated more native stuff dioxus is kinda cool if you don't want a web stack in the mix. i'm enjoying golang and wails though paired with whatever front end i want, all apps i've made perform execellent on windows. bottom line = yeah i can't really think of a scenario where i personally would ever write an app for windows specifically. i, like you, used to get hung up on native vs web framework. i'd encourage you to give it a go, possible you cede that mayhaps the native thing isn't as important as you thought.
- simonask 6mo agoThe inconvenient truth here is also that following the system theme is an anti-feature for most apps. On the desktop, you want your app window to be recognizable at a glance, meaning the primary color should be the brand color, etc. I currently have open Chrome, Spotify, Discord, Aseprite, and Zed. All of them look completely different, and that's actively helpful for me, the user. It's nice to follow the system's light/dark setting, and obviously the behavior of basic UI controls should be unsurprising, but beyond that there's no point in "consistency".
- PaulHoule 6mo agoThis. So often features to use system colors can cause apps to be unreadable or just look like crap. The first time I get a bug report that people can't read something I will lock the colors the down, I just don't have time for that. Who says the system theme is well designed at all? Back in the 1980s you could count on most text color combinations on a Commodore 64 or an IBM 3279 or a PC with a CGA working. Today it is absolutely normal to type ls on a Linux machine out of the box and if you are running X or Wayland some of the file names are dark blue on a black background and completely un-readable. To be fair, if you are logging into a Linux machine on Windows with ssh on CMD.EXE or most terminal software you get similarly poorly chosen colors. (To be fair, MacOS does do better!) As a web developer it pisses me off because I am expected to follow https://www.w3.org/WAI/standards-guidelines/wcag/ https://www.w3.org/WAI/standards-guidelines/wcag/ and regularly my management gets legalistic looking documents from customers complaining that we only have 6.5:1 contrast on something and you know what I do... I fix it. I wouldn't send anything to my tester that was unreadable and if I did I'd expect her to put in a ticket and I would... fix it. When MUI computes the coordinates wrong and something draws 20px right of where it should be... I fix it. Whenever I've put similar tickets to the various parts of the Linux desktop mafia they close it as "won't fix" and often give me a helping of verbal abuse. Even Microsoft occasionally fixes something (even if half a decade late) and their people are polite.
- kvuj 6mo ago> Web apps work everywhere. The web has grown increasingly powerful and capable. Why would I invest in a technology that can only run on a single OS? Doesn't make sense. For me, I see these following advantages: - Performance; Native & compiled is king. - Ram usage; Kilobytes vs Mega(giga?)bytes. - UI control which integrates with the rest of the OS (and updates when the underlying OS tweaks the UI) From a business standpoint, I get your point that these points don't really matter. Users have shown to not care in the slightest at the bloat in programs. However for code I write in my spare time, I would much rather write my native Linux program in compiled code than to ship a subpar experience to the few who will interact with it.
- bigstrat2003 6mo ago> Web apps work everywhere. The web has grown increasingly powerful and capable. Why would I invest in a technology that can only run on a single OS? There are other options besides "web app" and "only one OS". A cross platform app which uses something like GTK or QT will be a massively better experience for your users, one a web app cannot hope to equal.
- GandalfHN 6mo ago[dead]
- vscode-rest 6mo agoWhat’s an example of a well made GTK or QT app in your opinion? And what would be the steel man Web app to compare that to?
- u8080 6mo agoTelegram Desktop (Qt)
- vscode-rest 6mo agoWe might contrast that with Slack, yes? This thread comes to mind: https://www.0xsid.com/blog/wont-download-your-app https://www.0xsid.com/blog/wont-download-your-app With Slack that’s trivial, Telegram impossible.
- u8080 6mo agoExcept Telegram Desktop is opensource and they also have full-functional Web version. But tdesktop is really well-made Qt piece of software, snappy, feature-rich and multi-platform.
- vscode-rest 6mo agoInteresting, at first pass I’d say the source availability has little to do with the topic at hand. But on second thought it might be rather significant. No company would finance making 2x identical cross platform apps, but if you have a pool of OS folks who are free to contribute at their leisure, the calculus changes a bit.
- manytimesaway 6mo ago> Web apps work everywhere. The web has grown increasingly powerful and capable. Why would I invest in a technology that can only run on a single OS? Doesn't make sense. You mean the hypertext platform that has been shoehorned into Java's paradigm, suffering from the same boof-o-rama as Windows, and whose lowest common denominator to support must be Safari for iOS?
- bad_haircut72 6mo agostill works everywhere? the snark doesnt get you firther than that
- manytimesaway 6mo agoWorks everywhere on modern hardware only.
- deafpolygon 6mo agoEvery time I open a browser on my aging Linux computer (which is running the latest Linux updates), I'm reminded of this...
- wiseowise 6mo agoMajority of software doesn’t need to care about that.
- PaulHoule 6mo agoSafari isn't that bad for most applications. Sure it is a hassle to get notifications working, but my take on that for years as a desktop user was "I need another source of spam about as much as I need to get raped". For years I had bottom of the line Android Tracfones and wondered "how is it people get so excited about apps?" because they just didn't work but once I got an iPhone I started to appreciate that the McDonald's app would send me a notification when my food was ready. Recently it was pointed out to me that the application behind these cards https://mastodon.social/@UP8/116086491667959840 https://mastodon.social/@UP8/116086491667959840 really would benefit from notifications ("your photos are ready!") and I am looking at the hurdles I can jump through and it looks possible but weird. Like why would I want people to install my app on the homescreen where it will get lost on page after page of twisty little app icons that all look alike? Then there is that PWA boondoggle, there is another app in that system that I can use to register those cards and it is a clear case where I might want to do it outside of cell coverage (say I was in the woods) save a form submission and upload when I get back in range. What can I say? That service worker system is insane, something like Kubernetes that only Google could subject us to. I mean, Google could have worked out the math for synchronizing a local database to a remote database, by then the Lotus Notes patents were mostly expired, we could have gotten something good. Or Google could have added an API to control the behavior of the browser cache. Instead we got something half baked and barely reliable and then Apple went out and made something a little bit worse. Had it been a good standard to begin with the outcome could have been entirely different.
- pjmlp 6mo agoBecause many of those features aren't Web, rather Chrome OS Application Platform, but apparently folks forgot everything about IE history lesson.
- DeathArrow 6mo ago>Your post is touching on a key question: why write a Windows-specific app? Why write an anything-specific app?
- direwolf20 6mo agoFeatures. Speed. Do your web apps only work in Chrome by the way?
- PaulHoule 6mo agoI am a Firefox-first developer, almost everything I write works in Firefox/Chrome/Safari without a lot of drama. I have one application at work that loads a table with 40,000 rows into a data grid that works really well on Chrome and lags on Firefox, that's the one case where the performance difference matters. This year I've been interested in biosignals applications that read data with the Web Bluetooth API and Web Serial API which are ordinarily Chrome-only. I was about to get one of my junk Android tablets out of mothballs when I found there is Bluefy for iOS which supports the Bluetooth API so I have no problem going to labs where they have a really klunky HRV system based on a PC and show them something sleek on my iPad and in 20 minutes i can demonstrate to you, with your own physiology, everything you actually need to know out of a big review paper on HRV.
- voidUpdate 6mo agoWhat happens when the user doesn't have internet access, or only has very slow internet? What if they're on a metered connection?
- baudmusic 6mo ago[flagged]
- PaulHoule 6mo agoSeems to me the point of the web is: no app store bullshit. On the web if I want to publish a web app... I publish the app. If Apple things my app isn't good for their business... tough luck for them. If I want to update a web app... I update the app. If a user wants to use an app... They visit a URL and the app is there! No having to face id, go looking for the app in an interface that's designed to hide the search function, that is filled with spammy trash imitation apps (that somehow get approved by the app store anyway) All the time I hear somebody crying that their developer account got canceled and I want to say "what did you expect? the contract for a developer account is a suicide pact for your business." Stay free!