Frontend’s Lost Decade and the Performance Inequality Gap

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

The promise of the web is universal access to services across OSes and devices without gatekeepers, but like all systems, the web isn't what it promises – it's what it does. And today, the web is increasingly exclusionary. The roots of this exclusion are a mismatch between the reality of the hardware and networks users access our services from versus our expectations of those same devices and networks. The trends that put wind into JavaScript's sails on the client side in the early 2010's have long since stopped blowing. So, what now? This talk digs into the network and device reality we must confront, and why our future as web developers depends on what we do here and now.

This talk has been presented at JSNation 2025, check out the latest edition of this JavaScript Conference.

FAQ

Alex Russell is a product manager and engineer who previously worked on the Chrome team at Google and on TC39, focusing on JavaScript frameworks and libraries.

Alex Russell emphasizes building solutions that work well for end-users, focusing on quality and performance rather than popularity of tools or frameworks.

Alex Russell joined the Chrome team to work on ChromeFrame, aiming to integrate Chrome into Internet Explorer as a plug-in to improve web experiences.

The main challenge is targeting a diverse range of devices and networks while ensuring web applications perform well for all users, not just those with high-end devices.

Limiting factors include CPU performance, storage performance, and the diversity of devices and networks that web applications must run on.

Browser compatibility remains relevant due to differences in browser capabilities and the impact of trailing-edge browsers like Safari on web development.

Alex Russell believes JavaScript is inherently slower and advises using it minimally in critical paths, leveraging system capabilities for better performance.

PWAs aim to bridge web and mobile experiences by offering deeper engagement features like push notifications and home screen icons, contingent on initial web experience quality.

Developers should test on actual low-end devices or use emulators like webpagetest.org to understand user experiences across diverse hardware.

Optimizing for users at the margins, who often use lower-end devices, can significantly improve engagement and business outcomes, as these users make up a large part of the market.

 Alex Russell
Alex Russell
32 min
12 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Alex Russell's journey from engineering to product management, the focus on improving web experiences, and optimizing software for end-user success. Considerations include device performance, web diversity, and API constraints. Challenges of web platforms encompass hardware and network limitations, prioritizing user experience. Understanding the impact of Moore's Law on device performance and adapting browsers for efficiency. Emphasis on code optimization, user-focused development, and quality in web UI. Addressing challenges in PWA success, developer learning, and balancing frameworks with platform understanding.

1. Alex Russell's Web Engineering Philosophy

Short description:

Alex Russell's journey from engineering to product management and the drive to improve web experiences and user interactions through software updates and platform enhancements.

I'm Alex Russell, I am a product manager which is all weird to say. I do an engineering job, I did an engineering job before I joined the Edge team for 12 years on the Chrome team at Google, and before that I spent a decade on TC39, building JavaScript frameworks and libraries, and when I joined the browser side of the world, I went to try to make sure that the trailing edge could move up to meet us at the front of where the web was being developed. We want experiences to be made out of the best stuff because a lot of the stuff in the ecosystem is hard to move, right? It's hard to get people to change their devices, it's hard to get people to change their operating systems, and in many cases, the easiest thing you can possibly do is get people to update their software.

That's why I joined the Chrome team, to build something called ChromeFrame where we shoved Chrome as a plug-in into IE. Don't ask! All that is to say that all of that work since I sort of switched jerseys to work on browsers has been an attempt, you know, working on TC39, helping to lead teams that designed and promises, and service workers, and classes, and project Fugu, and all that kind of stuff. All of that has been about trying to bring us closer to what native developers expect a platform to do, not because there is some sort of envy but because what winning looks like for a platform is for users to spend more of their time using applications that are built in that platform.

We are all connected here under this roof as an ecosystem, even if we don't know each other individually. It is the success of our peers and the products that are to the left and the right of us that make us more successful or less able to deliver. To do a good job of that, we have to apply the principles of engineering, right? We have to understand what the constraints are we're going to build to, and then we have to build solutions to the problems that people come to us with, and use what we know to build to those constraints. Which is to say that anything that you might see in a survey, a popularity contest effectively, is immaterial to the question of whether or not you're doing a good job as an engineer, because the fitness function for engineering isn't whether or not your tool is popular.

2. Optimizing Engineering for End-User Success

Short description:

The engineering process should focus on meeting end-users' needs by understanding and building within specific constraints, including device performance, web diversity, and available APIs.

The fitness function for engineering is whether or not the result works well for end-users, the people that you're actually building and designing for. Okay. So, let's take that as the north star. That's what we want to do. We want to do engineering. How do we do it? Well, we have to understand our limiting factors. What are the things that we, you know, are building underneath? What is the environment that we are building in to solve the problems? Because that should determine, you know, for instance, what materials we use, what properties they should have, how much of it we can afford, right? There's going to be a budget. All of those things are important in other kinds of engineering and just as important in our engineering.

What are our limiting factors and are we actually building to them? Let's find out. So we have a couple of constraints. The first is, of course, the amount of CPU graphics performance and storage performance that we have got on any specific device. That is a shared resource on the web. We're heavily sandboxed. I always say that web developers don't send edicts down the wire. They send hopes. It's influence-oriented programming. You send something from the data center and you're very lucky if it comes out the other side in any of the ways that you expected it to because of different browser runtimes, extensions, browsers mediating your content in ways that you don't expect, and the huge diversity of devices that the web targets.

We're not targeting a single narrow ecosystem of a specific set of users. We're targeting all users on the web. So the set of all users that you would like to address, the properties of their devices turn into a big problem for us, as do the networks that they connect over. That is a huge diversity. That is not sort of a narrow target. Of course, the browsers that users use define the software ecosystem that we can program to. We can only target the APIs that we believe are available. So these are the three things that I think we should be keeping in mind when we sit down to try to solve a problem for a user. This is, you will note that there is nothing in here about frameworks, right?

QnA