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.