Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are the benefits of a native desktop app vs. a web one?
6 points by alediaferia on Feb 21, 2015 | hide | past | favorite | 5 comments
Nowadays one can do pretty much everything with HTML5 capabilities. Given I've always loved native desktop apps over the Web ones, but can'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.



- 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.


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?


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.


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.


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.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: