Web browsers are no more
Browsers, we all know what those are, right? We use them every day and it wouldn't be an exaggeration to say
that they are one of the most used pieces of software all over the world. They have tremendous impact on not only the
industry, but also on regular life of normal people. We sure do know what they are, right?
By the power of Hinchliffe's Rule I say no (is it really if question wasn't in the title?). We don't know what web
browsers are. Rather, the name has us tricked. It no longer represents what these programs are. Before we go into
details, let's talk about what was in the past.
It all started with WorldWideWeb, followed by NCSA Mosaic, which in turn spawned Netscape Navigator. To wage a war
against it, Internet Explorer has been created. In late '90 and early '00 all major players (with exception of Chrome)
have made their appearances. By the time Chrome finally arrived, the term "web browser" was widely understood and had
established its meaning. The way we understand browsers is from sometime of that period.
Mozilla tells us that a web browser takes you anywhere on the internet, letting you see text, images and video
from anywhere in the world. That's vague as hell but Wikipedia isn't better with: browser is a software
program for accessing information on the World Wide Web. It then describes a simple use case: a user requests
page from a website, browser retrieves the content from a web server and then displays the page on the user's device
(quote slightly adjusted in size).
These descriptions should resonate with most of us when we think of web browser. At least to some degree.
If I were to describe it with my own words I would probably say something of the sort: program that downloads,
prepares and displays content of a webpage to the user. May support stylesheets, history, cache and scripting engine
for dynamic content.
It's still vague but it gives some more hints regarding the functionality. In all this, the key to the meaning is
hidden inside the words webpage and website. Generally speaking we consider those to be groups of HTML
documents with optional images or other files all served via HTTP. Rarely we expect browser to support anything else
than, in terms of formats: HTML, images, video, plain text or maybe pdf, and in terms of protocols: HTTP. Sometimes they
implement stuff like FTP or maybe torrent, but that's not really their main purpose.
Browsers aren't really web browsers like: entire web browsers. They can just show you a selected part of the web and
that's OK. And I think that's part of the reason it all went wrong. People didn't think it's OK but it was OK.
Thus, functionalities were migrated to browsers. The number of use cases steadily rose. To be honest, it's very hard
to draw a line between things that should be in web browser and things that should not. It's slightly clearer if there
is a protocol that supports the same functionality like in case of e.g. e-mail reading and sending. But take as an
example git. Is cgit a bad idea? I wouldn't call it bad straight away. I'm not sure if I would call it bad even after
months of contemplating about it.
longer was there to support the user and extend the content, but it started to become the main component of this new
thing served over the web. Now we know what this new thing is called: Web Application.
Coming back to my description of web browser I should probably reword it to: a program that downloads, caches and
runs a web application for the user or prepares and displays a webpage. May support history.
In other words, the main purpose for browsers is to run a web application. It doesn't sound very browser-ish
now, does it?
Please, don't get me wrong. There's nothing ultimately evil about that. It's only natural that over the years the
purpose and expectations have changed. I think what's important is acknowledging this change and being aware of the new
meaning. I believe most people who work in web dev are aware of these changes, although I never heard or seen anyone
explaining clearly where we stand now.
Firefox, Chrome, Edge and others, all are platforms for seamlessly acquiring and running applications on user's
computer. The applications are somehow mixed with webpages but are normal computer programs nonetheless.
In the end, I stated the obvious. What can we learn from that? I think that these shower-thoughts can direct us to
see our needs better. What we have is a platform that can seamlessly launch cross-platform programs in a sandboxed
environment. Additionally, these programs and their views with selected parameters can be expressed as globally unique
identifiers in form of the URLs.
The problem is that this can easily lead us to very unhealthy situations. The overall dependency on the Internet
connection for running local programs will only increase. This in turn, can make things as "Application as a Service"
more and more prevalent. I don't necessarily think they are bad, but they may become bad, depending on how they are
Trends like Electron partially fight this. On the other hand, they create other problems including astoundingly
enormous duplication. Each electron application usually has its own web engine. The good thing is that at least
partially user owns the software. The bad thing, is that generally speaking it wasn't intentional. The fun thing is that
these somehow sandboxed applications are now distributed through sandboxed platforms like snap. I wonder how fast will
we get yet another layer of sandboxing there.
Now then, I feel like I slightly turned into some doom seer. I won't go too deep into that because it's quite
depressing and I don't want that here.
Anyway, don't be angry, be thankful. We know where we stand and what we have in hands. Let's face it, solutions like
browser applications are extremely convenient. Let's create a way to handle them and integrate into currently existing
environment in a healthy way. Start by splitting browsers into smaller programs with their own limited responsibilities.