

Ask HN: What are the benefits of a native desktop app vs. a web one? - alediaferia

Nowadays one can do pretty much everything with HTML5 capabilities. Given I&#x27;ve always loved native desktop apps over the Web ones, but can&#x27;t really list the benefits anymore, can you share your thoughts regarding the topic? What do you prefer? Why? What are the use cases where a native desktop app suits better? Please, exclude video games from the reasoning. Thank you.
======
mrcold
\- Native apps are more or less future-proof. A web app usually needs to be
rewritten as browsers and the internet change and evolve.

\- They can be made ridiculously fast. With web you're at the mercy of third-
party scripts and browsers.

\- Native is much more energy efficient compared to web apps. You can do a
whole lot more with much less power and resources.

\- Native apps are incredibly secure compared to web apps. Unless holes and
backdoors were purposefully designed in it, a native app will just run on your
desktop. A web app goes through a browser, maybe some extensions, your
network, an ISP and finally some third-party servers.

\- Native code is easier to maintain because there are fewer things that can
go wrong as time goes by. And it mostly boils down to bugs in the code. With
web apps you have to debug web servers, third-party scripts, browsers,
resolutions, etc.

\- Native apps don't need a constantly active internet connection.

Web apps do look great. And accessing them from anywhere is a huge plus. But
look at the mobile app stores. Look at all the scandals regarding privacy and
web servers. Native is preferred because it's faster, more efficient and more
contained.

The bleeding edge is never pretty. But it usually blows everything else out of
the water.

------
insoluble
One of the most important cases for desktop applications is when the software
must interface with local hardware. This is especially so when that hardware
requires large amounts of data throughput, short latencies, and or enhanced
security. For reasons including safety, efficiency, and simplicity, not all
hardware devices are equipped to communicate over the Internet. Furthermore,
when interfacing with local hardware such as robotics interfaces, why in the
world would I want the software to run in the cloud rather than locally? Sure,
there are a couple of special cases for this, such as when the fruits of the
system are to be publicly or remotely accessible (a public webcam, for
example), but there are plenty of cases where local access is much more
appropriate.

A particularly noteworthy example is automated manufacturing. In this case, it
would be nearly absurd to run the control software in the cloud rather than
locally. Would you really want an Internet hiccup to cost you a whole batch of
units? What about the software that controls a self-driving car? Would you
want to ride in that car when the software is running in the cloud rather than
locally?

------
alediaferia
I'm sorry for the broadness of my question. When writing it down I was
thinking about utility softwares for sharing files or for taking notes that
nowadays have usually both client-side applications and web-based ones. Of
course specific control software for manufacturing or computation-heavy
programs where not in my mind. Regarding File System access, this is one of
the biggest advantages I see in a client-side application. Though, we are
going towards the sandboxed apps way, and we may lose control over FS even on
the client side. HTML may also eventually get more access to FS in future
iterations. I do agree also that HTML+CSS+JS is somewhat painful compared to
the desktop UI toolkits.

------
fian
I am employed to develop and maintain a desktop application for simulation and
modelling with the engineering discipline.

The application has been in development for over 16 years. At inception a web
application was totally out of the question.

The application is CPU and RAM intensive. Until recently, this ruled out a web
application. Amazon and other elastic compute providers have swung this
pendulum a little.

Model size generally exceeds the limits of Local Storage.

The simulation can generate from hundreds of MB to multiple GB of data. While
this can now be retrieved over the internet, the time to do so can become an
issue. This will be compounded when the user wants to run sensitivity series
(ie multiple models with slight variations).

I have built a few CRUD web apps in my time. HTML+CSS+JS was incredibly
painful compared to the desktop UI toolkits I have used.

The models built in my application almost always contain client confidential
information. Explaining to them that we/they have to send their data to "the
cloud" in order to run the simulation is not going to be acceptable.

Whenever I dip my toe into web development to see if things have improved, I
still struggle to understand the convolutions required. Compiling CSS? How
many JS libraries? I have to sacrifice how many chickens for my app to work
right in IE+Firefox+Chrome+Safari+mobile?

As far as I can tell, all the web app stuff is just to sidestep the need to
install and update an application? While this might be an important
consideration for a (IMHO lazy) IT department or for a communication based
tool (Twitter/Facebook etc), it really doesn't make much sense to me for
office applications and many other common tools.

Why should I need an internet connection to do desktop publishing? Why do I
need to transfer my possibly confidential data to someone else's computer just
to transform it? These are things I have always been able to do with a desktop
app, without having to compromise on privacy or performance.

------
jpetersonmn
It really depends on the problem you're trying to solve. I write a lot of
programs that are used to troubleshoot other software. I need to be able to
access the local file system and the OS.

