Posted on

There is something odd about the way people think of IT and more specifically its limits. In the old days, people were browsing the internet using archaic browsers such as NCSA Mosaic. Both CSS and JavaScript did not exist and these browsers were running on very limited hardware. This led to a certain state of mind where the goal wasn’t to make software, especially web-related applications, around functionality and accessibility to the majority of people. These software were thought of and built around stability and low consumption. It wasn’t really a choice though, hardware couldn’t handle tasks that are today deemed well handable.

However, through the course of the following decade, this state of mind would radically change ; it would lead to a total reversal of roles. In fact, the hardware became so powerful it became able to render complex designs using advanced web engines with real-time processing. As JQuery, Node.JS and other frameworks developed, processing power limits became a thing of the past and the focus on these applications went to user experience.

With the creation of Electron came a question. Why bother making native software when you can make web applications? Of course, this question doesn’t apply to specific domains where performance is still critical (for instance video games development for high frame rate and resolution, digital audio workstations for low input and output latency and operating systems), but if your goal is to make a small concept application, Electron is the easiest and fastest way to have something working on your machine.

Let’s webify1 everything then! We’ve already come a long way on that point, all of your online chatting and video calling apps are all web-based, whether in the closed source space (Discord, Slack, Zoom) or FOSS (Signal). Why bother having to take into consideration all of the small bits and pieces of each type of operating system, if not each type of Linux distributions when you can webify your app?

Webifying your app then makes the process of creating it more accessible and easier. As a matter of fact, you don’t have to do anything system-related to have your program working, all of the browser engines such as WebKit (used by Apple’s Safari), Blink (used by Google’s Chromium et al) and Gecko (used by Mozilla’s Firefox) are taking the matter for yourself.

Yet, when thinking this way, you could be tempted to take your software stack for granted. All of the libraries and frameworks you are using are all widely spread and commonly used, so that means it works right? Except that’s not likely the case. When you encounter an issue, the number of unknown parameters are almost infinite and your execution stack is so big it’s impossible to have an idea where to start – especially for newcomers.

But let’s also not forget the ethical issue of web apps related to power consumption. Why have an app that takes hundreds, thousands, if not millions of times the calculation power of a native app just to have something that’s a bit handier for the developer? Simplicity is key and webifying goes against such values.

Also, let’s not forget where we are coming from, native apps are still important and web apps are good as a conception tool. Developers that base their knowledge solely on such concepts lack a desire to have a deep understanding of computers, how they work and why they work that way. They pay the price of bloat for personal comfort, and they are aware of that – mostly of the time because it does not peak interest in them.

But, let’s not deny the fact that Linux compatibility is at its best because of the webification of apps. Software applications such as Discord, Spotify, and more would probably never exist if it weren’t for the easy compatibility the browser engines give. And thinking of the process of webification, if everything ends up as a web app, everything would be working out-of-the-box on Linux, and FOSS execution stack, rather than proprietary software such as Windows or Internet Explorer.

That is, though, if we don’t take into account the dependency it is creating on Google’s Blink browser engine, as it now populates 80% of all browser activity (through Google Chrome and third-party forks such as Microsoft Edge, Brave, Opera and more). Google is on the way to pave and shape the future of the web as they please, and they are having more and more control over the years. These are free and open source software of course, but the code is mainly, if not almost exclusively provided by Google as they are investing millions into its development.

So, is webification a good thing then? Honestly, it is quite a hassle to answer with a simple “yes” or “no”. The boons and bans’ weight differs from person to person, depending on their views of what being a developer actually is. For some, it may be a simple hobby that won’t change the world, for others, it might be to enforce their views on what the web should be. It isn’t odd that Google lately pushed Manifest V3 to refrain people from blocking trackers, which Google has its own installed on 75% of the top one million websites, and from blocking ads, which Google owns the largest internet advertising network – Adsense.

Personally, I know webification is inevitable and hope it’ll be a good way to open the gates to Linux to a lot of users. There is very few we can do here but help the community follow the right track, so let's see where this brings us!

Footnotes

1

In this blog post, webification is considered to be the process of creating web applications instead of choosing native applications widget toolkits to develop graphical user interfaces