What are the differences between web application and desktop application?

Asked

Viewed 11,718 times

50

I always make confusion with web application and desktop application, I can not understand very well the differences of both.

Questions

  1. What are the differences between web application and desktop application?
  2. What are the main characteristics of each?
  • https://bitmasters.wordpress.com/2011/03/03/sistema-web-x-sistema-desktop/

  • 7

    I had doubts if this question was good, but I went to research and not only is it interesting and useful, as I think it will bombard, this is a demand of many people.

  • I never thought about the following, but I think it’s reasonable: can a desktop application also be web? For example systems that inform the user that it is outdated, somehow check somewhere on the network. Or, still, system that need a crack to work.

  • @Marcelobonifazio usually uses the web as the definition of "thing running in the browser". But nothing requires a desktop application to have the server on the local network. One of the advantages of TCP/IP in this scenario is that it can be hybridized, only local, only remote if using network.

  • @Marcelobonifazio I’m seeing if I can find reliable information that will determine this limit. I was thinking: if an application is this typical desktop but consumes everything from a webservice or something, makes it a web application? I don’t think so, but I want to make sure, I hope to get it at the end of the research process.

  • 1

    As Silvio would say: This question is worth a million reais.

Show 1 more comment

4 answers

38


TL;DR

Web application is the one accessed by the browser (complete or part of it). Desktop application is the one directly accessed by the operating system (on a desktop, of course).

Introducing

I want to make it clear that I have done reasonable research to be able to respond in the best possible way, without incurring dubious opinions or information. But I found nothing formal that defines well what characterizes each one, it is all vague and without references. Of course some things are obvious, but many may even seem obvious and not be an inherent feature of each platform.

So don’t take this as a definitive answer, it’s just a summary of what I found written and of personal observations trying to apply an informal scientific method to identify the definition that fits well with practical use.

Due to the low quality of the content I found I had to adopt a more posture to eliminate opinions that clearly do not fit. I noticed that there are many myths in the definition of the terms and consider one of the ways to make the application as characteristic of the platform, which is not even close.

Agree terms

I think we can include mobile applications within the desktop applications for this context, since the applications have very similar objectives and functionalities, what changes is the support platform and specific operation, although each has different characteristics. The fundamental difference between these two platforms is usually only if the device sits on a table and has large screen or stays in the hand of the person and has small screen, and probably an input of ados with virtual keyboard and induction on the screen.

One question comparing web with mobile already exists and it’s a fairly frequent current discussion. And this is relevant because the same features, advantages and disadvantages of the mobile X web can be used in the comparison of desktop X web. In the background what we are comparing is the native X web.

Desktop application includes notebooks, subnotebooks and even some more complete tablet.

Serving application

They are those that run on specific machines probably of high capacity to be a server for external clients. In fact a server application can be on any machine, even mobile devices, although less common, serving external customers or just that machine. What characterizes this type of application is the lack of direct user interaction. Interaction occurs with other local or remote software components.

A server application comes closer to the form of a desktop application, except for the interaction, even when it is serving the web.

I won’t talk about the web server because I don’t think it’s the focus.

Striking features

From what I understood the characteristics that seem to be more convergence to define what each of these two applications is:

  • the platform where the application runs
  • how user interaction occurs
  • where the application is made available.

There are others, of course, but they do not define so clearly what one or the other is. At least there is no consensus.

Desktop applications

We can divide it between those that use a graphical interface, very common today, and textual applications (console).

There are other classifications not so relevant to this context.

Characteristics

We can call a desktop application when it runs: a) directly on top of the operating system; b) through intermediate software that does not impose artificial restrictions on access to the operating system, such as built-in application interpreters or language virtual machines.

Access is through a platform-specific API.

The platform provides the means to program these applications in the way that suits you best. And well-developed applications use the full potential of the platform as much as possible.

User interaction is expected for that platform, at least roughly. And it depends on nothing but itself to complete the interaction.

It must be placed on the machine in some way and be available for use right there (there is the remote access that misrepresents this a little, I will not go into detail).

From what I understand there is the idea that if your application depends on other software that works as a platform for it, the application cannot be considered desktop. For example if the access is done by an access terminal there is an intermediary that invalidates it to be desktop, although the terminal access software itself is a desktop application.

Advantages and disadvantages

In general these applications tend to be a little less secure for the user due to their little limitation. It should choose your software vendors well.

There are initiatives to decrease risk with more limitations and app store certifications. At this point the mobile philosophy differs a little from the desktop that is usually a little more free, but it is not technical limitation, it is artificial imposition.

The application itself runs a higher risk of being damaged by the user because it is exposed to the user.

The general use of the desktop application is usually more reliable and safe to avoid external interference since it has a certain isolation and difficulty handling improper.

In general it can use better authentication and authorization mechanisms.

But security can be good or bad depending more on the programmer than the platform.

In general the desktop application cannot be accessed by external means. Note that I am not talking about access to the solution as a whole which is possible and does not depend on the desktop part.

The user experience can be very good. Large data inputs work smoothly. The interaction usually occurs without snafuss or oddities. They tend to respond faster.

There is a small barrier to start using the application the first time (bring to the machine, eventually install, configure, etc.)

It consumes and makes better use of the machine’s resources. This can be good or bad.

You can access external equipment, the entire file system, any available services, interact with other applications that allow this, and access 100% of the public API of the operating system. You only need to authorize access to any or all resources once.

Some things are easier to develop in it, but given the flexibility some may require an additional effort.

Of course, all this presupposes that the application has been well developed. There are a huge number of programmers who have difficulty producing good results, but it’s not the platform’s problem, it’s the programmer’s problem. Especially web programmers usually have a lot of difficulty transiting on the desktop, hence many choose to make web, even when it is more suitable to do desktop.

Examples of applications

The most obvious are office applications such as word processor and spreadsheet, business systems, computer data administration utilities, games, educational software, and those that meet specific needs.

Web applications

I thought and researched a lot if a client application using technologies typically adopted on the web would be a web application. It concludes that this does not clearly identify the type of application. The way the application was developed cannot determine what the application is. Its internal workings indicate for this type of classification.

Characteristics

We can call a web application when it runs on top of the default web browser or through software that achieves all the same goals. Browser imposes restrictions on machine access.

Access is provided by the standardized API universally provided by the browser.

The platform provides the means to program these applications in the manner determined by W3C. And well-developed applications strictly follow these standards.

User interaction takes place universally on the Internet, at least roughly. And it depends on at least a minimum external initial access using HTTP protocol. In pure web applications interaction occurs with two applications: the browser and the page.

It must be available on demand at least the first time via HTTP (even if it is not remote).

From what I understand there is the idea that if your application does not depend on the browser, even if it uses HTML, CSS, JS, and other typical web technologies, the application cannot be considered web. If the access, even external by HTTP, is done by a desktop application that is not equivalent to the browser is not a web application.

For example Node and Deno can be used for non-web applications.

Advantages and disadvantages

In general these applications tend to be a little safer for the user due to its limitation, even because any access outside the browser must be authorized individually by the user. He must be able to access even what he doesn’t know or trust.

The application runs a higher risk of being modified by the user, so you can’t trust what it emits.

The general use of the web application is usually less reliable and safe as it is vulnerable to external interference and interceptions.

But security can be good or bad depending more on the programmer than the platform.

In general, the web application does not need to access by external means, be it internet or intranet, except in its initial load. Note that today it is not so common for web applications to run mainly offline, but that has changed.

The user experience tends not to be as good. Large data entries are badly damaged. The interaction usually occurs with a few snarls and oddities. They tend to have waits, but it’s not something intrinsic to the application, but rather the infrastructure used almost always.

The only barrier to start using the application the first time is to have an external connection to acquire the application, besides having the browser, obvious. Unless it’s totally local, which is less common.

It consumes and leverages better the ability to interact with the outside world. This can be good or bad.

You nay can access external equipment, file system, any available services, interact with other applications, and only the web API available in that browser can be accessed.

It is not simple to develop it unless it is to run on the intranet and can control the browser that the person will use (which is ironic because if you do, the web application loses almost all reason to exist). The programmer has little or no control over the environment.

Of course, all this presupposes that the application has been well developed. There are a huge amount of programmers who have difficulty producing good results, but it’s not the platform’s problem, it’s the programmer’s problem.

Examples of applications

If we consider that websites are not exactly applications we have the use of collaborative software in general, applications of eventual use by third parties and even when access needs to be made from anywhere in a simple way, and other software that mimics what desktop applications do, achieving varying degrees of success or failure.

Many applications are web because there was a non-technical requirement that determined so.

When to adopt each

If it is an application that the user will use frequently, maybe daily, there is no doubt that the desktop (or mobile) is the most appropriate option. There may be some exception, but it has to have a very good justification. Very collaborative applications can end up being useful as web, even in extreme use.

If the user access will be occasional and it will not have a strong link with the application, it will go from web.

Controversies

Not everyone agrees, not everyone can perceive all characteristics that need to be analyzed and which each platform has. There is a lot of false information that has been disseminated on the internet and as few people produce original content and most only repeat what someone wrote, the information has become ubiquitous. So I understand that many people buy myths about both.

In the other answer there are some points that do not seem to define these types of application, some maybe only that it is not totally like that, others is not the exposed, even may be the opposite.

Web

Depends on Internet connection;

Only for initial access, this feature is not mandatory, although it is very common to access so.

Does not require permissions to execute;

Requires to do specific operations. The user has to authorize individually any access that goes beyond the browser.

Users always use the most updated version;

If it is mandatory online. And this obviously doesn’t include the browser that might be using a very old version that you should support.

Allows you to easily measure what users are doing;

Just like the desktop, with even more measurements possible.

Generally requires knowledge in various development technologies such as CSS, Javascript, HTML, Back-end;

It does not matter for application.

Desktop

Works even without Internet connection;

Some already require internet, as well as a web application. Just because the application is desktop does not mean that it cannot access data over the internet or even access webservices. It is possible, but in general it does not access normal web pages.

Has small screen size, not being a good practice the use of scroll;

In general the visible screen is larger than web that has a space consumed by the browser. You can use scroll without problems, the programmer should choose what makes the most sense for that application. Just as web does not need to use scroll if he doesn’t want to.

Requires administrator permissions to run;

It does not require, unless you do something specific that requires that privilege, just as the web requires authorization to do certain tasks that are trivial on the desktop.

Usually requires installation;

Circumstantial. It is the programmer’s option to require an installation.

Difficulties to keep up to date on all users;

Not true. At least not because of the platform, it may be because of the programmer’s inability.

Security and data transfer are not so worrisome as it runs locally;

It changes very little. The fact of being local and desktop has nothing to do, are orthogonal features. Downloads can be as insecure as web.

Generally requires knowledge of only one technology for development, such as Java Swing, Delphi;

Not quite so, in general need to know some technologies between SQL, XML, JSON, some specific XML-like, maybe to define the UI, some script, among others.

Completion

I cannot say that I was able to answer definitively what each one is and I am willing to improve if someone finds some inconsistency.

  • Dificuldades para manter atualizado em todos usuários: Why isn’t that true? I would agree that it is much simpler to ensure that a customer is using the latest version of the application if it is a web application. Of course there are some situations where that’s not quite so, but that’s not the rule. Everyone uses the latest version of stackexhange, facebook, google... etc

  • The deskttop application can autoupdate itself without anyone’s intervention, and you can even choose whether to run an older version if the user doesn’t want to choose or only run if the newer version is running, which is a bit difficult to do for the web. The fact that a lot of people don’t do or don’t know how to do it doesn’t mean that it can’t, or even that it’s harder to update. At most it can give a little + initial work, then it gets easier because an operating system has a very stable API, the web does not. It’s childish to ensure that your site always works on the thousands of different browsers

  • Right, but you’re mixing up a lot of concepts there. Dificuldades para manter atualizado em todos usuários We are referring to having the latest version and not different versions of the software. It is also not easy to ensure that a desktop application works on all operating systems. Which brings us to the point that remains. While desktop applications usually require additional development to ensure that the software is in the latest version, the web application does not require.

  • Web application needs to work on multiple browsers, but at most it uses technologies typically used on the web, but it’s not web, desktop application only needs to run on different OS for a specific requirement. But desktop application does not need additional development to ensure that it works in every situation that it has no control over. If it were said that upgrading desktop needs further development, I would understand. Still still the difference is minimal and only made once, do not have to get right on each update as occurs on the web.

  • I have worked in companies that made web applications that only garatiam compatibility with internet explorer. It was the browser used by clients... I would say that from the moment you support the most used browser, or browser used by your customers, supporting other browsers is a specific requirement, such as running on different OS. If you see sites advertising compatibility with a list of browsers, they list the icons of the browsers they support.

  • 1

    So it was application for IE, not for the web. It’s just a version of IE, because when you update IE, it breaks a lot of stuff. Web presupposes universalization, alias this is the biggest reason to make web.

  • a PWA, after "installation" on the platform, is a web or desktop application?

  • @Guilhermecostamilam things start to get messy, but generally tend to find the web. I still don’t fully understand the PWA process to state something concrete.

Show 3 more comments

11

Web Application - It is an application that runs on the web. The core of the application must run on the web server, which is a different machine than the one where the user interacts, which is the client machine. Uses the client-server architecture via requests using the http protocol. The client is the machine that accesses the server through a browser and the server is the machine that provides the service. The web application in general uses technologies that render content in the browser, such as html, css and java-script.

Desktop application - It is an application that runs on the user’s machine, it is compiled software that uses the operating system resources where it is running. It does not necessarily have to be an installed software, although much of it is. It runs through the call to an executable file. You can communicate with the internet or not to perform some tasks. There are games that even though desktop apps only work with internet connection, as is the case with all games that run on the Steam platform. The difference is that the core of the desktop application lies on the user’s machine.

  • 1

    The definition of the web is not quite that, there is assumption that the most common defines the whole.

  • Succinct and correct answer. Excellent!

  • A python application (or in any functional language gives time to answer) can be an interpreted or compiled desktop application.

1

My succinct and objective concept is:

Web application - Every system you access using your browser, be it on your desktop computer, mobile phone or tablet. Ex. Your bank’s website.

Desktop App - Every software that, for you to use, you need a desktop computer that has advanced or state-of-the-art hardware features, for example, high-performance processors, video processors, audio and etc. These softwares usually do not run on smaller devices (mobile phones, tablet, etc.) Ex. 3D Studio Max (3D Modeling and Rendering Software).

  • The web part is a good definition, despite being a simplification, the desktop part of a wrong premise or at least is written in a somewhat confusing way.

  • 1

    I can develop a portable program, so it does not fit in "need to install", it is Web or Desktop?

  • 2

    Neither desktop nor web, it is portable software. See: https://softwareportatil.wordpress.com/software-portatil/

  • 1

    @Leofraietta Good response on the mobile app comment. They are a newer concept than that classification between "desktop" and "web", and have a bit of both. Already its definition of "desktop application" is at least delayed because today we have web application where the browser will consume more processing and memory than desktop applications, and we have mobile devices with more processing capacity than desktop computers used daily in large companies.

  • 2

    Okay, I agree with your observation @Caffé in gender, number and degree. But what I wanted was to give a succinct and objective answer, so what I wanted to make clear is that desktop applications are used in a different way than web applications, without generating too much confusion. The best and most complete answer was ever given then my purpose was another. What I’ve tried to say is that it doesn’t make sense, or maybe it isn’t applicable considering your pointing, a heavy application of 3D editing or video editing, running on a device that isn’t desktop in most cases.

  • @Leofraietta even consider its the second best posted so far. I did not positively because of the wrong premise, but also not negatively. The other who has some votes has several mistakes, but perhaps won because it has a little more information and a testimony that it is correct, probably just to contradict me, behavior already known for a long time.

Show 1 more comment

-7

Web

  • Flexible, can be accessed from any browser device;
  • Depends on Internet connection;
  • It has infinite screen height, scroll being a feature widely used;
  • Does not require permissions to execute;
  • Users always use the most updated version;
  • Allows you to easily measure what users are doing;
  • Requires greater concern with security and data transfer, since data traffic on the Internet;
  • Generally requires knowledge in various development technologies such as CSS, Javascript, HTML, Back-end;

Desktop

  • Works even without Internet connection;
  • Has small screen size, not being a good practice the use of scroll;
  • Requires administrator permissions to run;
  • Usually requires installation;
  • Difficulties to keep up to date on all users;
  • Security and data transfer are not so worrisome as it runs locally;
  • Generally requires knowledge of only one technology for development, such as Java Swing, Delphi;

Some points are debatable, but this is an overview.

  • I would say that all points are debatable, except those that are wrong or at least are misleading. I’m short on time hj, I’ll develop the subject further, then I could talk point by point. I still need to hit a few points in my self and confirm some things that I’m not sure if there is a more or less official or well accepted definition.

  • 4

    There’s a lot of debatable stuff right there. A lot of the negatives of the desktop only happen in poorly done soft, not limited technology. The screen you do as you want on the desktop and enjoy better than "web", if you want can do infinite scroll to any side the same way. It is a serious equity to think you need an administrator, only poorly done soft depends on it for normal use (except special services, but there is something else). It is no problem to keep up to date if it is done well (and can be automatic). Security has nothing to do with being web, needs care in both cases

  • 4

    In other words, I understand what you mean, but you have to understand this as a programmer problem and not a platform problem. I know it gives this impression to some, but there is a mere matter of having a lot of bad people in the market (whether web or desk). And on the web, I could list a number of disadvantages that you haven’t put, like the fact that you don’t have access to devices, depending on browser version to run certain things if the app is modern, of being complex to writing a decent UI that comes close to a real program, and so it goes (just commenting on top, if it were to elaborate I would respond)

  • @Bacco From my experience with desktop apps, this is one of the recurring problems we’ve been through, non-existent on the web!

  • 4

    @Murillogoulart yes, that I understood perfectly. And it really happens a lot, but usually because the guys program badly. I’d have cases and cases to tell you about this happening, and most of them are programmer failures. I’m not disagreeing with your perception, just correcting the fact that it’s not the platform’s fault. I can speak for myself, including because I not only develop, as I make sure my clients do not work as admin ever.

  • 4

    Remember that in case you want to discuss the subject (the subject of web x desktop, not comments), has the network chat, the Stack Burst room is where we usually stay. You already have enough points to participate with the staff. There are enough people there with experience in the 2 areas.

  • 2

    And before you know it, that negative in your answer is not mine, although I disagree with it. I always try to wait a while to give everyone time to elaborate calmly.

Show 2 more comments

Browser other questions tagged

You are not signed in. Login or sign up in order to post.