Web Browsers Are No More
Published on 2020-07-28 19:39:00+02:00, last updated on 2021-07-25 12:56:00+02:00
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 the question wasn't in the title?). We don't know what
web browsers are. Rather, the name got us tricked. It no longer represents what those programs are. Before we go into
details, let's talk about what was in the past.
It all started with the 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, that's 2008, 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 really 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 "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 website 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 word website. Generally speaking, website provides webpages that are
hypertext documents. Where hypertext usually means HTML. It's fair to simplify it into: website is
a group 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. And then,
they wanted even more.
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 a 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. Take git as an
example. 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.
The second part of the reason for the downfall of the browsers is Javascript. Dynamic content was made extreme. It no
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 the description of a web browser I should probably reword it to: a program that downloads, caches
and runs web applications for the user or prepares and displays a webpage.
In other words, nowadays the main purpose for browsers is to run web applications. 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, 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 feel like I stated the obvious. Still, what can we learn from it? I think that these shower-thoughts
can help us 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 (sometimes 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 a 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 for the user, depending on how
they are implemented and sold.
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.
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 or create something entirely new that will make us all hide in shame, because we didn't
think of it earlier. Myself, I want to explore breaking down the monolithic browsers into smaller pieces.