Ask HN: Is there still a place for native desktop apps?
51–60 of 777 posts
Re: Ask HN: Is there still a place for native desktop apps?
#52Earlier quoted context omitted.
> However as a developer and as a software business owner/investor, it's (much) better to write web apps. Why do you say that?
I think he is saying that because with webapps you have - control over your software and updates - no one can pirate your software/service
Huh? Given how most web applications these days are using client-side rendering there's nothing stopping someone from just downloading all of the frontend assets. You can also connect to a server from your desktop application so I don't understand how desktop makes it easier to pirate anything.
Re: Ask HN: Is there still a place for native desktop apps?
#53I mean, we built the Windows Terminal as a native application because we didn't want users to have to be saddled with 40MB of a webview/Electron just to boot up a terminal. It might take us longer to make the terminal as feature rich than it would have with JS, but no amount of engineering resources could have optimized out that web footprint. When we think about what the terminal looks like in 5 years, that's what w…
Re: Ask HN: Is there still a place for native desktop apps?
#54The issue is that developing for a particular OS is, generally, more difficult than developing for the web. The app delivery mechanism is also more convoluted (for native apps) than simply entering a web address in the browser. The web also seems to have more ubiquitous standards that abstract away the differences between OSs - you can, with a high degree of certainty, ensure that your app is usable by 99% of computer users, given the current software they have on their device - with native apps, there is no such guarantee, especially if you're relying on shared libraries.
Browsers are also becoming more feature rich. This has had a negative impact on their memory consumption, but given it's 2020, some may retort "memory is cheap". And while some browsers (Chrome, looking especially at you) do a very poor job of memory management, I believe the competitive nature of the browser market will force a reawakening soon, where a lot of the inefficiencies in memory management will have to be eradicated (or vendors risk losing market share). Think back to 2014/15 when Node.js was really becoming established - the PHP team suddenly felt a need to re-optimise their engine for PHP7 (and with dramatic results)... Point is, only after ~20 years at the top did something spur PHP's team on enough to do something about their inefficiencies.
Finally, I can see a future where the line between web and native apps is even more blurred. WebAssembly is the first step, however things could get even more elaborate. Perhaps we could end up with the ability to start docker-like containers from within web apps (given the right permissions, of course) to spin up servers for audio/video/image processing on the client itself, and interact with them via a web page. If we get to this point, native apps would feel even more obsolete.
I know your question was only about the current state, but I felt the need to talk about the future to highlight the marked difference in the rate of innovation in the web ecosystem (fast) vs the native ecosystem (slower). It would not surprise me if the web ecosystem ends up winning in the end. If I was building an app today, and it only requires features I can deliver via the browser, I would almost certainly go the web app route.
Now, if I was building a video processing app today, I'd almost certainly go native, but in a couple of years, my answer may be very different.
Re: Ask HN: Is there still a place for native desktop apps?
#55Re: Ask HN: Is there still a place for native desktop apps?
#56No internet? No web-app. I suppose I am increasingly frustrated with the inability to use my computer if it has no internet....
This needn’t be true. You can use a service worker to make the code load when offline, and IndexedDB to store data. As a trivial example, https://jakearchibald.github.io/svgomg/ (which has no data storage requirements) works just fine offline. Offline support is a banner feature of the PWA (progressive web apps) movement.
So by trial and error, I found that I need to load the page before disconnecting, and only use the 1st of the 5 buttons on the side (even "About" requires network connectivity). Then it works offline. Which is pretty cool!
But every native application I have works perfectly offline, and I don't need to do anything special ahead of time, or worry about which parts might not be available. There's a big difference between "some parts may work offline sometimes" and "entire app will definitely work offline always".
From decades of experience, when a "trivial" app struggles with demoing a feature, there's little chance it'll be widely supported among real apps. PWAs have been "any day now!" for 10 years now.
Re: Ask HN: Is there still a place for native desktop apps?
#57The only non-native app I dont detest that much is VS Code but it still feels painfully slow compared to something like Sublime Text.
Lets look at the chat apps that provide a similar functionality.
* Teams
Takes between 600-800MB on my PC. It's sluggish as hell and will often choke to re-render if I click on something.
* A native chat app Takes 15MB...Is just as eye candy as Teams and yet i dont care if it's running or not.
Re: Ask HN: Is there still a place for native desktop apps?
#58I'd say that that when you're writing an application which is fundamentally just a pretty wrapper (e.g. it exists to take user input and pipe it over HTTP to some web service or use it to generate a command for some other binary) and your users don't care about performance, resource usage or reliability, it makes sense to use a browser. Your application is very UI-focused and if you're already familiar with HTML, CSS and JS, use what you know.
However if you're working on an application that has strict resource usage, reliability and/or performance requirements like say a control system for industrial equipment, a 3D game, a video encoder, photo editing software, or software that's going to be run on an embedded system, you're going to find it difficult to do what needs to be done with a browser/wrapper. It can be done for sure but it'll be something you work around rather than with.
Re: Ask HN: Is there still a place for native desktop apps?
#59I mean, we built the Windows Terminal as a native application because we didn't want users to have to be saddled with 40MB of a webview/Electron just to boot up a terminal. It might take us longer to make the terminal as feature rich than it would have with JS, but no amount of engineering resources could have optimized out that web footprint. When we think about what the terminal looks like in 5 years, that's what w…
Thank you. As you say, in the long haul, Windows Terminal is considerably better than it would have been thanks to that decision. It feels responsive and lightweight; unlike any Electron app, and that is greatly appreciated by many users, myself included. I look forward to each new version.
Re: Ask HN: Is there still a place for native desktop apps?
#60Every single app that I use, I try and make sure it is native. I shun electron apps at all cost. It's because people who put in effort to use the native APIs put in a lot more effort in the app in general based on my anecdotal evidence. It is also more performant and smaller in size, things that I cherish. It also pays homage to limits and striving to come up with new ways of overcoming them, which hackers would have…
The trouble with Electron apps though (and most Node apps) is the sheer number of dependencies. It's just infeasible to package them for a distro if you care about their dependencies being packaged as well - at least, not without the entire process being automated.