more

Rebuilding the House with Shiny Cardboard [Updated with Google Rant]

Yesterday I read two leading web developers (Jeremy Keith, ppk/Quirksmode) thinking about a fundamental change in the way we should use tools. The TL;DR: Stop trying to imitate native apps in the browser. Concentrate on performance. Use less tools.

I basically agree and support this cause. It is ridiculous that Facebook reinvents RSS to everyone’s applause because websites are so bloated nobody wants to use them if they don’t have to. As a web developer I feel the slap in the face.

It’s easy to blame the abundance of tools for this. There is a strong temptation to do what is technically possible just because it is possible. Jeremy Keith quotes other blogs that name JavaScript implementations of scrolling (Parallax), touch events or loading as problematic. I personally think that MVC in the client is a misconception, albeit an interesting one. “Look, I rebuilt our house with shiny cardboard!”

While there is some mocking about it I don’t know how many web developers embed jQuery before they even start to think about writing their code (which might end up being only a couple of lines).

Not just Performance

But there is more to it. Many people who build web pages are not very well trained for this job and do not fully understand the stack. Having lots of pre-built solutions to choose from helps them getting their work done. If it works they don’t bother to consider improving the performance or reducing the plugin overkill.

The web has been evolving at a very high speed for many years. This combined with the fact that many web developers are not ideally trained makes our profession easily fall for fashion trends. Use Grunt! Use Gulp! Use jQuery! Use Backbone! Use Ember! Use Angular! Use Bootstrap! Use React! You try it, you get caught and you easily miss the point where you should ask yourself: Does this really make my job easier and my products better? Often it’s rather Use this tool, it’s great than “I need a tool to solve this problem”.

I do think this is an erroneous trend and there should be more consciousness for the costs that come with every new tool. I hope the discussion recently started makes some web developers think.

But is this really the reason why reading news websites feels painful? Or why influental tech journalists make silly claims about browsers being too slow to render a news story Is this why people use InstaPaper or Readability, as Jeremy Keith points out?

The Real Problem

No: That is mainly because most websites (especially news websites) live from advertising. The relevant difference between web and mobile is not technology, it’s business model. In the web they not only have to throw you the ads into the face, they also want to keep you on their site with links, offers, newsletters and other crap. Basically we haven’t evolved from the late 90s when the term “web portal” was created, except that we can do it also with videos and like buttons, yeah. In a mobile app there are subscription business models which tend to be much less annoying.

As I pointed out elsewhere (warning: German language talk, profanity, Apple bashing, silly jokes, bad haircut) I think that advertising in the web has failed because it is too cheap and therefore too intrusive. It’s the web’s core problem. (And I have no idea how to solve it. Sorry.) It’s not so much the performance that is broken but the usability because advertising and usability don’t go together. I agree that the misuse of tools contributes to bad usability but the fundamental problem lies deeper.

Performant Crap Compilers

The average web page fires circa 100 HTTP requests and loads 2 MB data from the web – and “average” means that it can be much more, especially when we’re talking about news websites. Most of it is images, about 15% is JavaScript. While it’s ridiculous to have more than 300 KB code executed in an ordinary web page, the browsers (even the mobile ones) handle this surprisingly well. Modern JavaScript engines are phenomenal. How sad they have to compile mostly crap.

Most of the HTTP requests and a big share of both data volume and scripts are due to advertising. A different business model (which, of course, we only can dream of) would reduce these numbers further because the websites could focus on positive user experience.

TL;DR: Ad is bad. It has direct and indirect consequences for web page usability. Mobile apps have a huge advantage compared to the web, but it’s the business model, not technology. Web design is a mess but this is only partly the web developers’ fault – although they could do definitely better, and Keith’s and ppk’s suggestions should be followed.

Update

I’m just implementing a YouTube Iframe player into a website. Google suggests to write a little script which loads a loader which loads a bigger script which loads another big script, an even bigger script and a monster of a script:

YouTube API script downloads

Yes, that’s right: 1 MB compressed JavaScript code. For displaying a video in an IFrame and making it controllable with a rather simple API. Hello, Google? Anybody home? What the hell is all this code doing?

Kommentare

Kommentarfunktion für diesen Artikel geschlossen.