The Web isn’t uniform

Yesterday I was working on a progressively enhanced user interface (without JavaScript) — a scenario that we cater to very frequently at a company I’m currently employed with.

Accidentally, it completely slipped my mind to flip the switch and enable JavaScript back. A door to entirely different Web was suddenly wide open. Let me tell you—I didn’t like what I saw.

It took me a good minute of genuine confusion to figure out why most of the applications I use frequently were hardly usable and content barely available.

The Web without JavaScript is empty and broken

Here are some of the Web giants—Trello, Facebook, Gmail, Dropbox and AirBnB, sans JavaScript. Some of them handled it better, some worse. From zero information or pointers, that might as well be flipping a bird, to half-functioning interfaces informing about the potential bottlenecks.

As an active empathy practitioner I imagined what the ongoing no JavaScript Web browsing experience could be. While the percentage of these users might be relatively low, we fail to remember that until the scripts load, that scenario is true for all of us.

The Web isn’t always blazing fast

Even now, I’m sitting in one of the most expensive cities in the world, that offers the highest quality of life, on a DSL connection (barely maximum of 15mb/s down, slower than 3G that can reach 56mb/s, an infrastructure introduced over 10 years ago). According to Akamai’s Q4 2015 rankings, the average Internet speed worldwide is at whooping 5.6mb/s. The global connectedness is rapidly growing, but there’s still a vast space of unmapped territories (for more insight into Internet penetration see Global Internet Maps).

That brings me to a point; the foundation of the Web is plain ol’ Hyper Text Markup Language along with Cascading Style Sheets. I’m not suggesting we should stop using JavaScript at all—it’s a great language and the ecosystem is growing rapidly. npm already surpassed more than one billion module downloads weekly a while back. The community will continue to expand, improve and evolve, as others do too. This is a problem that spans way further than one programming language.

The Web and its technologies have to be treated differently

It’s a privilege to be able to use breaking edge technologies and devices, but let’s not forget basic accessibility and progressive enhancement. Ultimately, we’re building for the users, not for our own tastes or preferences. Sadly, not everyone is born with an equal chance.

Having endless opportunities at our hands is great, blindly obsessing over the stack and not putting people in the forefront never is.

Programming communities are heavily opinionated, very vocal and oftentimes hostile in defending their views. In these completely irrelevant microaggressions we lose sight of the humans we build software for.

If suddenly your audience disappeared, would you continue building and releasing into the void? If you were the end user and no one cared about you, how would you feel?

These questions have to be asked constantly. Empathy is necessary for everything we do. Luckily, one of the giants I’ve mentioned before, Basecamp, fixed their JavaScript problems hours after I tweeted and took the time to thank me for pointing it out. That’s care.

It boils down to understanding how our seemingly user-invisible decisions shape what the Web is. There’s no one programming language that will divide and conquer.

The Web isn’t uniform—it’s countless flowing layers, each affecting user experiences in its own way.

The technological choices are important for teams, but have even more impact for the audience. The Web can and will be built with and on anything we can put our hands on. Let’s not forget who we’re creating it for.