Web Applications vs Native GUI – Easier Features to Implement

client-sidefeaturesguiuser interfaceweb-applications

I have the impression that more and more applications with a user interface use HTML+CSS+JavaScript client-side instead of a native GUI framework.

I wounder what are the most important driving forces for this? or in other words what are native GUI frameworks lacking to be competitive? e.g. is it easier to do some kind of things with HTML+CSS+JavaScript than with native GUI frameworks.

If we suppose the application is a client-server application where the client has a graphical user interface. What is the most important things that are easier to do in HTML+CSS+JavaScript than in the most popular native GUI frameworks?

Best Answer

The most important factor, to my knowledge, is deployment.

With desktop applications, you have to:

  • make sure the software runs on all clients (with different hardware, OS versions, other stuff installed, etc.)
  • somehow transfer the software to each client
  • install the software on each client
  • troubleshoot each client individually
  • repeat all the above each time you want to roll out a new version
  • be very careful not to break compatibility with previous versions (e.g., version 4.3 better be able to load version 4.2's saved files)

Web applications also have a few advantages by nature for which desktop applications have to jump through quite some hoops:

  • a user's settings and documents will be available anywhere in the world, as long as there's internet access and a compatible browser (which is much less of a problem now than it used to be 5 years ago)
  • users can simply bookmark pages inside the application (if you do it right) and resume their work later, exactly where they left off
  • access to the application can be controlled centrally; users can be added and removed without modifying anything on the client; with desktop applications, the application would need a reliable (and fairly hack-proof) way of disabling or removing itself

In terms of development effort, I'd say writing web applications requires a slightly different mindset, but it isn't intrinsically easier or harder than desktop programming, given decent enough tools.

Related Topic