DEV Community

Cover image for What are some reasons to switch to a "native" desktop stack over a web based one?
John Alcher
John Alcher

Posted on

What are some reasons to switch to a "native" desktop stack over a web based one?

Hello my dudes.

My main projects over the past year were software solutions for various businesses. My model so far:

  1. Gather relevant information for planning.

  2. Develop a web app.

  3. Deploy it to their network for consumption.

I chose to create solutions as web applications (even if most of the time internet connection is not required) because web development is my domain and being cross platform is important. Another point is that these are not mission-critical solutions that need to squeeze the maximum performance to operate; continuous delivery is much more valued.

So back to the question(s):

  • What are some reasons to switch to a "native" desktop stack over a web based one?
  • What are some good options that you can recommend based on the information above?

I could see some greenfield projects in the near future, so I'll be really appreciative for your input!

Top comments (10)

Collapse
 
tux0r profile image
tux0r

What are some reasons to switch to a "native" desktop stack over a web based one?

  • Reliability and predictability of desktop platforms.
  • Lower resource usage of native applications.
  • Higher flexibility in terms of UI/UX.
  • An actual desktop application has less security holes than a web browser.
  • You can finally use sane programming languages and you don't have to waste your time and nerves trying to work around JavaScript's giant syntax mess.

What are some good options that you can recommend based on the information above?

Depends on what you're after.

  • RAD: Delphi (or Lazarus for cross-platform development).
  • Shiny GUIs: C++ with Qt.
  • Performance: C with IUP.
  • A radically different approach: Racket with its own GUI framework.
Collapse
 
alchermd profile image
John Alcher

Hiya! I definitely agree on your points. But can you expand on a couple of them, specifically

...Reliability and predictability of desktop platforms.
...Higher flexibility in terms of UI/UX.


Oh, IDK if it's just familiarity and lack of knowledge, but I definitely had an easier time downloading Bootstrap writing HTML and CSS in comparison with Qt (with Python bindings) or that GUI creation library in Java.

With that said, C++ and Qt sounds interesting! Any particular resource you can recommend to get started?

Collapse
 
tux0r profile image
tux0r

Reliability and predictability of desktop platforms.

If you're targeting Windows 10, there is exactly one API (that does not change much) waiting for you. Targeting "web browsers" will hurt you each time a new version is released.

Higher flexibility in terms of UI/UX.

A web browser is always running in a specialized window frame with an address bar, captured hotkeys et cetera, and HTML does not give you a full flexibility to work around that. Desktop GUIs do.

I strongly dislike Python, but Qt is rather nice. Hint: Their wiki!

Thread Thread
 
alchermd profile image
John Alcher

Thanks a bunch! Though after an hour or so of reading up, it looks like licensing could be an issue if I ever pursue Qt. The fee is quite heavy for my liking :/

Thread Thread
 
tux0r profile image
tux0r • Edited

Qt is dual-licensed. I personally don't use it because I would be required to bundle a ton of DLLs because of the license.

Collapse
 
alchermd profile image
John Alcher

Update: after a month of tinkering around, I found out that Java's GUI offering isn't actually that bad. Swing and JavaFX with their respective scene builders is quite nice to work with after some familiarization. Hopefully I can try it out in a real project and see how it holds up.

Collapse
 
avalander profile image
Avalander

What are some good options that you can recommend based on the information above?

Have you considered electron? You can use it to build desktop applications with the web stack that you're already familiar with.

Collapse
 
alchermd profile image
John Alcher

Hey thanks for the suggestion, but I'm looking for native implementations. I don't really see the improvement over my current model if I use Electron.

Collapse
 
avalander profile image
Avalander

So, what do you mean by "native"?

Collapse
 
esamcoding profile image
esam a gndelee

desktop apps means enterprise senario. in this senario you need something that will be staple for loooong time. web apps can be affected by browser updates.
microsoft is famous of long term combatibility.
my advice : winforms.
wpf is glmore modern but diffecult to use and slower