In this blog post we will explore what the differences are between using client software vs. a web browser to use applications. You’ll learn the pros and cons of both and how they even can congregate. Eventually, we’ll take a quick glimpse into the future.
Client software is a specific application that’s installed on your computer, that can be used to communicate to some other piece of software over a network (such as the internet’s world wide web). However, a client software doesn't necessarily need a network connection to run on your computer.
For example, the weather widget on your phone is a software client. Microsoft Outlook on your desktop is a software client, and indeed web browsers are software clients. Usually when people say “program” they are referring to a software client of some type.
There are some distinctions between those two though. While all software clients are programs, not all programs are client software. Just most of the ones that we think about.
Software clients are dependent on an operating system in order for them to talk to your machine’s hardware. Think of things like use your microphone, display images, and send and receive data to other computers.
You are very likely reading this via a web browser right now. Web browsers are applications that are meant to surf the web. Firefox, Google Chrome, Internet Explorer, and Safari are all web browsers. The web browser itself has some access to your machine, whether that be a cell phone, or a desktop, and it also has some protocols for talking to web-servers.
The web-servers give browsers instructions on how to build a web page, and the web-browser assembles the web-pages based off of those instructions.
Some websites don’t function like websites, but instead they try to function more like their own applications within a web browser environment. Samba Live is the perfect example, it offers you a feature-rich application within a web browser. Another example is Google Drive which you usually access within a web browser as well (although you might access it through a client like the Google Drive app on your smartphone).
Some applications have clients and web-applications as well that serve the same function. For example there’s a Facebook app on your phone, and there’s also using facebook.com through your web browser on your phone. They both have the same functionality, but can have differences in the user interface, and some functionality differences as well.
This is because the servers that the web browser and software client are connecting to are the same servers, and also because modern web browsers are very powerful applications that give web designers a ton of flexibility when designing web-apps.
That’s the way things are heading. Though we will probably never get to that point. A similar comparison is how computing has become more and more mobile. First there were desktops, then laptops, then phones and tablets.
Desktops didn’t disappear when we made the shift towards mobile computing, and full software clients won’t disappear either.
While modern web browsers are going to continue to include more potential and functionality, they will always fundamentally be a design constraint, and developers will have more freedom and more of your device’s resources available to them if they design specifically on the level of applications and make full independent software clients.
For this reason, independent clients are always going to be able to run better and have access to more functionality than a web-app that’s permanently tied to a web browser will.
One big problem that web applications have is that they usually require an internet connection in order to do anything (except for Progressive Web Apps). Software clients can still work offline and be useful to you then.
Some services are always entirely web-based, and will always require an internet connection in order to be useful. For example strictly online games may have a client that can launch without an internet connection, but there’s no useful benefit to being able to do that. The same applies to video conferencing, live streams as well as webinars or webcasts.
There are also some security considerations that should be taken into mind when thinking of browser applications vs. client software. In general, software that runs in a browser can't harm your computer the same way like a downloaded application that runs locally on your machine.
That's also the reason why organizations don't allow their employees to install local software. In this case you rely on web applications if you are not happy with the pre-installed software from your IT department.
From the perspective of a developer, web apps also come with a lot of advantages. When you build something for a browser, you don't have to build multiple native apps for Mac OS, Windows or Linux with different source code. That's why web apps are considered as cross-platform solutions.
The future might be at the intersection of web-application and software client, which will give the user the flexibility to use the core functions of what they want from right in the browser, but also still have the option to commit a bit and get a full client if they want more performance and special functionality that’s difficult or impossible to cram into a web browser.