All language subtitles for 1-the-state-of-front-end-frameworks

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian Download
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: WEBVTT 1 00:00:00.160 --> 00:00:03.950 We want fast websites because, well, that's a good developer experience. 2 00:00:03.950 --> 00:00:08.350 And this actually has been a problem for almost a decade. 3 00:00:08.350 --> 00:00:15.166 And it has been a problem for so long that Google has spent huge amounts of time and 4 00:00:15.166 --> 00:00:20.764 effort on building what Google calls either the Core Web Vitals or 5 00:00:20.764 --> 00:00:24.050 they call it the PageSpeed Insights. 6 00:00:24.050 --> 00:00:27.261 So there's two parts in there, there's Core Web Vitals and there's Page Insights. 7 00:00:27.261 --> 00:00:31.992 Core Web Vitals is actual data collected by Chrome when you as a user 8 00:00:31.992 --> 00:00:34.790 visit a particular website on Chrome. 9 00:00:34.790 --> 00:00:37.380 And so that's actual field data. 10 00:00:37.380 --> 00:00:42.203 Page Insights is a laboratory test which tries to predict what your actual 11 00:00:42.203 --> 00:00:46.930 Core Web Vitals vitals will be, so those are two separate things. 12 00:00:46.930 --> 00:00:49.466 So when most people talk about Page Insights, 13 00:00:49.466 --> 00:00:53.705 they are actually talking about the in-lab kind of simulated environment. 14 00:00:53.705 --> 00:00:59.239 Which, usually, is a predictor of Core Web Vitals but it doesn't actually have to be. 15 00:00:59.239 --> 00:01:02.996 And so the thing you want, is you wanna have a good score, 16 00:01:02.996 --> 00:01:04.812 a good performance score. 17 00:01:04.812 --> 00:01:07.336 So this shows you the Core Web Vitals numbers on the top, right? 18 00:01:07.336 --> 00:01:09.125 This is how it is. 19 00:01:09.125 --> 00:01:12.412 And then on the bottom, it's gonna run it in the lab and 20 00:01:12.412 --> 00:01:16.482 try to show you what the predicted numbers should be. 21 00:01:16.482 --> 00:01:20.718 And the thing that Google cares about, which I think are good numbers is, 22 00:01:20.718 --> 00:01:23.900 how long does it take you to paint the screen? 23 00:01:23.900 --> 00:01:26.160 How long before you can interact with the system? 24 00:01:26.160 --> 00:01:30.089 Are there any kind of shifts, meaning that you render one thing, and 25 00:01:30.089 --> 00:01:33.152 then an image shows up and the whole thing moves over? 26 00:01:33.152 --> 00:01:34.536 And a few other things. 27 00:01:34.536 --> 00:01:38.351 And what I find interesting is that there's this calculator in here, and 28 00:01:38.351 --> 00:01:42.551 you can actually see how this calculator influences your performance, right? 29 00:01:42.551 --> 00:01:47.557 So how sensitive is the system to different parts in it? 30 00:01:47.557 --> 00:01:50.864 And the thing that is super sensitive is total blocking time, 31 00:01:50.864 --> 00:01:52.720 which kinda makes sense, right? 32 00:01:52.720 --> 00:01:56.839 If you navigate to a site and JavaScript is running, then as a user, 33 00:01:56.839 --> 00:01:59.170 you can't interact with it, right? 34 00:01:59.170 --> 00:02:04.148 So total blocking time is the biggest block of JavaScript that didn't allow 35 00:02:04.148 --> 00:02:06.230 the user to do an interaction. 36 00:02:06.230 --> 00:02:10.326 So you could take ten seconds to boot up, so to speak, but if you break it up 37 00:02:10.326 --> 00:02:14.905 into one-second chunks, then your total blocking time will only be one second. 38 00:02:14.905 --> 00:02:20.246 And a time to interactive is basically a number that says, 39 00:02:20.246 --> 00:02:24.935 how long does it take before a user can do an action? 40 00:02:24.935 --> 00:02:26.745 And if you think about it, it also makes sense, right? 41 00:02:26.745 --> 00:02:31.530 You navigate to a page, and you want to be able to go and interact with it, right? 42 00:02:31.530 --> 00:02:35.887 The reason I'm going to a page is because somebody sent me a link to a cool shoe and 43 00:02:35.887 --> 00:02:37.590 I'm gonna go and check it out. 44 00:02:37.590 --> 00:02:39.430 I'm like, I love this shoe, let me add it to the shopping cart. 45 00:02:39.430 --> 00:02:42.790 And I'm like, I can't add it, that button does not work, right? 46 00:02:42.790 --> 00:02:46.215 And at some point, you're like, you know what, I really don't need that shoe, and 47 00:02:46.215 --> 00:02:47.550 you just leave, right? 48 00:02:47.550 --> 00:02:50.629 And so this is the reason why performance matters. 49 00:02:51.670 --> 00:02:54.970 And so it turns out, getting a good score on a real website, 50 00:02:54.970 --> 00:02:59.524 what I mean by a real website is a website that has Google Analytics, has HubSpot, 51 00:02:59.524 --> 00:03:03.290 has all of the third party code in addition to your first party code. 52 00:03:03.290 --> 00:03:07.310 Getting a good number like this is extremely difficult. 53 00:03:07.310 --> 00:03:11.360 And it really comes down to the amount of JavaScript that is being shipped to 54 00:03:11.360 --> 00:03:12.077 the client. 55 00:03:12.077 --> 00:03:14.561 So first of all, does it actually matter, is this and 56 00:03:14.561 --> 00:03:16.228 actually problem we're solving? 57 00:03:16.228 --> 00:03:19.288 And so Google has collected, on their web dev website, 58 00:03:19.288 --> 00:03:23.197 they've basically collected all kinds of statistics that is trying to 59 00:03:23.197 --> 00:03:26.340 convince the world that, look, this matters, right? 60 00:03:26.340 --> 00:03:30.940 There are companies that tried to improve their performance. 61 00:03:30.940 --> 00:03:33.880 And in each case, basically, it's positively correlated, 62 00:03:33.880 --> 00:03:36.541 meaning the faster you become, the more money you make, 63 00:03:36.541 --> 00:03:39.923 the better the conversions are, or whatever thing that you care about, 64 00:03:39.923 --> 00:03:43.710 whether it's sign up conversion, sales, user retention, doesn't matter. 65 00:03:43.710 --> 00:03:48.300 Whatever thing you care about, gets improved if your site is faster. 66 00:03:48.300 --> 00:03:49.510 And that makes total sense, right? 67 00:03:49.510 --> 00:03:52.176 You just want to have a nice, fun, website, 68 00:03:52.176 --> 00:03:55.150 good experience to kinda work with. 69 00:03:55.150 --> 00:03:59.270 So I think there's a huge amount of data that actually says, this matters. 70 00:03:59.270 --> 00:04:02.428 And so you would think, since this matters, 71 00:04:02.428 --> 00:04:05.179 that companies would try to get there. 72 00:04:05.179 --> 00:04:07.450 But it turns out it's not so easy. 73 00:04:07.450 --> 00:04:10.960 And what I mean by that is, this is a graph from HTTP Archive. 74 00:04:10.960 --> 00:04:14.728 And it basically shows the amount of JavaScript being shipped 75 00:04:14.728 --> 00:04:16.980 to the browser over time. 76 00:04:16.980 --> 00:04:19.904 And what you can see here is that in 2012, or so, 77 00:04:19.904 --> 00:04:23.630 we started with relatively little amount of JavaScript. 78 00:04:23.630 --> 00:04:27.990 And there's essentially just a progression that keeps going up, up, up, up up, right? 79 00:04:29.770 --> 00:04:33.270 And this progression doesn't look like it's gonna stop. 80 00:04:33.270 --> 00:04:36.630 And so you say, well, what's going on here? 81 00:04:36.630 --> 00:04:39.730 Are we just getting worse or something like that, right? 82 00:04:39.730 --> 00:04:43.407 But if you think about it, the sites today versus sites ten years ago, 83 00:04:43.407 --> 00:04:46.397 the site today is much nicer, a lot more interactivity, 84 00:04:46.397 --> 00:04:49.070 a lot more things I can do over there, right? 85 00:04:49.070 --> 00:04:52.850 So it's not like we're just getting worse at not shaping JavaScript, but 86 00:04:52.850 --> 00:04:55.860 JavaScript has a purpose, it's doing something useful. 87 00:04:55.860 --> 00:05:00.131 It's giving us a better user experience that the users want, but 88 00:05:00.131 --> 00:05:03.450 it's coming at a cost of startup performance. 89 00:05:03.450 --> 00:05:05.150 Once the website is up and running, 90 00:05:05.150 --> 00:05:08.390 usually nobody's complaining about the performance of the site. 91 00:05:08.390 --> 00:05:12.050 It's the getting it up and running, the boot up process, so to speak, 92 00:05:12.050 --> 00:05:13.150 that is the problem. 93 00:05:14.180 --> 00:05:17.409 And so my prediction here is, this trend is just gonna continue. 94 00:05:17.409 --> 00:05:21.244 We're not gonna stop in terms of the amount of JavaScript we're gonna ship to 95 00:05:21.244 --> 00:05:22.400 the client. 96 00:05:22.400 --> 00:05:25.075 And part of the reason is that it just becomes so 97 00:05:25.075 --> 00:05:28.960 easy to just type npm install and add a particular thing. 98 00:05:28.960 --> 00:05:30.324 But if you think about it, 99 00:05:30.324 --> 00:05:33.673 we're in this world where whatever your problem happens to be, 100 00:05:33.673 --> 00:05:37.829 whether your problem is, I wanna add animation, or I wanna add localization, 101 00:05:37.829 --> 00:05:42.530 or internationalization, or analytics, or whatever you wanna add to the website. 102 00:05:42.530 --> 00:05:45.650 There is a solution out there in NPM somewhere, right? 103 00:05:45.650 --> 00:05:49.509 The problem is, all of these solutions will just keep adding to the amount of 104 00:05:49.509 --> 00:05:51.090 JavaScript you have, right? 105 00:05:51.090 --> 00:05:54.858 And all these solutions just assume that they should be the first 106 00:05:54.858 --> 00:05:59.480 ones to get executed on boot up of the navigation of the website, right? 107 00:05:59.480 --> 00:06:03.602 So you come to a website and immediately all of your analytics code, 108 00:06:03.602 --> 00:06:07.942 all the animations code, everything is coming up and initializing and 109 00:06:07.942 --> 00:06:12.500 booting up, and this basically creates the problem, right? 110 00:06:12.500 --> 00:06:14.110 So, what can we do about it? 111 00:06:14.110 --> 00:06:17.807 Well, right, so this is just kind of reiterating the point that 112 00:06:17.807 --> 00:06:21.440 this trend is gonna continue, we're not gonna stop, right? 113 00:06:21.440 --> 00:06:25.550 The website of the future will have even more JavaScript, right? 114 00:06:25.550 --> 00:06:28.620 And this isn't about going back in time and saying, hey, 115 00:06:28.620 --> 00:06:31.637 let's just go build the websites we built ten years ago. 116 00:06:31.637 --> 00:06:33.824 First of all, the developer experience sucked ten years ago, 117 00:06:33.824 --> 00:06:35.040 nobody wants to do that. 118 00:06:35.040 --> 00:06:38.260 And second of all, the user experience also sucked, right? 119 00:06:38.260 --> 00:06:42.070 It wasn't as nice of a website ten years ago as they are today. 120 00:06:42.070 --> 00:06:43.402 So nobody wants to go back, but 121 00:06:43.402 --> 00:06:46.800 we do need to do something with the amount of JavaScript that we're shipping. 122 00:06:48.710 --> 00:06:52.101 Okay, now, to kind of point out just how much of a problem that is, 123 00:06:52.101 --> 00:06:55.590 we built this site called Performance Insights. 124 00:06:55.590 --> 00:06:58.530 And what we do on this site is pretty straightforward. 125 00:06:58.530 --> 00:07:01.169 Take your website, you type in your URL, and 126 00:07:01.169 --> 00:07:06.042 it runs it through Google PageSpeed score, right, and it gives you back a number. 127 00:07:06.042 --> 00:07:10.323 So in this particular case, it gave you a number of 36. 128 00:07:10.323 --> 00:07:13.916 And so what we're saying is, by default, this website that you built is just 129 00:07:13.916 --> 00:07:16.850 the same number that Google PageSpeed gives you. 130 00:07:16.850 --> 00:07:19.330 So then we do is, we run it through image optimization, right? 131 00:07:19.330 --> 00:07:21.842 Everybody says, please use the latest and greatest images, 132 00:07:21.842 --> 00:07:23.640 make sure they're correctly sized, etc. 133 00:07:23.640 --> 00:07:26.239 So we optimize the images on your website and 134 00:07:26.239 --> 00:07:29.973 then we feed it back to the PageSpeed score and we get back 77. 135 00:07:29.973 --> 00:07:33.458 Meaning that if this website could have done a better job optimizing, 136 00:07:33.458 --> 00:07:35.620 they could have had a better score. 137 00:07:35.620 --> 00:07:38.310 We do the same thing for CSS, and we get an improvement again. 138 00:07:38.310 --> 00:07:42.610 So this particular website did a bad job of optimizing images and CSS. 139 00:07:42.610 --> 00:07:46.550 And then we optimize JavaScript, which is a euphemism for we delete JavaScript. 140 00:07:47.880 --> 00:07:51.580 And we run it through the website, and, wow, look at that, you get 100th, right? 141 00:07:51.580 --> 00:07:56.164 So even without optimizing images or CSS, just by deleting the JavaScript, 142 00:07:56.164 --> 00:07:58.105 you will get an amazing score. 143 00:07:58.105 --> 00:08:03.025 And then the last bit is what happens if we do all these things together. 144 00:08:03.025 --> 00:08:06.765 Now, this is not a typical e-commerce website. 145 00:08:06.765 --> 00:08:11.095 So, what we did is we did the same exact thing for top 50 e-commerce websites. 146 00:08:11.095 --> 00:08:14.165 This font over here is way too small for you to read, that's not the point. 147 00:08:14.165 --> 00:08:17.488 The point is, these are top 50 e-commerce websites. 148 00:08:17.488 --> 00:08:20.290 And notice the first column, it is all red. 149 00:08:21.400 --> 00:08:23.010 So think about this for a second. 150 00:08:23.010 --> 00:08:27.121 We're talking about top 50 e-commerce websites that clearly can get the best 151 00:08:27.121 --> 00:08:29.237 possible developers that money can buy, 152 00:08:29.237 --> 00:08:32.240 cuz they're the biggest e-commerce websites. 153 00:08:32.240 --> 00:08:37.492 They understand the value that a faster website gets more money. 154 00:08:37.492 --> 00:08:40.393 They're in the business of making money, they're e-commerce website. 155 00:08:40.393 --> 00:08:43.050 And, yet, they're all in the red. 156 00:08:43.050 --> 00:08:45.390 What is going on in here, right? 157 00:08:45.390 --> 00:08:50.305 You have highly motivated people, which have the resources to do it, 158 00:08:50.305 --> 00:08:53.280 and they still can't do it, right? 159 00:08:53.280 --> 00:08:56.640 And so to go around and basically blame the developer, 160 00:08:56.640 --> 00:09:00.010 to say you just didn't hire the best developers. 161 00:09:00.010 --> 00:09:02.970 I'm like, yeah, but this is the top 50 e-commerce websites. 162 00:09:02.970 --> 00:09:07.230 If they can't hire the best developers, then who can, right? 163 00:09:07.230 --> 00:09:09.600 Now, I wanna point out a couple of anomalies here. 164 00:09:09.600 --> 00:09:12.685 Again, the font is way too small for you to read, but this yellow one over here, 165 00:09:12.685 --> 00:09:13.800 that's Amazon. 166 00:09:13.800 --> 00:09:15.470 This yellow one over here is Staples. 167 00:09:16.650 --> 00:09:19.337 There's APMEX, which I've never actually heard of, and 168 00:09:19.337 --> 00:09:21.760 the yellow one over here is actually IKEA. 169 00:09:21.760 --> 00:09:26.696 So there are a few companies out there who are really, really trying hard, right? 170 00:09:26.696 --> 00:09:28.203 And Amazon being one of them. 171 00:09:28.203 --> 00:09:33.480 And, yes, you navigate to Amazon, you'll get your response pretty quickly. 172 00:09:33.480 --> 00:09:35.237 And they fully understand this. 173 00:09:35.237 --> 00:09:39.602 And what's interesting about these companies is that, for example, Amazon, 174 00:09:39.602 --> 00:09:43.388 there's a tweet out there that basically says, at Amazon, we looked 175 00:09:43.388 --> 00:09:47.840 at using React and we realized it's just not fast enough for what we need, right? 176 00:09:47.840 --> 00:09:51.630 And it totally makes sense because server-side rendering on React is a lot 177 00:09:51.630 --> 00:09:55.555 more expensive, and then client-side hydration will negatively impact. 178 00:09:55.555 --> 00:09:58.843 And so if you use something like React, and I'm not picking on React, 179 00:09:58.843 --> 00:10:02.378 the same is true for AngularJS and other technologies out there, as well. 180 00:10:02.378 --> 00:10:06.110 You'll kind of realize that, well, you can't. 181 00:10:06.110 --> 00:10:09.490 And so what Amazon's actually doing is they have, probably, 182 00:10:09.490 --> 00:10:12.955 a PHP script on a backend, good old-fashioned way of doing it. 183 00:10:12.955 --> 00:10:19.890 And they have jQuery in the frontend to kind of add interactivity. 184 00:10:19.890 --> 00:10:22.456 And that's kinda how they get performance, right? 185 00:10:22.456 --> 00:10:26.380 Is that they basically do not do hydration because hydration would be a death. 186 00:10:27.430 --> 00:10:33.101 Now, what this basically shows is that if I take the top 50 e-commerce websites and 187 00:10:33.101 --> 00:10:37.925 I try to optimize images, I will get a very little performance benefit. 188 00:10:37.925 --> 00:10:41.038 And that makes sense because the top 50 e-commerce websites, 189 00:10:41.038 --> 00:10:42.970 they already know what they're doing. 190 00:10:42.970 --> 00:10:46.370 And so, for the most part, they're doing the right thing with optimizing images. 191 00:10:46.370 --> 00:10:51.520 Same thing is true for CSS, there's very little gain to be had optimizing images. 192 00:10:51.520 --> 00:10:55.516 But look at the huge job if we could just figure out how to get rid of 193 00:10:55.516 --> 00:10:56.629 the JavaScript. 194 00:10:56.629 --> 00:11:00.411 And actually this column right here, as you can see, optimized images, 195 00:11:00.411 --> 00:11:02.510 very little changes in this column. 196 00:11:02.510 --> 00:11:05.240 Optimize CSS, very little changes in this column. 197 00:11:05.240 --> 00:11:08.930 Optimize JavaScript, meaning delete the JavaScript, look at that. 198 00:11:08.930 --> 00:11:11.520 All of a sudden everybody's in the yellow or green. 199 00:11:11.520 --> 00:11:15.859 And if you can put all three of these things together, pretty much any website 200 00:11:15.859 --> 00:11:21.080 can get pretty close to 100, can be in the green in terms of startup performance. 201 00:11:21.080 --> 00:11:24.640 But we need to do something about this JavaScript problem, right? 202 00:11:26.990 --> 00:11:29.500 So let's look at existing frameworks. 203 00:11:29.500 --> 00:11:32.824 What I find amusing about existing frameworks is that they all claim 204 00:11:32.824 --> 00:11:35.810 that they're the fastest thing available. 205 00:11:35.810 --> 00:11:41.810 And their claim is basically set around the idea of, we do x really well. 206 00:11:41.810 --> 00:11:46.340 And if you extrapolate x, then you think that x is everything that matters. 207 00:11:47.660 --> 00:11:52.324 And so one of the things I wanted to point out here is, 208 00:11:52.324 --> 00:11:58.800 websites are fast, not because the underlying framework is fast. 209 00:11:58.800 --> 00:12:03.547 Websites are fast because there is very little JavaScript to execute, right? 210 00:12:03.547 --> 00:12:05.638 This has nothing to do with framework, right? 211 00:12:05.638 --> 00:12:10.234 SolidJS has superb benchmarks that show 212 00:12:10.234 --> 00:12:14.430 off how fast it is, and I believe it. 213 00:12:14.430 --> 00:12:16.780 It's probably one of the fastest frameworks out there. 214 00:12:16.780 --> 00:12:20.160 But it's irrelevant, because it's not the thing that is the problem. 215 00:12:20.160 --> 00:12:24.770 The problem is the amount of JavaScript that is downloaded on initial render. 216 00:12:24.770 --> 00:12:25.780 That's the problem, right? 217 00:12:25.780 --> 00:12:31.405 And so the fact that SolidJS optimizes away all of these things, 218 00:12:31.405 --> 00:12:35.400 good for once the website is running. 219 00:12:35.400 --> 00:12:38.050 Doesn't help you with getting the application up and running. 220 00:12:38.050 --> 00:12:43.098 Now what this graph here shows is, as the amount of HTML templating, 221 00:12:43.098 --> 00:12:47.799 jsx, whatever you have, grows or number of components grows, 222 00:12:47.799 --> 00:12:52.065 how does the size, this should be probably in kilobytes, 223 00:12:52.065 --> 00:12:56.820 how does the size of the total amount of bundle grow, right? 224 00:12:56.820 --> 00:12:59.774 And what you can see is that different frameworks have different slopes, and 225 00:12:59.774 --> 00:13:01.420 they have different intercepts, right? 226 00:13:01.420 --> 00:13:07.060 But they all kind of fall into this category of y=mx+b, right? 227 00:13:07.060 --> 00:13:11.530 We have the amount of content we wanna ship to the client. 228 00:13:11.530 --> 00:13:14.972 b is the initial kind of framework size that we have to ship. 229 00:13:14.972 --> 00:13:19.599 And then there's the marginal size, which is how many bytes per each byte that you 230 00:13:19.599 --> 00:13:22.013 kind of type in in form of a templating JSX, 231 00:13:22.013 --> 00:13:24.450 whatever the templating system you have. 232 00:13:26.090 --> 00:13:29.373 And while there are certainly differences between frameworks, 233 00:13:29.373 --> 00:13:32.488 I'm gonna argue that they're pretty much the same, right? 234 00:13:32.488 --> 00:13:35.218 They, for the most part, are about the same, 235 00:13:35.218 --> 00:13:37.750 there isn't really much of a difference. 236 00:13:37.750 --> 00:13:42.261 And so this is this line over here that's blue that's resumable, and 237 00:13:42.261 --> 00:13:46.166 that's supposed to be close to 0 but not negative, [LAUGH]. 238 00:13:46.166 --> 00:13:50.262 And this line basically shows what you want is you want 239 00:13:50.262 --> 00:13:54.640 a system where the amount of JavaScript is flat, right? 240 00:13:54.640 --> 00:13:56.655 You wanna have a system where, yes, 241 00:13:56.655 --> 00:14:01.240 the amount of HTML I send across is the amount of HTML I need to render the page. 242 00:14:01.240 --> 00:14:04.540 But the initial amount of JavaScript should be constant. 243 00:14:04.540 --> 00:14:06.890 And that's not the case in the current world. 244 00:14:06.890 --> 00:14:12.828 In other words, sure, I will go build a simple Hello World, 245 00:14:12.828 --> 00:14:20.390 or a showcase movie app, or showcase store in your favorite technology. 246 00:14:20.390 --> 00:14:25.380 And I'm gonna show you, look, it's 100 out of 100, and that's great. 247 00:14:25.380 --> 00:14:29.144 The problem is, once the real world requirements show up, 248 00:14:29.144 --> 00:14:33.738 once you need users, authentication, settings, preference pages, 249 00:14:33.738 --> 00:14:38.632 analytics and all the other things, that demo app that used to show 100 out 250 00:14:38.632 --> 00:14:43.770 of 100 on Google PageSpeed score is just gonna keep decreasing, right? 251 00:14:43.770 --> 00:14:48.880 Because as the complexity of the app goes up, the thing decreases. 252 00:14:48.880 --> 00:14:54.266 And I find that very almost disingenuous that people show off all these demo apps, 253 00:14:54.266 --> 00:14:58.220 and then show off, look how amazing we can be, right? 254 00:14:58.220 --> 00:15:03.980 And yeah, you can build a demo app in any technology and get good scores. 255 00:15:03.980 --> 00:15:10.190 But once this technology hits real-world complexities, it will just disintegrate. 256 00:15:10.190 --> 00:15:12.160 And that's kind of the point here, 257 00:15:12.160 --> 00:15:15.450 is that what you want is a framework that is 0 of 1, right? 258 00:15:15.450 --> 00:15:20.260 You wanna have a constant cost framework cuz you don't need to have it. 259 00:15:20.260 --> 00:15:24.020 If we do nothing, this train line is gonna continue. 260 00:15:24.020 --> 00:15:27.505 And what we want instead to somehow break this correlation. 261 00:15:27.505 --> 00:15:33.659 We wanna say, can we do something to not having to continue it this particular way? 24264

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.