Artemis

Google AMP

and the website obesity problem

If you didn't live in a cave for the past few years, you may have heard about the Google AMP project.

But what is it?

The official AMP project website advertises Google AMP as an "Open source initiative to make the web better for all".

The AMP Project is an open-source initiative aiming to make the web better for all. The project enables the creation of websites and ads that are consistently fast, beautiful and high-performing across devices and distribution platforms.

But if you search a bit on some tech websites about this project, it looks like everyone is freaking out against this project.

HN research

A small search on Hacker News, most websites clearly shows disinterest up to disgust towards this project.

But... What exactly is Google AMP?

Basically, it's a set of restrictions which you must follow to be able to build an AMP-compliant page.

Also, AMP gives a "cache" system, which is Google itself, for your pages, meaning the end reader will directly load a page from Google and not your server, meaning that in some cases, the loading speed may be better.

There is a bit more to know, but that's the base things to know !

Now that we know what is AMP, we can see a few advantages, like content load restrictions, which will force developers to not include ads and such, so why exactly is everyone freaking about that ?

There are a few regularly cited major issues with AMP:

So. Which problems is Google AMP trying to solve, exactly?

The main problems that we encounter on Internet are about load speed and page size.

Those problems are so common nowadays that they were the source of a few talks and papers:

But some developers also took the time to produce humour out of it, and I think you already know those websites:

But why are those problems even existing?

The main culprits are companies and businesses wanting to milk the most out of their users.

Advertisement and third-party trackers are a very common source of load which can be found of most major websites.

Another heavy source of load is front-end developers wanting to use the latest tools to build a given website, even if it doesn't fit the website's goals.

We get it, you're proud of showing that you're using the latest ReactJS/Redux/Axios setup, with a preloader, hot page swapping etc. but except if you made a web-based software (in which case, congrats on using an inadequate platform for running a software), I don't think incoming users will care about this marvel of technology.

First culprit: Companies and businesses

As stated before, it's not uncommon to see third-party resources for pretty much everything, ranging from ad services to trackers like Google Analytics.

Most of those resources are plain useless (like advertisement systems) and were only chosen to try to get "a bit more" of each user's visit, without considering this user.

Others can have some uses, but doesn't give anything to the user. Simply put, they slow down the user for the sake of tracking.

As a demo, I want to put on the line two major news websites, Le Monde, a french news outlet, and The Washington Post, an english news outlet.

Those two websites have as a main and common goal to display news articles to users.

Le Monde

This website was already used by Neustadt in the paper cited above, "Against an increasingly user-hostile web".

Even if this website is less scary than The Washington Post, it still packs quite some load and constantly re-requests the same resource if you don't move on the page.

This resource is lightweight (approximately 1kb), but is still a regularly loaded resource. If you forget this tab, you can imagine how much traffic will pass through.

The video below demonstrates going to a Le Monde's article without any ad-blocker, restriction extension or cache.

The Washington Post

This website is even heavier than the one before, loading 5 to 6 ad blocks on each page, not counting the many scripts and images.

The video below demonstrates going to a The Washington Post's article without any ad-blocker, restriction extension or cache.

The aftermath

Now, it's clear that those websites are not any kind of fancy shop or gallery, but news websites.

Then I want to ask: what the fuck is any of those links giving to the user ?

A news outlet reader wants to read the news, and not wait for 10 minutes to access a page.

You should take into consideration that both pages were loaded using a 200kB/s Internet speed, the average speed in France. I'll let you imagine how much time it'd take on a mobile phone.

Also, he fact that TWP, which clearly gives no fuck about its end reader, was the one to advertise pushing AMP forward for the readers' sake (source) is really humourous, or quite ironic, I don't know which is the saddest option.

Second culprit: developers

Another big trend we're currently experiencing is web developers wanting to make websites with as many new technologies as possible.

We're seeing a trend in which a tool is not chosen for what it can do best but because it's hyped, new and shiny.

Two good reads on the subject are:

Instead of caring about the end users, it seems like every developer only wants to feel at ease, using any tool to leverage their work and even if using some can be beneficial, only relying on such tools will build a weak and unreliable web, and a user-hostile environment.

I'd even compare such "stacks" to CMSs, allowing to build some websites in a short time, but most of the websites built with such tools aren't correctly built or optimized.

About those "stacks"

Now I want to ask any frontend web developer: "Have you forgotten the KISS principles? Or rather, do you even know what it means ?".

I didn't, but I'm fairly confident on the fact that most answers I'll get will be in the negative.

A huge problem we're experiencing in the current front-end world, and more precisely with Javascript, is a dependency-hell phenomenon.

Sure, you can build a functioning website in 30 minutes throwing every fucking npm package and just patchworking around to connect them together, but did you think about the final result ?

Do you think that anyone would want such a huge, heavy and deprecation-filled website in the long term ?

My conclusion on that

I don't think that AMP is a good tool.

Or, I don't think that AMP was created to answer the right problem.

To conclude, I'll invite you to read a few interesting reads I've found during my web-browsing session on AMP.