Technology
Kyle Simpson and Tammy Everts on the challenges of the modern web
In this episode of the O'Reilly Programming Podcast, host Jeff Blile interviews Kyle Simpson and Tammy Everts, program chairs of the upcoming O'Reilly Fluent Conference. They discuss the evo...
Kyle Simpson and Tammy Everts on the challenges of the modern web
Technology •
0:00 / 0:00
Interactive Transcript
spk_0
This is the O'Reilly Programming Podcast. I'm Jeff Blile. Today we'll be talking to two of the program chairs for the upcoming O'Reilly Fluent Conference, Kyle Simpson and Tammy Everts.
spk_0
We have separate interviews with Kyle and Tammy. They have worked putting together the program for Fluent, which will be held June 11 through 14th in San Jose, California.
spk_0
The event brings together JavaScript developers, web developers, mobile app developers, performance engineers and others who work on the modern web with training tutorials and presentations on all areas of the web from front end technologies and frameworks and back end systems to web design, web performance security and more for more information or to register. Go to O'Reilly.com slash conferences.
spk_0
So just a little later in the show we'll talk to Tammy Everts, chief experience officer at Speed Curve and author of the book Time is Money, the business value of web performance. But first, it's Fluent Conference Program Co-chair Kyle Simpson, an evangelist of the open web and passionate about all things JavaScript. He is the co-author of the HTML5 cookbook and the You Don't Know JS series of books. Enjoy the show.
spk_0
Hi, Kyle. Welcome to the podcast. Thanks so much for having me. So if you had to cite one or two issues that are really on the radar screens of JavaScript developers at this moment, what would they be?
spk_0
I think JavaScript developers are facing a monumental task of juggling a very vast and increasingly more vast ecosystem of tools and processes that go around and on top of and in front of what used to just be opening a text file and typing JavaScript that used to just be the thing.
spk_0
And I actually was one of the reasons why JavaScript was so picked up in the early days and why I think it won the wars of ubiquity is because it's always been a selling point of the JavaScript language that it's such a low barrier to entry.
spk_0
And that meant that you could do a view source on a website. Look at a piece of code and say, wow, I see how they did that. They did this alert box and they did this mouse trailer, whatever the thing was.
spk_0
And then you could open up your own text file, do that, put it on, you know, FTP it to a web server. And within a few seconds, you had the same thing on your own website.
spk_0
That was attractive, I think to myself and I think to many, many thousands, tens hundreds of thousands of other developers that low barrier to entry.
spk_0
And now today is it stands we have we've sort of reinvented the process by which JavaScript gets written to put all of this other process on top of it.
spk_0
Of course, we have transpilers like Babel to take the new syntax and transform it into a syntax that doesn't work.
spk_0
Even before you run Babel, you've got linters and code style formatters and then you've got webpack that has to take all of your different JavaScript files and pack them together and to some sort of module format and ship it in one file and do all of this tree shaking.
spk_0
And I mean, it's just an enormous ecosystem now of tools and process that before you get your first line of JavaScript to run in a web browser, you have to learn all of these other things.
spk_0
So I think that's a that's a big challenge. It's not that those tools in and of themselves are bad, but it's that we created a process that made them the gateway to the web.
spk_0
And there didn't used to be that there didn't used to be anything between me and the line of code that would run.
spk_0
And somewhere along the way we decided that that needed to be interrupted because it wasn't good enough for some reason.
spk_0
And I think there's a lot of good spirit behind it. We want to have good collaboration among teams. We want to approach software development in JavaScript with the same levels of maturity that we might approach it for CSE++ project.
spk_0
But I think we've lost some of the essence of what it meant to just write a line of JavaScript. So obviously, now with all of this other stuff.
spk_0
Well, once we kind of get past that barriers to entry issue, are there some of these tools and can you cite some that maybe are exciting or strong interest to web developers now?
spk_0
I think web developers clearly have a lot of interest in finding frameworks that will take the common tasks and patterns that they face, whether that be authentication, whether it be a
spk_0
performant rendering of DOM updates, page updates, those sorts of things. Those are all difficult tasks to do in and of themselves.
spk_0
And there are libraries that do them well, but frameworks kind of take all of those different libraries, if you will, those different utilities for those things, and glue them together in a very specific and opinionated way.
spk_0
It's almost as if the framework isn't those tools, but the glue between them. And so if you look at something like Ember, they have a very specific vision of what a web app should look like, what its architecture should be, and what your approach to building from scratch should be.
spk_0
And that is very different from the way that a view developer would approach it, which is significantly different from an Angular or a reactive developer.
spk_0
So I think what's exciting to developers these days is that for different kinds of projects and for different teams and for different developer perspectives, there are so many different choices that offer very different trade-offs in terms of what you can accomplish if you pick one of those frameworks or another.
spk_0
And while we're on the topic, some of them have an even approach to what I would call the level of platform.
spk_0
Ember is kind of more even than a framework and really it's like an all-in sort of platform, not unlike something like a meteor, for example, that incorporates the server side with Node.js.
spk_0
It's a platform, it's a way of constructing your entire app and you buy into that. There's a lot of benefits to that. I think that's exciting to developers to explore.
spk_0
And it's also exciting because if we wait around long enough a few weeks or a few months from now, somebody's going to come up with a new one that has a whole different exciting set of pros and cons to it.
spk_0
Well, maybe we can come back to some specifics on some of those frameworks a little bit later.
spk_0
But I wanted to ask you about the Fluent Conference and you've helped put together the program for it.
spk_0
And I imagine you don't necessarily want to play favorites, but are there any particular talks at the conference that you're really excited about and looking forward to?
spk_0
I would say rather than talking about specific favorites, I did have several specific favorites and I lobbied hard during the proposal review process and the selection process.
spk_0
To make sure that I tried to get a few ones that I cared about in the schedule.
spk_0
And actually that range for me, normally it would be focused very heavily on tech. I'm a tech-mended person.
spk_0
And when I attend conferences, what I'm looking for is the talk that goes much deeper than something I've just heard or read and a blog post somewhere.
spk_0
So I'm always looking for that kind of deep, nitty gritty.
spk_0
And so I lobbied for a number of those. We had some very deep technical talks that are exciting to me as a technologist.
spk_0
But those weren't even the ones that I lobbied the hardest for. I mean, I think we got a couple of those in.
spk_0
If you didn't make it, unfortunately, just because of space constraints and so forth.
spk_0
But some of the ones that I lobbied the hardest for were, I think, reflective of a bigger shift, hopefully industry-wide.
spk_0
But certainly within certain pockets of our industry, and definitely myself, I would consider myself part of that.
spk_0
A shift from thinking about what we do as being about the technology and shifting to thinking about the technology as being an offshoot of what we do as relating to other human beings.
spk_0
Okay.
spk_0
So I think that's a good thing.
spk_0
I think we're trying to pull back and say, yes, the tech is fun, yes, the tech is exciting, and yes, it's transformational.
spk_0
The web that we are building is the single greatest invention in the history of mankind in terms of empowering the 7.6-ish-a-billion people on the planet to have their own voice and to have their own way to express and connect with other people in the world.
spk_0
So that is unlike anything we've ever done and maybe unlike anything we ever will do in humanity.
spk_0
And that's exciting and transformational.
spk_0
And I find that to be somewhat profound that I have any tiny little sliver of part to play in that bigger narrative.
spk_0
But we can pull back and say, none of that matters.
spk_0
None of what we do matters if we look at what we're doing as a series of bits and pixels.
spk_0
And we forget that behind those bits and pixels are people.
spk_0
And if you think about that, it's sort of almost a tactical level.
spk_0
A team is more than just a single developer who, on an island, isolated from everyone else, goes off and writes a whole set of code and FTPs it up to the server and then it's done.
spk_0
I think that's not the way things happen.
spk_0
Maybe it was for a time the way things happen, but now increasingly what we do is build these things in the context of teams.
spk_0
And actually that's why there's so many great frameworks and libraries out there is because those are focused on helping teams collaborate and divide and conquer bitter tasks.
spk_0
So we shouldn't focus on the framework part, but think about the framework as being emergent from what we're doing as people relating to each other on a team.
spk_0
And there are different chemistries on teams and there are different breakdowns and politics and social and cultural biases.
spk_0
And some of that influences your choices on that technology.
spk_0
So I think what we are doing well at fluent is trying to have a broader narrative and discussion about where the web currently is.
spk_0
What it even means to be the web because that in and of itself that word is sort of morpheus and just sort of thrown around different companies have different opinions on that maybe that's something we can unpack.
spk_0
But but whatever you call the web, I think fluent is dedicated to having a conversation about not only what makes up what we do of the web today, but what are the things that we are doing now where the web will be something different tomorrow and next week and next month and next year.
spk_0
What does that mean? What is our role? What is our responsibility? There are a lot of ethical choices that I think we must begin to face and we have those conversations in a broad sense in technology.
spk_0
But I think web developers often don't have those conversations mostly because they're being dictated by their boss or their client what to do.
spk_0
I think we're increasingly trying to say no you the practitioner of the web you need to be part of that conversation you need to talk about when you are asked for example to implement some add tech you know sort of technique to do some verse of advertising on a website what does that mean yes you're doing what your boss says but what does that mean for what what web we're building those are the kinds of conversations I hope we're having.
spk_0
And so number of the types of talks that I lobbied for the most were the ones that pulled that lens back and tried to focus on it's bigger than just what's the hot framework.
spk_0
I think fluent for a while in the in the first few years was like the framework conference because frameworks are the most obvious touch point that we developers would have but I think what we're trying to do now is have a broader conversation and I'm excited about that I'm I'm honored that I get to be part you know at the helm helping do some of that.
spk_0
That said let me bring it back to technology now as far as a couple other things that are on the program there are going to be some talks on functional programming and reactive programming and don't want to get your take on like how how those two topics are playing out in the community now.
spk_0
As someone who is I think relatively speaking somewhat new ish to adopting or trying to adopt functional programming into my toolbox this is something that I have been not it is not new to me that there is something called functional programming I probably first experienced it as much as two decades ago early on in my software development career and I like potentially some people thought
spk_0
while functional programming the word function has an I use functions therefore I must be doing something a functional programming and I didn't really have much visibility into any deeper meaning of it and any time I did try to get a deeper visibility into it I was confronted immediately with monads and endofuncters and other kinds of terminology that mean something very important to a functional programmer and are useful for them to intercommunicate with each other but are largely
spk_0
very intimidating and impenetrable to the outside crown and so that was my experience with functional programming for again almost two decades until relatively recently that is the last couple of years that I began to try to articulate what I knew about functional programming I been asked for many years to write a book many people have been saying you wrote these other books are when are you going to write the you don't know functional programming book and so I
spk_0
said well okay maybe I will and so I I actually have just recently put out the book called functional might JavaScript I spent about a year and a half researching and writing and refining this book and it's my journey to try to learn functional programming without that top down academic terminology notation kind of approach and hopefully maybe invite others and so I am excited and newly so about functional programming and I
spk_0
also feeling like when I write my own code I'm still not good enough at it to do it from scratch it's still like I write it the old crappy way and then try to refactor with with some of this more newfound knowledge that's one of the things that excites me because that journey that I'm going on is tracking closely with the journey of many others if you look at what's happening within the broader ecosystem of JavaScript right now functional programming wasn't really a thing that hardly any
spk_0
JavaScript program or we talk about even five years ago I mean maybe there's a few little a few little adherence to it but it was not broadly talked about it actually we saw a few frameworks that came out that led the way but maybe not even as obviously so I'm speaking specifically of
spk_0
Redux within the react ecosystem redux of course is not just react I always feel the need to remind people that redux can be implemented in things other than in react but it's they're very commonly paired together and redux takes some of the very core principles of functional programming and
spk_0
codifies them quite literally into the flow of data this single directional flow of data and the idea of a reducer I mean that's all at the very hard of functional programming
spk_0
so we see that starting to happen where people are learning functional programming and maybe not even knowing that they're learning functional programming and then later they're like oh that's
spk_0
functional programming I want to learn more about that so they're they're hungry and they're searching well we're we're reacting to that we know at fluent that if there is this growing grass roots trend of people hungry for more of it and if there are people for whom the
spk_0
could just go learn half school and read the mathematic notation if there are people like that out there like myself who need other paths to come to awareness a functional programming then it's it's it's it
spk_0
who's us it's it's incumbent upon us to do so sure and so I'm excited that we we have embrace that and I think the same would be true of reactive programming it's
spk_0
it's it's it's interesting that reactive programming can be described that I like to describe it as applying all of the concepts of functional programming over time that's basically what reactive
spk_0
programming is everything that we know that works in a sort of synchronous fashion on an eager set of data we can extend to working over time across a lazy set of data I think that's a perspective maybe not the only one but a perspective that
spk_0
means that reactive programming is also very important observables for example those also very very important and is starting to get a lot more attention we have big frameworks now that have embraced sort of whole
spk_0
heartedly embraced the notion of observables and we have companies like Netflix that completely rewrote their architecture from scratch oriented around that
spk_0
and so that is naturally filtering and sparking a lot of curiosity among people that's exciting and we at fluent you know we would have to if we were
spk_0
doing the community a service we would have to make sure that we brought up that content so I'm excited there's a couple of very good deep dives into each of those
spk_0
that I hope will continue that spread of curiosity among the community and you mentioned react a few moments ago and there are presentations
spk_0
touching on web assembly and react and both of those technology seem to have some buzz going on among web developers so what are your thoughts about their impact
spk_0
or important so react I mean clearly react has garnered an enormous amount of attention and and price from the community I think rightly so it is clearly
spk_0
helmed by some of the smartest people that we have in our community and some of the most passionate and creative thinkers that we have
spk_0
and I think actually you could you could sort of tell that story from a technical perspective just by simply looking at the diff the the get history of the react library
spk_0
and looking at the things not like new features being added but just looking at how react itself has evolved it's an amazing story of creating code and then refining it and battle testing that code
spk_0
so I'm amazed by that and so I think there is a lot of do attention and praise that that reacts is garnered I do sometimes wonder whether or not we are shifting away from understanding how our technology works to only understanding that we can do something with it so for example a lot of developers now don't even really get much intuition about what's happening to update something in the page
spk_0
because we sort of think well you know react figured out the only best way to do that so let's just let that happen well if you compare what react is doing for example to what maybe
spk_0
Ember is doing with their glimmer engine there are actually different ways to do this they are not just the same thing with a different name they are making different trade-offs
spk_0
and someone who's a technologist like me I would I would geek out on those and I would love to have more talks what we're comparing the sort of deep technicals but as a broader pattern among the community it's almost like we've told developers oh you don't need to worry about any of that stuff
spk_0
let the let the few really smart framework authors think about that stuff and you just pick whichever one has the most stars on GitHub or whichever blog author has told you this is the hot thing to do
spk_0
I wonder whether or not there are important details that are getting glossed over in those trends well are there any other like specific pain points or frustrations in the developer community that we haven't talked about yet that are going to be discussed
spk_0
it fluid one of the stresses that has been present on the web for a number of years and it has expressed itself in multiple different ways early on we had and by early on I mean say somewhere between five and ten years ago
spk_0
we had an enormous amount of pressure that was focused on the fact that JavaScript the language as an execution environment was not up to par with other language environments that would run the same equivalent code
spk_0
but JavaScript would run at ten sometimes fifty maybe even a hundred times slower so one to two orders of magnitude slower than the equivalent in say compiled C++ program
spk_0
so there were whole swathes of applications that just couldn't even run on the web you know if you would imagine ten years ago running video editors on the web nobody would do that because the amount of processing to do that would just never work you could not wait multiple hours to make every single little edit to a video right so there were whole swathes of things that people wanted to do with JavaScript because the web is this great portal to the world
spk_0
and this great platform upon which code can run in so many different scenarios and they couldn't do it and JavaScript execution was a bottleneck and in many ways that's a good thing because it spurred what we kind of affectionately refer to as the browser wars over the last decade
spk_0
and Google the V8 when Google's Chrome browser and V8 came out and then Mizzle of Firefox and to an extent Safari and now even Microsoft with Edge they all said hey we're in this arms race if you will to have the fastest JavaScript execution because people do want to write applications and they saw JavaScript execution as a determining factor for getting users
spk_0
well what happened over time was that they got really good at executing JavaScript which sort of exposed other parts of the pipeline that there wasn't as much that could be done and in a nitty gritty sense one of those things that was exposed was the compilation part of the JavaScript experience
spk_0
there's only so much compilation that can actually happen in any given millisecond and even if you make the runtime of your JavaScript program fast if there's a delay a lag in getting started because there is this precious few extra milliseconds being spent on compilation it just exposed that bear and now everybody when they did their profiling they're like oh my god the compilation is taking 35% of my time 35% was it's the same physical number of milliseconds
spk_0
but now it's the big percentage so it's the thing getting all the attention and so over the last four to five years people have been asking is there anything that we can do could we change how the web fundamentally gets the code that it runs and one of those big questions that grew out actually from the execution race which was ASM JS that Mizzle had and that famously is how we for example got the unreal game engine running 3D render
spk_0
and running it's better than 60 frames a second natively in a browser right that happened because of all of that but what sprung out of ASM JS was what if we took it to the next logical step and said we could represent the code in a more efficient way before it even gets to the browser what would that mean could we cut out the whole compilation step or drastically reduce it and out of that born of the last few years as web assembly and web assembly is a different representation of a program that can run natively in the browser it is a different program that can run natively in the browser
spk_0
but it is not a JavaScript program it's a representation of a piece of a program you'll always still have JavaScript but we'll see a natural shift towards the most computationally intensive parts of an application shifting to being represented in that way so that they are not facing for example the bottleneck of compilation time but there are other you know there's that the pros are that now we're going to be able to achieve potentially much much more impressive performance games
spk_0
it also means that there are more languages that can now go directly to the web as opposed to having to sort of end themselves through JavaScript translation they can now target web assembly directly and that's an amazing thing but one of the downsides or maybe not you know others listening may not agree with me that it's a downside but one of the clear offshoots of that means that potentially three five years from now say a new person who comes to the web and says I want to learn about how this amazing way of doing it
spk_0
is working this photo video editor thing that I'm using how does it work they're going to potentially try to do a view source the same way that 20 years ago I did when I opened up my first net scape web page they're going to do a view source and they are still going to see code but now instead of seeing one JavaScript language if you all they may see five different languages they may see rust and go and JavaScript and you know a couple of others thrown into the mix because we'll all you know we've taken the gloves off right
spk_0
if we want raw performance and that's the demand of the web platform in service of that demand let's not worry and at all about what the code looks like let's just get it in the fastest possible representation the smallest possible representation that's a good thing because the web has these demands and if the web doesn't respond somebody else will so I'm glad that we're responding but I worry that what we're getting to is maybe a future where the on the web
spk_0
and the onboarding path is even more daunting than I would I mentioned at the beginning about tooling and you know all of that pattern stuff to now it's like well actually to build a modern web page you're going to have to go learn go rust and JavaScript
spk_0
okay you know that that I think may be more difficult so WebAssembly is a huge advent for JavaScript and what that means five and 10 years from now it's going to be a very very different web as a result of this we need to begin having those conversations
spk_0
and so you'll see that we have a couple of tutorials and talks that are dealing with that and starting those conversations it's too early to have any conclusions yet but we're having those conversations and that's going to be a big deal
spk_0
yeah and finally Kyle aside from these kind of questions about what the web will look like in five 10 years when you look ahead what do you say as far as where JavaScript is going and where the community is going
spk_0
the community has never been as strong as it is now and I anticipate that that will continue to grow and deepen and strengthen that is a great thing and for someone like myself who I consider myself an evangelist of this open web technology and community
spk_0
and I try to use every platform that I have to promote the connections and bonds between each other as we build I'm glad for that and I'm amazed at how good we're doing and I think we've we've got plenty of challenges there's no question there's a lot of structural problems of bias and in both gender and race and other lines like that we've got a lot of work still to do there I'm glad that we've made that progress so far and I hope we continue with that
spk_0
I think JavaScript as a technology has a bright future I continue to be very bullish in my outlook on JavaScript I think it has a bright future some people are predicting that JavaScript will diminish relatively because of these other things like for example web assembly I think it's only going to put JavaScript more at the forefront in the same way that JavaScript running on the server didn't mean that JavaScript in the browser
spk_0
it's just a matter of course it's a matter of course it's a matter of the same thing because now there's more JavaScript and more places and now we see JavaScript in light bulbs and robots and refrigerators and TVs and everything else if that's only going to continue so again I'm very pro on JavaScript and on its future and I think it's important the developers continue to see the benefit of learning that language learning how the language works and that's my influence so the community is through the education around the world
spk_0
and the language itself and not just how to do something with a framework but the language itself is kind of facing a little bit of an identity crisis because the language itself has been dealing with the same this is just I feel like a broken record but it's been dealing with that strain to grow bigger and better capabilities and we have been servicing that pressure by adding and by we I mean Tc39
spk_0
and the guiding body behind the language has been responding to those demands and those requests from the broader community but there are in some respects sort of pulling JavaScript in different directions there's the JavaScript that is I would say more classically oriented around an authoring environment meaning we're creating features that are designed for JavaScript developers to actually type out themselves and there are a number of amazing improvements that have happened to us
spk_0
in the last number several years ES6 and beyond you know that are in service of that but there are also many other features that are being added to JavaScript which you know from my perspective looking at I can't imagine any developer actually using that feature and so you want like for example proxies I
spk_0
the concept of a proxy is incredibly important in a language and I'm glad it's there for metaprogramming and other reasons I cannot I literally cannot imagine any end user developer making widespread usage of that feature why it then is that feature in the language well it's there because JavaScript has another constituency besides just the end developer and that's the developer who wants to target JavaScript from some other environment they need features
spk_0
to express things that are more natively expressed in other languages for example and so we see this pulling apart of the language in these different directions things being added which serve very different
spk_0
constituencies now some people say well that's fine that's great the end user doesn't need to learn all of that other stuff that's true but the bigger the surface area you create the harder a path you make it for people to figure out what to learn and that that creates even more profound need for the language
spk_0
for people to focus on education around the web and around JavaScript specifically and so I continue to see myself in an important role there I think as JavaScript keeps getting pulled in all these directions it's going to be good job security for those of us who who educate about JavaScript
spk_0
and Kyle if our listeners want to find out more about you and your activities where should they go two places that are the best to find me at first of them I'm getify GTI FY basically everywhere but the two best places to find me are either on my GitHub account which is getify or on my Twitter account which is also getify so I'm working a lot in JavaScript I continue to be in that and you can come find out what I'm doing it either of those places
spk_0
great well Kyle Simpson thank you very much for joining us this been an honor thanks for chatting it was great speaking with Kyle Simpson and now we're going to bring on another program chair for the fluent conference camea ever she is the chief experience officer at speed curve where she helps companies understand how visitors use their websites she focuses on the intersection between web performance user experience and business metrics she's also the author of the O'Reilly book time is money the business value of web performance and she co curates WPO stats a collection of
spk_0
performance case studies will have links to WPO stats and the Tammy's book and the show notes that accompany this episode hi Tammy he did well let's start with this you've recently written an article for the O'Reilly site titled building for the modern web is really really hard so what would you say is the biggest pain point currently facing those who are designing for the modern web yeah and you know in the title I really felt I had to put that second really
spk_0
there makes that one yeah it is really really hard like you know as I mentioned in the in the piece you know I started working on the web in the mid 90s when you know your page had some copy of maybe an image or two and some simple HTML and I was it so you know the today the web is just so mind
spk_0
the bogglingly complex like an individual web page for megabytes and size contains hundreds of assets it's you know relies on a lot of programming languages and developers and designers are somehow magically expected to take all of these assets all of these scripts and somehow make them
spk_0
automatically perform reliably and consistently on everything from a smartphone over a 2G connection to somebody who's got like blazingly fast internet on their on their desktop computer so it's that to me that's the really big challenge that the web has just become so complex and the user base and the types of devices and and bandwidths that people are are experiencing are so incredibly diverse as well and diversity is great
spk_0
and we welcome it but it's you know it presents a lot of challenges as well there's no longer that kind of like one size fits all because you knew that everybody was using the same crappy 14 one modem on a terrible desktop computer you know but at least there's a consistency to what you knew you were you were you roughly knew you were building for a back in the day
spk_0
well can you talk about some new any new technologies or tools that are kind of creating a buzz in the community now the real things when we talk about I'm absolutely we we care about the three pillars of performance and we we call them we label them as performance meaning web speed accessibility and security and there's also much better other pieces as well to that like availability and scalability and that sort of thing but but for purposes we're talking generally about like speed accessibility and and making
spk_0
the web safe for people and so the great thing is that I mean for the space that I come from is all about how do we measure how people experience the web and then how do we correlate those measurements to user behaviors and so the really great thing is that there are more and more
spk_0
tools available that let you actually do this so on the performance side on the accessibility side on the security side so what's exciting to me is not necessarily that these tools are
spk_0
are new is that the fact that they're being more and more broadly adopted by by companies so for example on the performance as as speed side we have more and more companies a lot of people have been using synthetic monitoring tools for ages like web page test isn't the most famous one web page test
spk_0
dot work that the people can use to test their pages over simulated bandwidths and browsers and things like that and that's awesome but now we also
spk_0
really user monitoring which lets you actually see how your users behave in the real world and actually measure that and track that over time and correlate page speed to
spk_0
to user engagement so you can see okay well by pages get this much slower bounce rate drops off or or sorry bounce rate increases actually or revenue drops
spk_0
off so it's it's really great to see these tools being more and more widely used on the accessibility side there's so many great accessibility tools I don't even want to name any for risk of leaving anything out but if people are
spk_0
interested in looking at just all the different accessibility evaluation tools that are available that will actually look at your pages and tell you how they
spk_0
work you can just google w3 web accessibility tools and there's a great list there that's curated by the folks at w3 and continue on
spk_0
regarding like how users experienced the web I know you've written about this in the past can you talk a little bit more about the psychology of what users expect from websites and you know
spk_0
especially anything that might not be commonly known and how that plays into what developers and designers and UX folks need to do.
spk_0
Yeah it's it's a really good question and before kind of getting into the the question of what are some interesting
spk_0
what are some interesting things that people might not know about how users use the web I always want to start with a
spk_0
caveat that people wish that there was an every man or an every woman that they were designing for and I kind of
spk_0
alluded to that earlier and the first thing I always want people to know is that you know unfortunately there isn't there's no there's no single
spk_0
person that we're building for and this is a great thing that kind of modern measurement tools let us do is actually measure
spk_0
real user experiences and see that breadth of user experiences so realizing there's no kind of single psychology to how people
spk_0
use the web even amongst an individual because you know how I use the web when I'm super relaxed and just hanging out of my
spk_0
office and you know I've got all the time in the world versus how I use the web when I've got you know kind of
spk_0
spotty 3G because I'm traveling and I'm using it on my phone and I'm kind of stressing out because my flight's been
spk_0
canceled and they do reschedule you know there's there's a very different use cases and very different
spk_0
psychology is just within one individual so having said that the great thing about performance tools as we have it
spk_0
today like the real user monitoring tools that we have is they let you at least gather all of this
spk_0
real user data and put it into buckets and cohorts so that you can at least understand kind of large group
spk_0
behavior and what are kind of trends in user behavior so what a really interesting example of this is a study
spk_0
that I worked on a few years ago where we I took three cohorts of traffic and introduce artificial
spk_0
HTML delays into two of the cohorts and so what that meant was that for one group we slowed down
spk_0
HTML by 500 milliseconds for another group we slowed it down by a second and for the third group we
spk_0
just we optimize we gave them kind of an optimal user experience like a fully optimized in the
spk_0
sense that you know images were compressed and and and browser caching was was was optimal that
spk_0
sort of thing and what was really interesting was that predictably you know we kind of hypothesize
spk_0
that over the the 12 weeks that we that we did this artificial throttling their artificial delay
spk_0
I should say we predicted that the returning visitor retention would be poor for the sites that
spk_0
had the delay and that was that played out the group that experienced a one second delay was
spk_0
had a much worse retention rate than the optimal group and the group of the 500 millisecond delay
spk_0
had a worse retention rate what was really interesting though was that when we stopped the study
spk_0
they stopped the research at 12 weeks and we served all three cohorts the same optimal experience
spk_0
we actually continued to track their behavior for six more weeks and what was really interesting was
spk_0
that the six weeks after we we we stopped the artificial delays the slower traffic the people who
spk_0
had experienced the delays continue to have a lower retention rate so even though they were getting
spk_0
the same experience as the faster groups there was that kind of reluctance to return and so the
spk_0
the kind of takeaway from that was that yes even if you make your pages faster again that negative
spk_0
user experience that lasted for 12 experience had kind of an ongoing echo effect on people's future
spk_0
behavior so I thought that was really really interesting and I would love to see more research in that
spk_0
area because I don't think it's been studied enough well I want to come back and do more on performance
spk_0
in just a few minutes but first I thought let's look ahead to fluent and I asked um Kyle this question
spk_0
too but I wanted to find out if there are certain fluent presentations that you're particularly
spk_0
looking forward to or excited about oh yeah so many so many so I talked earlier about accessibility
spk_0
insecurity so I mean the whole the entire all the tracks are amazing as so I just the fact that
spk_0
I'm mentioning a few names here I'm excited about all the talks and it was actually really really
spk_0
hard to to have to turn down some of them Sarah Federman is going to be talking about techniques
spk_0
for making accessibility priority in your organization so I think that's a really really useful talk
spk_0
for people who might be kind of fighting a one person fight to make accessibility an issue for
spk_0
everyone Nicholas Steenhout will be aligning an accessibility testing workflow that you can
spk_0
actually incorporate into your day-to-day into your day-to-day work and Julianne Gomez is going to
spk_0
have a great talk where she's going to be diversifying WCAG standards so it's a really great mix of
spk_0
with each talk at a high level inspirational big picture thinking with very hands-on takeaways
spk_0
that you can get from those talks um on this security track any law is going to be talking about how
spk_0
truly I manage vulnerabilities and providing a really great case study there and I love case
spk_0
studies so I really love it when people come to us from um organizations big and small and tell us
spk_0
how they actually made things work in the real world Michael Swinton will be talking about
spk_0
the cryptographic ecosystem and as somebody who is less knowledgeable about security I'm really
spk_0
excited about that because it's it's an area that I want to learn more about um and then kind of
spk_0
getting back to performance uh again lots of great talks Max Milano Furtman is going to be talking
spk_0
about hacking web performance and Max is always a great speaker his talks are really well attended
spk_0
and I always learned a ton from them even though I've been working in this space for about a decade
spk_0
Katie Siler Miller from Etsy we'll be sharing a case study about how they fixed mobile performance
spk_0
issues Mark Zayman from SpeedCur will be talking about how to identify the performance metrics that
spk_0
are actually most relevant to understanding user experience because there are dozens of performance
spk_0
metrics out there and one of the common questions that gets asked is a will you know if they're
spk_0
80 different metrics which are the ones that I should actually focus on and Nick Jensma and Charlie
spk_0
of Azak from Akamai are going to be talking about how to identify third parties that are that are
spk_0
hurting pages and that's kind of perennial topic third party performance is a really big issue
spk_0
will continue to be a really big issue so I'm really looking forward to that talk as well
spk_0
Back to the topic of performance you've given a presentation in the past titled performance is about
spk_0
people not metrics and as you get your point out in your book time as money speed really does affect
spk_0
the bottom line kind of metrics right yeah I have yet to work with a company that wasn't able to
spk_0
correlate the performance of their site or app with some kind of business metric so you know so
spk_0
so I always you know if people people kind of try the obvious ones like let's correlate a low time
spk_0
with conversions and maybe they don't see any movement in those metrics they make pages faster
spk_0
but they don't see any changing conversions then I kind of point them towards will do how about
spk_0
correlating start render with conversions or how about correlating performance with bounce rate
spk_0
or sorry low time with bounce rate if you look hard enough you will find a business metric that
spk_0
matters for your pages and so that can vary from conversion rate bounce rate customer retention
spk_0
card size you name it you know user engagement or time so yeah there's so many great case studies
spk_0
if you're if people are actually looking I mean thank you for mentioning my book I really appreciate it
spk_0
but if people are looking for kind of a living repository of great case studies that they can
spk_0
find where that are tagged with all the different business metrics that people might care about
spk_0
also help curate with Tim Cadlev a site called wpo stats.com and it's just a really simple
spk_0
interface for just kind of looking for for case studies for every again from out in the real world
spk_0
case studies and research that talk about all these things but when you say it's about people
spk_0
not metrics what are you getting out there what am I getting asked really good
spk_0
so I think what people tend to get married to their own metrics so and and it's really easy to get
spk_0
caught up in the metrics that say your service providers tell you you need to care about so
spk_0
that's how you oh you need to care about fully full load time but actually the full load time
spk_0
of your page might not actually matter in terms of user experience so the example of this just
spk_0
to get specific is Amazon so Amazon's pages are huge they're you know three or four megs they take
spk_0
fully fully load size 20 seconds but nobody thinks that Amazon's pages are big and slow because
spk_0
when you go to any page on the Amazon site typically you start to see meaningful content in
spk_0
under two seconds page of at least you know what you see above the world has mostly rendered in
spk_0
in that in that under two second sort of range and it feels fast to you so if you're just focused
spk_0
on full load time but you're not focused on user experience and what the user actually sees
spk_0
then you're focusing on the wrong metric or if you're focusing on page size or page complexity
spk_0
there are other reasons to care about page size for example you know if you're serving pages
spk_0
to mobile and you're kind of forcing your mobile users to accept these four meg pages and it's
spk_0
just killing you know their plans the data plans then obviously that's a reason to care about it but
spk_0
from a user experience metric just a pure user perceived performance perspective then pay size
spk_0
doesn't matter so what we really want people to care about are if they care about user experience
spk_0
are finding the right metrics that actually matter and you know what I push for really really
spk_0
hard is for people to experiment with custom metrics via the the w3c user timings back which are
spk_0
metrics you can actually wrap around you it marks the measures you can wrap around key elements on
spk_0
your page that your users probably care about that correlate to to to kind of their ability to
spk_0
engage with the page so it could be title of an article if it's a media site or it could be a
spk_0
hero image or a product image or whatever the main elements are on your page and you can actually
spk_0
measure those and see I see how quickly those are rendering if you're using any kind of synthetic
spk_0
or or run tools that support them so it's so again it's kind of keeping your eye on the prize
spk_0
the prize is happy engage users who are actually able to do the things that they want to do on
spk_0
your site as quickly as possible okay so now tell me I'm just going to ask you to look ahead what do
spk_0
you think we might be talking about as a fluent conference save three or four years down the line
spk_0
from where I sit I'm not so much thinking of new trends so much as I'm thinking of just current
spk_0
threads becoming more entrenched and so what I mean by that is just as a for instance you know
spk_0
when performance the whole idea of web performance meaning meaning speed kind of came up in
spk_0
in people's consciousness about 10 years ago it was a niche topic and there were some people who
spk_0
thought it was a bit trendy to care about page speed and now of course 10 years later we see that
spk_0
actually it's not it's not a trend it's absolutely fundamental and and and we have conferences
spk_0
that are actually completely about web performance and which is great and so we see and we're seeing
spk_0
the same thing for accessibility now for example and security so I think that it's just that what I
spk_0
would like to see happen in in the next three or four years is this idea becoming more entrenched
spk_0
in the consciousness of not just developers and designers but much higher up in the organization
spk_0
that you can't call your site fully performant and user friendly until you've actually nailed
spk_0
all of these elements of performance so it's not just available because people have always
spk_0
cared about available availability from the beginning of the web but also making it fast making it
spk_0
secure making it accessible to as many people as possible and recognizing the portions of users
spk_0
who have not gotten great user experiences and recognizing that's actually quite a large cohort
spk_0
of the public you know anywhere between 20 and 35% depending on how you think of it so my hope is
spk_0
that in three or four years we're seeing just people coming to fluent with better and better
spk_0
case studies that show how performance accessibility security became entrenched in their
spk_0
organizations and and actually help move the needle on on the business side of things well Tammy
spk_0
this has been great if our listeners want to find out more about you and your activities where can
spk_0
they go well on twitter at tameverts.com and I work for speed curves so I write on the speed curve
spk_0
blog which is just speed curve slash blog and yeah and I'll be of course I'll be at fluent so you
spk_0
can find me at fluent I hope to see as many people as possible there and I'll be roaming the halls and
spk_0
then and yeah I love having those hallway conversations up fluent. Great Tammy Errits thank you very
spk_0
much for joining us. Thanks Jeff. And thank you all for listening once again the O'Reilly
spk_0
Fluent Conference will be held June 11th through 14th in San Jose California for more information or
spk_0
to register go to O'Reilly.com slash conferences to access the books written by our guests including
spk_0
Kyle Simpsons you don't know JS series of books and Tammy Errits book Time is Money the business
spk_0
value of web performance go to Safari. O'Reilly's technology and business learning platform at
spk_0
safaribooksonline.com and we'll have links to these specific items as well as a few other things we
spk_0
talked about during this podcast in the show notes of the company this episode for the O'Reilly programming
spk_0
podcast I'm Jeff Blime.