Live data from Hacker News

Ask HN: Is there still a place for native desktop apps?

news.ycombinator.com

481–490 of 777 posts

Re: Ask HN: Is there still a place for native desktop apps?

#481

Earlier quoted context omitted.

Agree 100%. I wonder how much memory management affects this. My journey has been a bit different: traditional engineering degree, lots of large Ruby/JS/Python web applications, then a large C# WPF app, until finally at my last job, I bit the bullet and started doing C++14 (robotics). Coming from more "designed" languages like C#, my experience of C++ was that it felt like an insane, emergent hodgepodge, but what imp…

There is movement away from stop-the-world GC, but not to reference counting. The movement is towards better GC. The language Go has sub millisecond GC with multi-GB heaps since 2018. See https://blog.golang.org/ismmkeynote Java is also making good progress on low latency GC. Reference counting can be slower than GC if you are using thread safe refcounts which have to be updated atomically. I don't want to have to th…

Go achieves those low pause times by allocating 2x memory to the heap than it's actually using. There's no free lunch with GC.

Re: Ask HN: Is there still a place for native desktop apps?

#482
post #457

Earlier quoted context omitted.

In a fair society it should be taxed as an externality. There is a real environmental cost associated with software bloat.

In a fair society closed software would be illegal and people wouldn’t tolerate this kind of stupidity. No need to hack it with taxes.

> In a fair society closed software would be illegal

What?

Re: Ask HN: Is there still a place for native desktop apps?

#483
I think there are some applications or problems that are likely to be favourable to native desktop apps for a long time. For inspiration, simply look at what hasn't already become web based. Some things I thought of:

1. Heavy lifting - As others have mentioned, running some code in a browser is quite a few times slower than locally. As Moore's Law comes to a screaming halt we're going to be need to get better at creating efficient software rather than relying on the underlying hardware to get faster.

2. Capability - Some things are inherently difficult to do in the browser, such as custom networking, calling kernel functions, accessing various hardware, etc, etc. You can always have your native app launch a web-based front-end, but going back the other way is not possible by design.

3. Hardware Access - Sometimes you need to access a camera, USB device, GPIO, I2C, SPI, run architecture specific instructions on the CPU, access the GPU, etc, etc. Again, the browser typically won't let you access these by default.

4. Security - This comes in a few parts: (a) You're able to bypass "most" security and do what you want within reason. As long as the user ran your application you usually have the same privileges. (b) Now that you're dug-in you can enforce a level of security that may not easily be available otherwise. (c) Features such as app signing mean that the user can more easily guarantee the app came from you, rather than relying on their ability to read the exact URL in some email at 2am. If I run `apt-get install ` or equivalent in other OSes there is a chain of accountability.

5. Memory - Put simply the browser adds massive overhead to any application and typically has inefficient data structures. Compare something like Atom [1] to any equivalent native editor for example. (There is some existing efforts in comparing editors [2].)

[1] https://en.wikipedia.org/wiki/Atom_Editor

[2] https://github.com/jhallen/joes-sandbox/tree/master/editor-p...

Re: Ask HN: Is there still a place for native desktop apps?

#484

As a long-time Win32 developer, my only answer to that question is "of course there is!" The efficiency difference between native and "modern" web stuff is easily several orders of magnitude; you can write very useful applications that are only a few KB in size, a single binary, and that same binary will work across 25 years of OS versions. Yes, computers have gotten faster and memory and disks much larger. That does…

Agree 100%. I wonder how much memory management affects this. My journey has been a bit different: traditional engineering degree, lots of large Ruby/JS/Python web applications, then a large C# WPF app, until finally at my last job, I bit the bullet and started doing C++14 (robotics). Coming from more "designed" languages like C#, my experience of C++ was that it felt like an insane, emergent hodgepodge, but what imp…

> Coming from more "designed" languages like C#, my experience of C++ was that it felt like an insane, emergent hodgepodge, but what impressed me was how far the language has come since the 90s. No more passing raw pointers around and forgetting to deallocate them, you can get surprisingly far these days with std::unique_ptr and std::shared_ptr, and they're finally even making their way into a lot of libraries.

I worked for a robotics company for a bit, writing C++14. I don't remember ever having to use raw pointers. That combined with the functionality in Eigen made doing work very easy --- until you hit a template error. In that case, you got 8 screens full of garbage.

Re: Ask HN: Is there still a place for native desktop apps?

#485
As a user, I really miss native apps. The difference in UI responsiveness is huge. Not to mention battery and memory usage.

As a developer I understand why the native app road can become a more expensive solution, especially for startups.

But, I have to express that I am really tired of glitchy super heavy javascript apps, online, mobile and desktop. I would choose old clanky but lightweight UIs everyday.

Re: Ask HN: Is there still a place for native desktop apps?

#486
post #29

I prefer well-designed desktop applications to web applications for most things that don't naturally involve the web: * Email clients (I use Thunderbird) * Office suites * Music and media players * Maps * Information managers (e.g., password managers) * Development tools * Personal productivity tools (e.g., to-do lists) * Games As Windows starts on-boarding their unified Electron model (I can't recall what they have…

> Thunderbird The search is not very good on Thunderbird...

it's still better than Outlook!

Re: Ask HN: Is there still a place for native desktop apps?

#487

As a long-time Win32 developer, my only answer to that question is "of course there is!" The efficiency difference between native and "modern" web stuff is easily several orders of magnitude; you can write very useful applications that are only a few KB in size, a single binary, and that same binary will work across 25 years of OS versions. Yes, computers have gotten faster and memory and disks much larger. That does…

If the browser is computationally expensive abstraction, so is the various .NET SDKs, the OS, custom compiler and the higher language of your choice. Yes there were days were an game like prince of persia could be fit in to the memory of apple IIe and all of it including the sound graphics, mechanics and the asset was less than 1.1 MB ! However the effort required to write such efficient code, hand optimise compiler…

I use windows (although not a heavy user, I mainly use Linux these days), and only outsider apps I have installed are lightweight open source ones and some "official" versions of software. You don't need an antivirus apart from built-in Windows Defender. And I don't notice any slowdown. I have a non-admin account which I regularly use and admin account is separate.

Arguably many users don't know how to use a Windows desktop. But that's not a failure of desktop; that's failure of Windows. They could have provided an easy way to install applications to a sandbox. On Android you can install from apk files and they are installed to a sandbox. If Windows had such a feature easily available, I think most of genuine desktop app makers would have migrated to it. This would have the advantages of the browser and no battery drain, no fan noise, no sluggishness.

Re: Ask HN: Is there still a place for native desktop apps?

#488

As a long-time Win32 developer, my only answer to that question is "of course there is!" The efficiency difference between native and "modern" web stuff is easily several orders of magnitude; you can write very useful applications that are only a few KB in size, a single binary, and that same binary will work across 25 years of OS versions. Yes, computers have gotten faster and memory and disks much larger. That does…

This sentiment is why I've moved to write Elixir code professionally three years ago, and why I write Nim for all my personal projects now. I want to minimize bloat and squeeze out performance from these amazing machines we are spoiled with these days. A few years ago I read about a developer that worked on a piece-o-shit 11 year old laptop, he made his software run fast there. By doing that, his software was screami…

Some of blame is to be put on modern development environments that pretty much require the latest best hardware to run smoothly.

> It's our responsibility to minimize our carbon footprint.

This, a hundred times.

Re: Ask HN: Is there still a place for native desktop apps?

#489

Earlier quoted context omitted.

> Meanwhile, your web app may not be as good as native apps, but at least you don't have to write it 6 times. I must be living in a parallel world because I use a ton of desktop apps that aren't "written 6 times" - and write a few, including a music & other things sequencer ( https://ossia.io ). Just amongst the ones running on my desktop right now, Strawberry (Qt), Firefox (their own toolkit), QtCreator (Qt), Telegr…

QT is excellent, but C++ is quite a tough pill to swallow for many. Especially as QT layers a macro system on top. I predict that native desktop apps will make a comeback when there's QT-quality cross-platform framework in a more approachable language (Rust, nim, or similar).

Why not use Qt bindings for $YOUR_LANGUAGE_OF_CHOICE? https://wiki.qt.io/Language_Bindings

Re: Ask HN: Is there still a place for native desktop apps?

#490

Earlier quoted context omitted.

Without a way for end-users to actually make judgements about application efficiency, there will never be any real pressure to make efficient, native apps. Though the only measurement I think people would actually care about is battery impact, and even that is pretty much hidden away on phones except to the few people who actually look. But the other problem is: who cares if Discord or a browser's HN tab aren't optim…

Without a way for end-users to actually make judgements about application efficiency, there will never be any real pressure to make efficient, native apps. I'd say it's more of a "without a way for end-users to compare " --- the average user has no idea how much computing resources are necessary, so if they see their email client taking 15 seconds to load an email and using several GB of RAM, they won't know any bett…

There is an economic theory that's escaping me right now, but the gist is that with certain goods, the market will hover at the very edge of efficiency; they have to become just scarce enough to break a certain threshold, then the market will realize that they are in fact a scarce resource, then correct to achieve a high efficiency equilibrium.
Post reply on HN