WEBVTT

1
00:00:03.100 --> 00:00:07.410
<00:00:03.100>Hello <00:00:03.207>everybody. <00:00:03.315>Uh, <00:00:03.423>welcome <00:00:03.530>to <00:00:03.638>my <00:00:03.746>talk. <00:00:03.853>Get <00:00:03.961>ready <00:00:04.069>to <00:00:04.176>rustle. <00:00:04.284>Uh, <00:00:04.392>if <00:00:04.500>you're,

2
00:00:07.880 --> 00:00:11.700
<00:00:07.880>it's <00:00:08.020>extremely <00:00:08.160>loud, <00:00:08.300>but <00:00:08.440>you <00:00:08.580>can <00:00:08.719>hear <00:00:08.860>me <00:00:09.000>fine, <00:00:09.140>right? <00:00:09.280>Okay.

3
00:00:12.080 --> 00:00:14.980
<00:00:12.080>So <00:00:12.196>if <00:00:12.313>you're <00:00:12.430>wondering <00:00:12.546>what <00:00:12.663>Get <00:00:12.780>Ready <00:00:12.896>to <00:00:13.013>Rustle <00:00:13.129>is <00:00:13.246>supposed <00:00:13.363>to <00:00:13.480>mean,

4
00:00:15.060 --> 00:00:17.180
<00:00:15.060>I <00:00:15.235>don't <00:00:15.410>really <00:00:15.585>have <00:00:15.760>any <00:00:15.935>answers. <00:00:16.110>Uh, <00:00:16.285>for <00:00:16.460>you.

5
00:00:17.300 --> 00:00:22.060
<00:00:17.300>I <00:00:17.400>was <00:00:17.500>picking <00:00:17.600>sort <00:00:17.700>of <00:00:17.800>a <00:00:17.900>random <00:00:18.000>phrase <00:00:18.100>that <00:00:18.200>sort <00:00:18.300>of <00:00:18.400>include <00:00:18.500>the <00:00:18.600>term <00:00:18.700>rust,

6
00:00:22.080 --> 00:00:23.780
<00:00:22.080>and <00:00:22.255>then <00:00:22.430>the <00:00:22.604>idea <00:00:22.779>was <00:00:22.955>to <00:00:23.130>change <00:00:23.305>it <00:00:23.479>later.

7
00:00:23.880 --> 00:00:28.300
<00:00:23.880>But <00:00:23.980>we <00:00:24.080>all <00:00:24.180>know <00:00:24.279>what <00:00:24.380>changing <00:00:24.480>something <00:00:24.580>later <00:00:24.680>means, <00:00:24.779>right? <00:00:24.880>So <00:00:24.980>here <00:00:25.080>we <00:00:25.180>are. <00:00:25.279>Um,

8
00:00:28.480 --> 00:00:33.020
<00:00:28.480>anyway, <00:00:28.587>I <00:00:28.695>hope <00:00:28.803>the <00:00:28.910>talk <00:00:29.018>is <00:00:29.126>gonna <00:00:29.233>make <00:00:29.341>more <00:00:29.449>sense <00:00:29.556>than <00:00:29.664>the <00:00:29.772>title. <00:00:29.880>Uh,

9
00:00:33.160 --> 00:00:35.660
<00:00:33.160>my <00:00:33.360>name <00:00:33.559>is <00:00:33.760>Marco <00:00:33.959>Otter, <00:00:34.160>as <00:00:34.360>in <00:00:34.559>Asset.

10
00:00:35.760 --> 00:00:38.780
<00:00:35.760>I'm <00:00:35.900>the <00:00:36.040>founder <00:00:36.180>of <00:00:36.320>and <00:00:36.460>managing <00:00:36.599>director <00:00:36.739>of <00:00:36.879>Main <00:00:37.019>Meta. <00:00:37.160>Uh,

11
00:00:38.780 --> 00:00:40.660
<00:00:38.780>we <00:00:39.130>are <00:00:39.480>web <00:00:39.830>development <00:00:40.180>consultancy.

12
00:00:42.010 --> 00:00:45.550
<00:00:42.010>We <00:00:42.150>do <00:00:42.290>custom <00:00:42.430>development <00:00:42.570>and <00:00:42.710>also <00:00:42.849>advise <00:00:42.989>and <00:00:43.129>mentor <00:00:43.269>teams, <00:00:43.410>uh,

13
00:00:45.550 --> 00:00:49.350
<00:00:45.550>that <00:00:45.677>do <00:00:45.804>their <00:00:45.931>own <00:00:46.059>development, <00:00:46.186>and <00:00:46.313>we <00:00:46.440>help <00:00:46.568>them <00:00:46.695>to <00:00:46.822>overcome <00:00:46.949>obstacles,

14
00:00:49.350 --> 00:00:53.030
<00:00:49.350>adopt <00:00:49.477>new <00:00:49.604>technologies, <00:00:49.731>uh, <00:00:49.859>ship <00:00:49.986>better <00:00:50.113>our <00:00:50.240>results <00:00:50.368>faster <00:00:50.495>and <00:00:50.622>more <00:00:50.750>reliably.

15
00:00:53.970 --> 00:00:57.070
<00:00:53.970>And <00:00:54.110>last <00:00:54.250>year <00:00:54.390>we <00:00:54.530>made <00:00:54.670>a <00:00:54.810>strategic <00:00:54.949>bet <00:00:55.089>on <00:00:55.230>Rust, <00:00:55.370>right?

16
00:00:57.070 --> 00:01:00.270
<00:00:57.070>Because <00:00:57.197>we <00:00:57.324>love <00:00:57.451>it <00:00:57.579>and <00:00:57.706>we <00:00:57.833>think <00:00:57.960>more <00:00:58.088>people <00:00:58.215>should <00:00:58.342>uses <00:00:58.470>it.

17
00:01:02.290 --> 00:01:04.830
<00:01:02.290>Uh, <00:01:02.417>we <00:01:02.544>think <00:01:02.671>more <00:01:02.799>people <00:01:02.926>should <00:01:03.053>use <00:01:03.180>it <00:01:03.308>in <00:01:03.435>more <00:01:03.562>areas, <00:01:03.690>right?

18
00:01:04.890 --> 00:01:09.390
<00:01:04.890>Our <00:01:04.977>goal <00:01:05.065>is <00:01:05.152>to <00:01:05.239>have <00:01:05.327>teams <00:01:05.415>adopt <00:01:05.502>us <00:01:05.590>so <00:01:05.677>they <00:01:05.765>can <00:01:05.852>benefit <00:01:05.940>from <00:01:06.027>it <00:01:06.115>in <00:01:06.202>their <00:01:06.290>product

19
00:01:09.390 --> 00:01:12.110
<00:01:09.390>development. <00:01:09.545>And <00:01:09.701>we're <00:01:09.856>not <00:01:10.012>the <00:01:10.167>only <00:01:10.323>ones <00:01:10.478>who <00:01:10.634>have <00:01:10.790>us,

20
00:01:12.210 --> 00:01:14.230
<00:01:12.210>as <00:01:12.385>I'm <00:01:12.560>sure <00:01:12.735>a <00:01:12.910>lot <00:01:13.085>of <00:01:13.260>you <00:01:13.435>have <00:01:13.610>heard,

21
00:01:14.260 --> 00:01:18.670
<00:01:14.260>like <00:01:14.367>Rus <00:01:14.475>was <00:01:14.583>voted <00:01:14.690>the <00:01:14.798>most <00:01:14.906>admired <00:01:15.013>language <00:01:15.121>in <00:01:15.229>the <00:01:15.336>2023 <00:01:15.444>Stack <00:01:15.552>Overflow <00:01:15.660>survey.

22
00:01:19.610 --> 00:01:22.550
<00:01:19.610>Uh, <00:01:19.785>and <00:01:19.960>so <00:01:20.135>it <00:01:20.310>was <00:01:20.485>in <00:01:20.660>2022 <00:01:20.835>and <00:01:21.010>in

23
00:01:22.550 --> 00:01:26.110
<00:01:22.550>20 <00:01:22.725>21, <00:01:22.899>20 <00:01:23.075>20 <00:01:23.250>19, <00:01:23.425>18, <00:01:23.600>17, <00:01:23.774>16, <00:01:23.950>right?

24
00:01:26.170 --> 00:01:30.990
<00:01:26.170>So <00:01:26.263>really <00:01:26.356>Rust <00:01:26.450>is <00:01:26.543>drowning <00:01:26.636>in <00:01:26.730>love, <00:01:26.823>and <00:01:26.916>it <00:01:27.010>has <00:01:27.103>been, <00:01:27.196>has <00:01:27.290>been <00:01:27.383>for <00:01:27.476>a <00:01:27.570>while,

25
00:01:30.990 --> 00:01:33.310
<00:01:30.990>right? <00:01:31.223>And <00:01:31.456>the <00:01:31.690>Stake <00:01:31.923>Overflow <00:01:32.156>uses <00:01:32.390>aren't,

26
00:01:33.310 --> 00:01:35.830
<00:01:33.310>we <00:01:33.465>aren't <00:01:33.621>even <00:01:33.776>the <00:01:33.932>only <00:01:34.087>ones <00:01:34.243>who <00:01:34.398>love <00:01:34.554>Rust, <00:01:34.710>right?

27
00:01:35.860 --> 00:01:39.990
<00:01:35.860>Like <00:01:35.967>all <00:01:36.075>of <00:01:36.183>the <00:01:36.290>decision <00:01:36.398>makers <00:01:36.506>at <00:01:36.613>the <00:01:36.721>big <00:01:36.829>corporate <00:01:36.936>Slav, <00:01:37.044>rust, <00:01:37.152>no <00:01:37.260>less.

28
00:01:39.990 --> 00:01:43.990
<00:01:39.990>Really <00:01:40.106>like <00:01:40.223>all <00:01:40.340>of <00:01:40.456>the <00:01:40.573>big <00:01:40.690>players <00:01:40.806>in <00:01:40.923>the <00:01:41.040>industry <00:01:41.156>are <00:01:41.273>adopting, <00:01:41.390>uh,

29
00:01:44.100 --> 00:01:48.430
<00:01:44.100>rust <00:01:44.207>in <00:01:44.315>quite <00:01:44.423>significant <00:01:44.530>ways. <00:01:44.638>So <00:01:44.746>a <00:01:44.853>w <00:01:44.961>s <00:01:45.069>is <00:01:45.176>using <00:01:45.284>it, <00:01:45.392>uh, <00:01:45.500>heavily.

30
00:01:48.500 --> 00:01:52.990
<00:01:48.500>There's <00:01:48.627>Google <00:01:48.754>using <00:01:48.881>it <00:01:49.009>and <00:01:49.136>Android, <00:01:49.263>Microsoft <00:01:49.390>uses <00:01:49.518>it. <00:01:49.645>And, <00:01:49.772>uh, <00:01:49.900>windows,

31
00:01:53.180 --> 00:01:57.670
<00:01:53.180>it's <00:01:53.320>in <00:01:53.460>Linux <00:01:53.600>now. <00:01:53.740>Uh, <00:01:53.880>and <00:01:54.020>Rust <00:01:54.160>also <00:01:54.300>flying <00:01:54.440>planes, <00:01:54.580>flies,

32
00:01:57.690 --> 00:01:59.030
<00:01:57.690>planes <00:01:58.092>and <00:01:58.494>satellite, <00:01:58.896>right?

33
00:01:59.450 --> 00:02:03.390
<00:01:59.450>So <00:01:59.605>essentially <00:01:59.761>Rust <00:01:59.916>is <00:02:00.072>replacing <00:02:00.227>c <00:02:00.383>c <00:02:00.538>plus <00:02:00.694>plus <00:02:00.850>everywhere.

34
00:02:03.390 --> 00:02:06.470
<00:02:03.390>Those <00:02:03.565>were <00:02:03.740>used <00:02:03.915>before, <00:02:04.090>right? <00:02:04.265>Systems <00:02:04.440>programming, <00:02:04.615>operating <00:02:04.790>systems,

35
00:02:06.610 --> 00:02:10.610
<00:02:06.610>and <00:02:06.717>so <00:02:06.825>on. <00:02:06.933>I <00:02:07.040>want <00:02:07.148>to <00:02:07.256>look <00:02:07.363>at <00:02:07.471>a <00:02:07.579>slightly <00:02:07.686>different <00:02:07.794>area <00:02:07.902>today <00:02:08.009>though,

36
00:02:10.610 --> 00:02:11.850
<00:02:10.610>which <00:02:10.982>is <00:02:11.354>web <00:02:11.726>backends.

37
00:02:12.270 --> 00:02:16.410
<00:02:12.270>And <00:02:12.370>that's <00:02:12.470>not <00:02:12.570>necessarily <00:02:12.670>an <00:02:12.770>area <00:02:12.870>where <00:02:12.970>anyone <00:02:13.070>was <00:02:13.170>using <00:02:13.270>c <00:02:13.370>c <00:02:13.470>plus <00:02:13.570>plus <00:02:13.670>before,

38
00:02:16.410 --> 00:02:20.130
<00:02:16.410>right? <00:02:16.549>So <00:02:16.690>Rust <00:02:16.829>might <00:02:16.970>not <00:02:17.109>be <00:02:17.250>an <00:02:17.390>obvious <00:02:17.530>choice <00:02:17.670>there, <00:02:17.810>uh,

39
00:02:20.230 --> 00:02:23.610
<00:02:20.230>yet <00:02:20.346>we <00:02:20.463>think <00:02:20.579>Rust <00:02:20.696>has <00:02:20.813>a <00:02:20.929>lot <00:02:21.046>of <00:02:21.163>potential <00:02:21.280>in <00:02:21.396>that <00:02:21.513>area, <00:02:21.630>actually,

40
00:02:24.110 --> 00:02:25.770
<00:02:24.110>as <00:02:24.460>it <00:02:24.810>gives <00:02:25.160>team. <00:02:25.510>Um,

41
00:02:25.830 --> 00:02:30.490
<00:02:25.829>it <00:02:25.946>gives <00:02:26.063>as <00:02:26.179>it <00:02:26.296>gives <00:02:26.413>teams <00:02:26.529>building <00:02:26.646>web <00:02:26.763>and <00:02:26.880>cloud <00:02:26.996>app <00:02:27.113>access <00:02:27.230>to

42
00:02:30.490 --> 00:02:31.890
<00:02:30.490>capabilities, <00:02:31.750>uh,

43
00:02:31.890 --> 00:02:35.810
<00:02:31.890>sort <00:02:31.983>of <00:02:32.076>there <00:02:32.170>were <00:02:32.263>previously <00:02:32.356>out <00:02:32.450>of <00:02:32.543>reach <00:02:32.636>and <00:02:32.730>we'll <00:02:32.823>see <00:02:32.916>later <00:02:33.010>what <00:02:33.103>those <00:02:33.196>are <00:02:33.290>in

44
00:02:35.810 --> 00:02:36.510
<00:02:35.810>detail, <00:02:36.440>right?

45
00:02:36.510 --> 00:02:40.930
<00:02:36.510>And <00:02:36.603>while <00:02:36.696>the <00:02:36.790>web <00:02:36.883>and <00:02:36.976>cloud <00:02:37.070>space <00:02:37.163>is <00:02:37.256>a <00:02:37.350>young <00:02:37.443>and <00:02:37.536>evolving <00:02:37.630>area <00:02:37.723>for <00:02:37.816>Rust, <00:02:37.910>uh,

46
00:02:40.930 --> 00:02:44.730
<00:02:40.930>there <00:02:41.037>are <00:02:41.145>quite <00:02:41.253>a <00:02:41.360>few <00:02:41.468>companies <00:02:41.576>that <00:02:41.683>already <00:02:41.791>use <00:02:41.899>Rust <00:02:42.006>in <00:02:42.114>that <00:02:42.222>area, <00:02:42.330>right?

47
00:02:44.730 --> 00:02:48.890
<00:02:44.730>And <00:02:44.885>quite <00:02:45.041>successfully. <00:02:45.196>So, <00:02:45.352>uh, <00:02:45.507>so <00:02:45.663>in <00:02:45.818>the <00:02:45.974>talk <00:02:46.130>today,

48
00:02:48.970 --> 00:02:52.410
<00:02:48.970>I <00:02:49.125>want <00:02:49.281>to <00:02:49.436>talk <00:02:49.592>about <00:02:49.747>the <00:02:49.903>what, <00:02:50.058>the <00:02:50.214>why, <00:02:50.370>the,

49
00:02:52.430 --> 00:02:54.530
<00:02:52.430>the <00:02:52.605>how <00:02:52.780>and <00:02:52.955>where <00:02:53.130>of <00:02:53.305>Rust <00:02:53.480>on <00:02:53.655>the <00:02:53.830>web,

50
00:02:54.550 --> 00:02:58.190
<00:02:54.550>and <00:02:54.666>then <00:02:54.783>finally <00:02:54.900>look <00:02:55.016>at <00:02:55.133>where <00:02:55.250>Rust <00:02:55.366>on <00:02:55.483>the <00:02:55.600>web <00:02:55.716>is <00:02:55.833>going. <00:02:55.950>Uh,

51
00:02:58.250 --> 00:03:03.030
<00:02:58.250>so <00:02:58.350>let's <00:02:58.450>start <00:02:58.550>with <00:02:58.650>a, <00:02:58.750>what, <00:02:58.850>what <00:02:58.950>are <00:02:59.050>we <00:02:59.150>even <00:02:59.250>talking <00:02:59.350>about <00:02:59.450>here? <00:02:59.550>What <00:02:59.650>Isra?

52
00:03:03.030 --> 00:03:04.950
<00:03:03.030>So <00:03:03.205>welcome <00:03:03.380>to <00:03:03.555>the <00:03:03.730>five <00:03:03.905>minute <00:03:04.080>intro <00:03:04.255>to <00:03:04.430>us,

53
00:03:04.950 --> 00:03:06.990
<00:03:04.950>which <00:03:05.149>is <00:03:05.350>actually <00:03:05.549>around <00:03:05.750>five <00:03:05.950>minutes, <00:03:06.149>I <00:03:06.350>think.

54
00:03:07.770 --> 00:03:12.430
<00:03:07.770>So <00:03:07.886>us <00:03:08.003>tagline <00:03:08.120>is <00:03:08.236>a <00:03:08.353>language <00:03:08.470>empowering <00:03:08.586>everyone <00:03:08.703>to <00:03:08.820>build <00:03:08.936>reliable <00:03:09.053>and <00:03:09.170>efficient

55
00:03:12.670 --> 00:03:13.130
software.

56
00:03:13.130 --> 00:03:18.110
<00:03:13.130>And <00:03:13.237>the <00:03:13.345>word <00:03:13.453>reliable <00:03:13.560>and <00:03:13.668>the <00:03:13.776>word <00:03:13.883>empowering <00:03:13.991>is <00:03:14.099>really <00:03:14.206>central <00:03:14.314>here <00:03:14.422>because <00:03:14.530>as

57
00:03:18.150 --> 00:03:22.590
<00:03:18.150>I <00:03:18.257>said <00:03:18.365>before, <00:03:18.473>Rus <00:03:18.580>really <00:03:18.688>empowers <00:03:18.796>sort <00:03:18.903>of <00:03:19.011>parts <00:03:19.119>of <00:03:19.226>the <00:03:19.334>industry <00:03:19.442>to, <00:03:19.550>uh,

58
00:03:22.590 --> 00:03:26.230
<00:03:22.590>sort <00:03:22.706>of <00:03:22.823>achieve <00:03:22.940>reliability <00:03:23.056>and <00:03:23.173>efficiency <00:03:23.290>at <00:03:23.406>levels <00:03:23.523>that <00:03:23.640>were <00:03:23.756>previously <00:03:23.873>out <00:03:23.990>of

59
00:03:26.230 --> 00:03:27.350
<00:03:26.230>reach. <00:03:27.238>Uh,

60
00:03:27.350 --> 00:03:30.470
<00:03:27.350>so <00:03:27.450>let's <00:03:27.549>see <00:03:27.650>what <00:03:27.750>the <00:03:27.850>language <00:03:27.950>looks <00:03:28.049>like <00:03:28.150>and <00:03:28.250>how <00:03:28.350>it <00:03:28.450>keeps <00:03:28.549>that <00:03:28.650>promise. <00:03:28.750>Uh,

61
00:03:30.470 --> 00:03:34.950
<00:03:30.470>first <00:03:30.577>of <00:03:30.685>all, <00:03:30.793>some <00:03:30.900>bad <00:03:31.008>news <00:03:31.116>four <00:03:31.223>spaces, <00:03:31.331>uh, <00:03:31.439>for <00:03:31.546>indentation <00:03:31.654>is <00:03:31.762>the <00:03:31.870>default.

62
00:03:35.050 --> 00:03:38.750
<00:03:35.050>And <00:03:35.177>Rus, <00:03:35.304>I <00:03:35.431>know <00:03:35.559>the <00:03:35.686>correct <00:03:35.813>annotation <00:03:35.940>is <00:03:36.068>two <00:03:36.195>spaces, <00:03:36.322>but, <00:03:36.450>uh,

63
00:03:38.750 --> 00:03:42.070
<00:03:38.750>sort <00:03:38.857>of <00:03:38.965>that's <00:03:39.073>something <00:03:39.180>we <00:03:39.288>have <00:03:39.396>to <00:03:39.503>live <00:03:39.611>with. <00:03:39.719>Everything <00:03:39.826>else <00:03:39.934>is <00:03:40.042>good, <00:03:40.150>Andra.

64
00:03:42.970 --> 00:03:47.630
<00:03:42.970>Uh, <00:03:43.086>so <00:03:43.203>let's <00:03:43.320>start <00:03:43.436>with <00:03:43.553>the <00:03:43.670>basics. <00:03:43.786>Uh, <00:03:43.903>rust <00:03:44.020>is <00:03:44.136>strongly <00:03:44.253>aesthetically <00:03:44.370>typed.

65
00:03:47.630 --> 00:03:51.830
<00:03:47.630>You <00:03:47.730>can <00:03:47.829>either <00:03:47.930>type <00:03:48.030>things <00:03:48.130>explicitly <00:03:48.230>or <00:03:48.329>that <00:03:48.430>rust <00:03:48.530>and <00:03:48.630>fraud <00:03:48.730>types <00:03:48.829>where <00:03:48.930>it <00:03:49.030>can,

66
00:03:54.590 --> 00:03:59.330
<00:03:54.590>um, <00:03:54.717>unlike <00:03:54.844>in <00:03:54.971>many <00:03:55.099>other <00:03:55.226>languages, <00:03:55.353>uh, <00:03:55.480>variables <00:03:55.608>are <00:03:55.735>immutable <00:03:55.862>by <00:03:55.990>default.

67
00:03:59.350 --> 00:04:02.170
<00:03:59.350>So <00:03:59.466>trying <00:03:59.583>to <00:03:59.700>change <00:03:59.816>the <00:03:59.933>variable <00:04:00.049>after <00:04:00.166>it <00:04:00.283>has <00:04:00.400>been <00:04:00.516>assigned <00:04:00.633>to <00:04:00.750>value,

68
00:04:02.240 --> 00:04:06.290
<00:04:02.240>like <00:04:02.356>in <00:04:02.473>this <00:04:02.590>example, <00:04:02.706>results <00:04:02.823>in <00:04:02.940>a <00:04:03.056>compiler <00:04:03.173>error. <00:04:03.290>And <00:04:03.406>by <00:04:03.523>the <00:04:03.640>way,

69
00:04:06.550 --> 00:04:08.970
<00:04:06.550>as <00:04:06.690>you <00:04:06.830>can <00:04:06.970>see, <00:04:07.110>Ru <00:04:07.250>has <00:04:07.390>pretty <00:04:07.530>good <00:04:07.670>error <00:04:07.810>messages, <00:04:07.950>right?

70
00:04:08.970 --> 00:04:12.970
<00:04:08.970>They're <00:04:09.109>typically <00:04:09.250>very <00:04:09.390>well <00:04:09.530>written <00:04:09.670>and <00:04:09.810>almost <00:04:09.950>always <00:04:10.090>sort <00:04:10.230>of, <00:04:10.370>uh,

71
00:04:12.970 --> 00:04:16.090
<00:04:12.970>suggest <00:04:13.086>a <00:04:13.203>way <00:04:13.320>to <00:04:13.436>fix <00:04:13.553>the <00:04:13.670>error <00:04:13.786>that <00:04:13.903>is <00:04:14.020>actually <00:04:14.136>going <00:04:14.253>to <00:04:14.370>work.

72
00:04:17.030 --> 00:04:20.730
<00:04:17.029>So <00:04:17.157>while <00:04:17.284>variables <00:04:17.411>are <00:04:17.539>immutable <00:04:17.666>body <00:04:17.793>fourth <00:04:17.920>as <00:04:18.048>opt-in <00:04:18.175>mutability <00:04:18.302>as <00:04:18.429>well,

73
00:04:20.730 --> 00:04:20.930
right?

74
00:04:20.930 --> 00:04:25.770
<00:04:20.930>This <00:04:21.070>example <00:04:21.209>compiles <00:04:21.350>fine <00:04:21.490>sense <00:04:21.630>X <00:04:21.769>is <00:04:21.910>excl <00:04:22.050>explicitly <00:04:22.190>marked <00:04:22.330>as

75
00:04:25.880 --> 00:04:29.770
<00:04:25.880>mutable <00:04:26.055>with <00:04:26.230>mute. <00:04:26.405>Also, <00:04:26.580>uh, <00:04:26.755>unlike <00:04:26.930>many <00:04:27.105>other <00:04:27.280>languages,

76
00:04:29.770 --> 00:04:33.450
<00:04:29.770>there's <00:04:29.925>no <00:04:30.081>concept <00:04:30.236>of <00:04:30.392>implicit <00:04:30.547>nu <00:04:30.703>ability <00:04:30.858>in <00:04:31.014>rust, <00:04:31.169>right?

77
00:04:33.470 --> 00:04:37.490
<00:04:33.470>The <00:04:33.610>only <00:04:33.750>similar <00:04:33.890>concept <00:04:34.030>is <00:04:34.170>maybe <00:04:34.310>the <00:04:34.450>unito <00:04:34.590>type, <00:04:34.730>which, <00:04:34.870>uh,

78
00:04:37.490 --> 00:04:40.090
<00:04:37.490>which <00:04:37.690>represents <00:04:37.890>the <00:04:38.090>absence <00:04:38.290>of <00:04:38.490>a <00:04:38.690>variable, <00:04:38.890>right?

79
00:04:40.380 --> 00:04:42.770
<00:04:40.380>Since <00:04:40.555>the <00:04:40.730>unito <00:04:40.905>type <00:04:41.080>is <00:04:41.255>a <00:04:41.430>real <00:04:41.605>type <00:04:41.780>though,

80
00:04:43.160 --> 00:04:47.410
<00:04:43.159>assigning <00:04:43.267>it <00:04:43.375>to <00:04:43.483>a <00:04:43.590>variable <00:04:43.698>that's <00:04:43.806>of <00:04:43.913>a <00:04:44.021>different <00:04:44.129>type <00:04:44.236>fat <00:04:44.344>are <00:04:44.452>compile <00:04:44.559>type,

81
00:04:47.410 --> 00:04:50.370
<00:04:47.409>right? <00:04:47.760>Because <00:04:48.109>the, <00:04:48.460>uh, <00:04:48.809>uh,

82
00:04:50.970 --> 00:04:54.410
<00:04:50.970>because <00:04:51.110>the <00:04:51.250>two <00:04:51.390>types <00:04:51.530>are <00:04:51.670>just <00:04:51.810>not, <00:04:51.950>are <00:04:52.090>just <00:04:52.230>not <00:04:52.370>compatible.

83
00:04:54.630 --> 00:04:57.650
<00:04:54.630>And <00:04:54.785>that's <00:04:54.941>different <00:04:55.096>from <00:04:55.252>languages <00:04:55.407>like <00:04:55.563>Java <00:04:55.718>and <00:04:55.874>others, <00:04:56.030>right?

84
00:04:57.650 --> 00:05:02.130
<00:04:57.650>Where <00:04:57.789>any <00:04:57.929>reference <00:04:58.070>type <00:04:58.210>could <00:04:58.349>always <00:04:58.489>implicitly <00:04:58.630>also <00:04:58.770>be <00:04:58.909>narrow, <00:04:59.049>right?

85
00:05:02.130 --> 00:05:03.290
<00:05:02.130>And <00:05:02.338>you <00:05:02.547>only <00:05:02.756>know <00:05:02.965>at <00:05:03.174>runtime,

86
00:05:03.290 --> 00:05:06.370
<00:05:03.290>which <00:05:03.417>one <00:05:03.544>it <00:05:03.671>is <00:05:03.799>Ignite <00:05:03.926>point <00:05:04.053>exceptional <00:05:04.180>where <00:05:04.308>things <00:05:04.435>work <00:05:04.562>fine, <00:05:04.690>right?

87
00:05:06.790 --> 00:05:07.330
<00:05:06.790>And <00:05:07.033>then <00:05:07.276>rust,

88
00:05:07.330 --> 00:05:12.050
<00:05:07.330>that <00:05:07.446>cannot <00:05:07.563>happen <00:05:07.680>because <00:05:07.796>the <00:05:07.913>type <00:05:08.030>checker <00:05:08.146>prevents <00:05:08.263>it <00:05:08.380>at <00:05:08.496>compiler <00:05:08.613>time. <00:05:08.729>Uh,

89
00:05:12.160 --> 00:05:14.850
<00:05:12.160>next, <00:05:12.335>uh, <00:05:12.510>let's <00:05:12.685>look <00:05:12.860>at <00:05:13.035>some <00:05:13.210>built-in <00:05:13.385>types. <00:05:13.560>Uh,

90
00:05:14.850 --> 00:05:18.370
<00:05:14.850>so <00:05:14.966>besides <00:05:15.083>the <00:05:15.200>regular <00:05:15.316>number <00:05:15.433>and <00:05:15.550>floating <00:05:15.666>point <00:05:15.783>character <00:05:15.900>types <00:05:16.016>and <00:05:16.133>so <00:05:16.250>on,

91
00:05:18.370 --> 00:05:22.290
<00:05:18.370>rust <00:05:18.510>also <00:05:18.650>has <00:05:18.790>a <00:05:18.930>number <00:05:19.070>of <00:05:19.210>compound <00:05:19.350>types. <00:05:19.490>Uh, <00:05:19.630>for <00:05:19.770>example,

92
00:05:22.290 --> 00:05:25.770
<00:05:22.290>there <00:05:22.430>are <00:05:22.570>stupids <00:05:22.710>that <00:05:22.850>represent <00:05:22.990>collections <00:05:23.130>of <00:05:23.270>values <00:05:23.410>of <00:05:23.550>different <00:05:23.690>types.

93
00:05:26.180 --> 00:05:31.170
<00:05:26.180>There <00:05:26.307>is <00:05:26.434>fixed <00:05:26.561>length <00:05:26.689>array, <00:05:26.816>plus <00:05:26.943>of <00:05:27.070>course <00:05:27.198>like <00:05:27.325>some <00:05:27.452>other, <00:05:27.580>uh,

94
00:05:31.180 --> 00:05:35.450
<00:05:31.180>collection <00:05:31.355>types. <00:05:31.530>There <00:05:31.705>is <00:05:31.880>structures <00:05:32.055>for <00:05:32.230>representing <00:05:32.405>structure <00:05:32.580>data,

95
00:05:35.590 --> 00:05:40.530
<00:05:35.590>as <00:05:35.717>the <00:05:35.844>name <00:05:35.971>suggests. <00:05:36.099>Uh, <00:05:36.226>and <00:05:36.353>rust <00:05:36.480>also <00:05:36.608>supports <00:05:36.735>generic <00:05:36.862>data <00:05:36.990>types.

96
00:05:40.950 --> 00:05:43.210
<00:05:40.950>And <00:05:41.229>besides <00:05:41.510>these <00:05:41.789>rust <00:05:42.070>also <00:05:42.349>has

97
00:05:44.710 --> 00:05:48.110
<00:05:44.710>enumerations <00:05:44.849>that <00:05:44.989>can <00:05:45.130>also <00:05:45.270>hold <00:05:45.409>data, <00:05:45.549>right? <00:05:45.690>Like <00:05:45.830>in <00:05:45.969>this <00:05:46.109>case,

98
00:05:48.250 --> 00:05:50.750
<00:05:48.250>the <00:05:48.483>key <00:05:48.716>press <00:05:48.950>variant <00:05:49.183>of <00:05:49.416>the <00:05:49.650>event,

99
00:05:50.900 --> 00:05:53.310
<00:05:50.900>enum <00:05:51.039>holds <00:05:51.179>the <00:05:51.320>key <00:05:51.460>code <00:05:51.599>of <00:05:51.739>the <00:05:51.880>key <00:05:52.020>that <00:05:52.159>was <00:05:52.299>pressed.

100
00:05:53.930 --> 00:05:55.870
<00:05:53.930>And <00:05:54.130>these <00:05:54.330>enums <00:05:54.530>are <00:05:54.730>used <00:05:54.930>for <00:05:55.130>two <00:05:55.330>types.

101
00:05:55.890 --> 00:05:59.440
<00:05:55.890>And <00:05:56.017>there <00:05:56.144>are <00:05:56.271>standard <00:05:56.399>library <00:05:56.526>that <00:05:56.653>are <00:05:56.780>used <00:05:56.908>extensively <00:05:57.035>in <00:05:57.162>rust, <00:05:57.289>right?

102
00:05:59.440 --> 00:06:03.400
<00:05:59.440>And <00:05:59.595>that's <00:05:59.751>worth <00:05:59.906>mentioning <00:06:00.062>here <00:06:00.217>in <00:06:00.373>a <00:06:00.528>language <00:06:00.684>introduction. <00:06:00.840>Uh,

103
00:06:03.500 --> 00:06:07.800
<00:06:03.500>one <00:06:03.593>of <00:06:03.686>them <00:06:03.780>is <00:06:03.873>the <00:06:03.966>zaum, <00:06:04.060>which <00:06:04.153>is <00:06:04.246>used <00:06:04.340>for <00:06:04.433>operations <00:06:04.526>that <00:06:04.620>can <00:06:04.713>go <00:06:04.806>wrong, <00:06:04.900>right?

104
00:06:07.870 --> 00:06:10.040
<00:06:07.870>Rust, <00:06:08.570>uh, <00:06:09.270>uh,

105
00:06:10.040 --> 00:06:13.240
<00:06:10.040>rust <00:06:10.180>does <00:06:10.320>not <00:06:10.460>have <00:06:10.600>exceptions <00:06:10.740>that <00:06:10.880>can <00:06:11.020>be <00:06:11.160>thrown <00:06:11.300>at <00:06:11.440>runtime.

106
00:06:13.260 --> 00:06:17.720
<00:06:13.260>So <00:06:13.360>it <00:06:13.460>typically <00:06:13.560>used <00:06:13.659>the <00:06:13.760>zaum <00:06:13.860>to <00:06:13.960>indicate <00:06:14.060>if <00:06:14.159>things <00:06:14.260>went <00:06:14.360>wrong <00:06:14.460>and <00:06:14.560>result <00:06:14.659>have,

107
00:06:18.220 --> 00:06:20.360
<00:06:18.220>uh, <00:06:18.453>has <00:06:18.686>two <00:06:18.920>variants, <00:06:19.153>okay? <00:06:19.386>And <00:06:19.620>error.

108
00:06:20.660 --> 00:06:24.520
<00:06:20.660>And <00:06:20.800>it's <00:06:20.940>generic <00:06:21.080>over <00:06:21.220>the <00:06:21.360>types <00:06:21.500>of <00:06:21.640>the <00:06:21.780>values <00:06:21.920>associated, <00:06:22.060>uh,

109
00:06:24.540 --> 00:06:27.040
<00:06:24.540>to <00:06:24.773>these <00:06:25.006>two <00:06:25.240>variants. <00:06:25.473>In <00:06:25.706>this <00:06:25.940>example,

110
00:06:27.180 --> 00:06:31.320
<00:06:27.180>we <00:06:27.267>have <00:06:27.355>a <00:06:27.442>tri <00:06:27.530>function <00:06:27.617>that <00:06:27.705>returns <00:06:27.792>the <00:06:27.880>result <00:06:27.967>and <00:06:28.055>we're <00:06:28.142>using <00:06:28.230>a <00:06:28.317>U <00:06:28.405>16 <00:06:28.492>number <00:06:28.580>for

111
00:06:31.320 --> 00:06:34.480
<00:06:31.320>the <00:06:31.447>okay <00:06:31.574>case <00:06:31.701>and <00:06:31.829>a <00:06:31.956>custom <00:06:32.083>error <00:06:32.210>drug <00:06:32.338>for <00:06:32.465>the <00:06:32.592>error <00:06:32.719>case.

112
00:06:35.140 --> 00:06:36.240
<00:06:35.140>And <00:06:35.387>we're <00:06:35.635>calling <00:06:35.882>the <00:06:36.130>function.

113
00:06:36.240 --> 00:06:39.160
<00:06:36.240>We <00:06:36.347>can <00:06:36.455>use <00:06:36.563>the <00:06:36.670>match <00:06:36.778>statement <00:06:36.886>sort <00:06:36.993>of <00:06:37.101>to <00:06:37.209>handle <00:06:37.316>the <00:06:37.424>two <00:06:37.532>cases, <00:06:37.640>right?

114
00:06:39.160 --> 00:06:43.880
<00:06:39.159>Either <00:06:39.253>we <00:06:39.346>go <00:06:39.439>to <00:06:39.533>U <00:06:39.626>16 <00:06:39.719>or <00:06:39.813>that's <00:06:39.906>an <00:06:39.999>error. <00:06:40.093>Uh, <00:06:40.186>similar <00:06:40.280>to <00:06:40.373>the <00:06:40.466>result <00:06:40.559>Enum,

115
00:06:43.930 --> 00:06:45.640
<00:06:43.930>there <00:06:44.280>is <00:06:44.630>the <00:06:44.980>option <00:06:45.330>enum,

116
00:06:45.640 --> 00:06:49.880
<00:06:45.640>which <00:06:45.740>is <00:06:45.840>used <00:06:45.940>to <00:06:46.039>represent <00:06:46.140>the <00:06:46.240>presence <00:06:46.340>or <00:06:46.440>the <00:06:46.539>absence <00:06:46.640>of <00:06:46.740>value, <00:06:46.840>uh, <00:06:46.940>with <00:06:47.039>a,

117
00:06:50.620 --> 00:06:53.530
<00:06:50.620>which <00:06:50.820>is <00:06:51.020>roughly <00:06:51.220>similar <00:06:51.420>sort <00:06:51.620>of <00:06:51.820>Al <00:06:52.020>Birds.

118
00:06:53.950 --> 00:06:58.490
<00:06:53.950>And <00:06:54.090>in <00:06:54.229>a <00:06:54.370>language <00:06:54.510>like <00:06:54.650>Java, <00:06:54.789>just <00:06:54.930>more <00:06:55.070>explicit, <00:06:55.210>explicit <00:06:55.349>and,

119
00:06:58.710 --> 00:07:02.050
<00:06:58.710>and <00:06:58.885>expressive. <00:06:59.060>It <00:06:59.234>has <00:06:59.409>two <00:06:59.585>variants, <00:06:59.760>some <00:06:59.935>are <00:07:00.109>none.

120
00:07:02.050 --> 00:07:03.890
<00:07:02.050>And <00:07:02.250>it's <00:07:02.450>generic <00:07:02.650>of <00:07:02.850>the <00:07:03.050>type <00:07:03.250>of <00:07:03.450>the,

121
00:07:04.870 --> 00:07:08.410
<00:07:04.870>of <00:07:04.997>the <00:07:05.124>value <00:07:05.251>that's <00:07:05.379>associated <00:07:05.506>with <00:07:05.633>the <00:07:05.760>sum <00:07:05.888>variant. <00:07:06.015>And <00:07:06.142>this <00:07:06.270>example,

122
00:07:08.430 --> 00:07:11.730
<00:07:08.430>the <00:07:08.570>GA <00:07:08.710>value <00:07:08.850>function <00:07:08.990>returns <00:07:09.130>and <00:07:09.270>option <00:07:09.410>of <00:07:09.550>U <00:07:09.690>16, <00:07:09.830>right?

123
00:07:11.730 --> 00:07:14.170
<00:07:11.730>And <00:07:11.846>what <00:07:11.963>we <00:07:12.080>call <00:07:12.196>it <00:07:12.313>the <00:07:12.430>function, <00:07:12.546>we <00:07:12.663>can <00:07:12.780>use <00:07:12.896>met <00:07:13.013>statement <00:07:13.130>again.

124
00:07:14.190 --> 00:07:17.090
<00:07:14.190>So <00:07:14.330>either <00:07:14.469>we <00:07:14.610>get <00:07:14.750>some <00:07:14.890>U <00:07:15.030>16 <00:07:15.170>or <00:07:15.310>we <00:07:15.450>get <00:07:15.590>none.

125
00:07:19.040 --> 00:07:23.820
<00:07:19.040>Uh <00:07:19.147>uh, <00:07:19.255>so <00:07:19.363>now <00:07:19.470>that <00:07:19.578>we've <00:07:19.686>seen <00:07:19.793>the <00:07:19.901>basic <00:07:20.009>language <00:07:20.116>features <00:07:20.224>and <00:07:20.332>types, <00:07:20.440>I'd,

126
00:07:24.440 --> 00:07:26.260
<00:07:24.440>I'd <00:07:24.615>like <00:07:24.790>to <00:07:24.965>address <00:07:25.140>the <00:07:25.315>elephant <00:07:25.490>in <00:07:25.665>the <00:07:25.840>room,

127
00:07:26.260 --> 00:07:28.220
<00:07:26.260>and <00:07:26.400>I'm <00:07:26.539>sure <00:07:26.680>most <00:07:26.820>of <00:07:26.960>you <00:07:27.099>have <00:07:27.240>heard <00:07:27.380>about <00:07:27.520>it <00:07:27.659>already,

128
00:07:28.350 --> 00:07:30.540
<00:07:28.350>which <00:07:28.630>is <00:07:28.910>was <00:07:29.190>ownership <00:07:29.470>system, <00:07:29.750>right?

129
00:07:30.570 --> 00:07:34.860
<00:07:30.570>It's <00:07:30.657>a <00:07:30.745>bit <00:07:30.832>of <00:07:30.920>a <00:07:31.007>complex <00:07:31.094>topic <00:07:31.182>and <00:07:31.270>everybody <00:07:31.357>who <00:07:31.445>comes <00:07:31.532>new <00:07:31.620>to <00:07:31.707>us <00:07:31.795>is <00:07:31.882>kind <00:07:31.969>of

130
00:07:34.860 --> 00:07:36.420
<00:07:34.860>scared, <00:07:35.210>um, <00:07:35.560>of <00:07:35.910>it, <00:07:36.260>right?

131
00:07:36.440 --> 00:07:40.420
<00:07:36.440>And <00:07:36.595>I <00:07:36.751>have <00:07:36.906>to <00:07:37.062>say <00:07:37.217>that's <00:07:37.373>partly <00:07:37.528>justified <00:07:37.684>because <00:07:37.840>it's,

132
00:07:40.930 --> 00:07:42.460
<00:07:40.930>it's <00:07:41.389>not <00:07:41.848>easy. <00:07:42.306>Uh,

133
00:07:42.560 --> 00:07:46.500
<00:07:42.560>so <00:07:42.687>US <00:07:42.814>does <00:07:42.941>not <00:07:43.069>use <00:07:43.196>garbage <00:07:43.323>collection <00:07:43.450>for <00:07:43.578>memory <00:07:43.705>management <00:07:43.832>like <00:07:43.960>Java,

134
00:07:46.500 --> 00:07:47.320
<00:07:46.500>for <00:07:46.869>example, <00:07:47.238>right?

135
00:07:47.320 --> 00:07:51.380
<00:07:47.320>And <00:07:47.436>it <00:07:47.553>also <00:07:47.670>doesn't <00:07:47.786>require <00:07:47.903>developers <00:07:48.020>to <00:07:48.136>manage <00:07:48.253>memory <00:07:48.370>themselves <00:07:48.486>like <00:07:48.603>CRC <00:07:48.719>plus

136
00:07:51.380 --> 00:07:54.740
<00:07:51.380>plus <00:07:51.555>two. <00:07:51.730>Instead <00:07:51.905>it <00:07:52.080>does <00:07:52.255>compile <00:07:52.430>time <00:07:52.605>memory <00:07:52.780>management.

137
00:07:54.760 --> 00:07:56.940
<00:07:54.760>And <00:07:54.993>to <00:07:55.226>enable <00:07:55.460>that <00:07:55.693>for <00:07:55.926>every <00:07:56.159>value,

138
00:07:57.730 --> 00:08:01.340
<00:07:57.730>rutt <00:07:57.870>tracks <00:07:58.010>ownership <00:07:58.150>as <00:07:58.290>the <00:07:58.430>variable <00:07:58.570>that <00:07:58.710>owns <00:07:58.850>the <00:07:58.990>value, <00:07:59.130>right?

139
00:08:01.360 --> 00:08:04.300
<00:08:01.360>And <00:08:01.500>then <00:08:01.640>when <00:08:01.780>the <00:08:01.920>scope, <00:08:02.060>the <00:08:02.200>variable <00:08:02.340>is <00:08:02.480>defined <00:08:02.620>and <00:08:02.760>ends,

140
00:08:04.690 --> 00:08:09.380
<00:08:04.690>rust <00:08:04.797>knows <00:08:04.905>it's <00:08:05.013>now <00:08:05.120>safe <00:08:05.228>to <00:08:05.336>release <00:08:05.443>the <00:08:05.551>value <00:08:05.659>from <00:08:05.766>memory <00:08:05.874>because <00:08:05.982>the <00:08:06.090>variable

141
00:08:09.380 --> 00:08:11.980
<00:08:09.380>went <00:08:09.496>out <00:08:09.613>of <00:08:09.730>scope, <00:08:09.846>right? <00:08:09.963>And <00:08:10.080>the <00:08:10.196>value <00:08:10.313>doesn't <00:08:10.430>have <00:08:10.546>an <00:08:10.663>owner <00:08:10.780>anymore.

142
00:08:12.680 --> 00:08:16.340
<00:08:12.680>And <00:08:12.780>then <00:08:12.880>a <00:08:12.980>compile <00:08:13.080>time <00:08:13.180>sort <00:08:13.280>of <00:08:13.380>Russ <00:08:13.480>can <00:08:13.580>automatically <00:08:13.680>add <00:08:13.780>in <00:08:13.880>all <00:08:13.980>the <00:08:14.080>memory

143
00:08:16.340 --> 00:08:19.900
<00:08:16.340>management <00:08:16.619>fo <00:08:16.900>location, <00:08:17.179>steel <00:08:17.460>location. <00:08:17.739>Uh,

144
00:08:19.960 --> 00:08:23.300
<00:08:19.960>so <00:08:20.047>we <00:08:20.135>won't <00:08:20.222>go <00:08:20.310>into <00:08:20.397>a <00:08:20.484>lot <00:08:20.572>of <00:08:20.659>detail <00:08:20.747>on <00:08:20.835>this <00:08:20.922>topic, <00:08:21.010>but <00:08:21.097>here's <00:08:21.185>a <00:08:21.272>brief <00:08:21.359>example.

145
00:08:24.320 --> 00:08:25.260
<00:08:24.320>Uh, <00:08:25.166>here.

146
00:08:25.260 --> 00:08:29.060
<00:08:25.260>The <00:08:25.367>variable <00:08:25.475>Ferris <00:08:25.583>holds <00:08:25.690>string <00:08:25.798>is <00:08:25.906>defined <00:08:26.013>in <00:08:26.121>the <00:08:26.229>scope <00:08:26.336>of <00:08:26.444>the <00:08:26.552>main <00:08:26.659>function.

147
00:08:29.480 --> 00:08:30.540
<00:08:29.480>So <00:08:29.798>the <00:08:30.116>Ferris <00:08:30.434>variable,

148
00:08:33.120 --> 00:08:36.980
<00:08:33.120>so <00:08:33.236>the <00:08:33.353>Ferris <00:08:33.470>ver <00:08:33.586>variable <00:08:33.703>is <00:08:33.820>the <00:08:33.936>owner <00:08:34.053>of <00:08:34.169>the <00:08:34.286>string <00:08:34.403>value, <00:08:34.520>right?

149
00:08:37.320 --> 00:08:40.740
<00:08:37.320>And <00:08:37.460>uh, <00:08:37.600>we <00:08:37.740>then <00:08:37.880>pass <00:08:38.020>the <00:08:38.160>value <00:08:38.300>into <00:08:38.440>the <00:08:38.580>uppercase <00:08:38.720>function.

150
00:08:40.760 --> 00:08:45.100
<00:08:40.760>And <00:08:40.876>by <00:08:40.993>passing <00:08:41.110>the <00:08:41.226>value, <00:08:41.343>the <00:08:41.460>Ferris <00:08:41.576>variable <00:08:41.693>owns <00:08:41.809>into <00:08:41.926>the <00:08:42.043>uppercase <00:08:42.159>function.

151
00:08:45.160 --> 00:08:49.140
<00:08:45.160>The <00:08:45.267>name <00:08:45.375>variable <00:08:45.483>or <00:08:45.590>argument <00:08:45.698>of <00:08:45.806>the <00:08:45.913>function <00:08:46.021>becomes <00:08:46.129>the <00:08:46.236>new <00:08:46.344>owner <00:08:46.452>of <00:08:46.560>the

152
00:08:49.140 --> 00:08:53.380
<00:08:49.140>value. <00:08:49.240>And <00:08:49.340>Russ <00:08:49.439>knows <00:08:49.540>that <00:08:49.640>at <00:08:49.740>the <00:08:49.840>end <00:08:49.939>of <00:08:50.040>the <00:08:50.140>scope <00:08:50.240>of <00:08:50.340>the <00:08:50.439>uppercase <00:08:50.540>function,

153
00:08:53.380 --> 00:08:55.400
<00:08:53.380>when <00:08:53.580>the <00:08:53.780>name <00:08:53.980>variable <00:08:54.180>goes <00:08:54.380>out <00:08:54.580>of <00:08:54.780>scope,

154
00:08:55.460 --> 00:08:58.440
<00:08:55.460>the <00:08:55.587>value <00:08:55.714>points <00:08:55.841>can <00:08:55.969>be <00:08:56.096>freed <00:08:56.223>because <00:08:56.350>there's <00:08:56.478>no <00:08:56.605>owner <00:08:56.732>anymore, <00:08:56.860>right?

155
00:08:58.980 --> 00:09:00.320
<00:08:58.980>Yet <00:08:59.221>in <00:08:59.462>the <00:08:59.703>main <00:08:59.944>function <00:09:00.186>here,

156
00:09:00.340 --> 00:09:04.160
<00:09:00.340>we <00:09:00.440>are <00:09:00.540>accessing <00:09:00.640>the <00:09:00.740>value <00:09:00.840>via <00:09:00.940>the <00:09:01.040>Ferris <00:09:01.140>variable <00:09:01.240>and <00:09:01.340>the <00:09:01.440>print <00:09:01.540>line <00:09:01.640>after <00:09:01.740>the

157
00:09:04.160 --> 00:09:06.840
<00:09:04.160>upper <00:09:04.393>con <00:09:04.626>uppercase <00:09:04.860>function <00:09:05.093>has <00:09:05.326>completed, <00:09:05.560>right?

158
00:09:06.860 --> 00:09:08.960
<00:09:06.860>And <00:09:07.060>thus <00:09:07.260>the <00:09:07.460>value <00:09:07.660>has <00:09:07.860>been <00:09:08.060>released <00:09:08.260>already,

159
00:09:09.340 --> 00:09:13.200
<00:09:09.340>and <00:09:09.447>that <00:09:09.555>can <00:09:09.663>work <00:09:09.770>and <00:09:09.878>we <00:09:09.986>get <00:09:10.093>a <00:09:10.201>compile <00:09:10.309>error, <00:09:10.416>right? <00:09:10.524>In <00:09:10.632>this <00:09:10.740>case,

160
00:09:13.280 --> 00:09:17.240
<00:09:13.280>a <00:09:13.380>simple <00:09:13.480>fix <00:09:13.579>for <00:09:13.680>the <00:09:13.780>error <00:09:13.880>would <00:09:13.980>be <00:09:14.079>simply <00:09:14.180>passing <00:09:14.280>a <00:09:14.380>reference <00:09:14.480>instead <00:09:14.579>of <00:09:14.680>sort

161
00:09:17.240 --> 00:09:21.360
<00:09:17.240>of <00:09:17.395>passing <00:09:17.551>the <00:09:17.706>actual <00:09:17.862>value. <00:09:18.017>So <00:09:18.173>ownership <00:09:18.328>doesn't <00:09:18.484>change. <00:09:18.640>Um,

162
00:09:22.940 --> 00:09:27.280
<00:09:22.940>and, <00:09:23.022>uh, <00:09:23.104>this <00:09:23.187>will <00:09:23.269>fix <00:09:23.351>it. <00:09:23.434>Like <00:09:23.516>I <00:09:23.598>said, <00:09:23.681>we <00:09:23.763>don't <00:09:23.845>go <00:09:23.928>into <00:09:24.010>a <00:09:24.092>lot <00:09:24.175>of <00:09:24.257>detail <00:09:24.340>here.

163
00:09:27.340 --> 00:09:29.040
<00:09:27.340>As <00:09:27.515>I <00:09:27.690>said, <00:09:27.865>sort <00:09:28.040>of, <00:09:28.215>it's <00:09:28.390>a <00:09:28.565>complex <00:09:28.740>topic,

164
00:09:29.100 --> 00:09:31.960
<00:09:29.100>so <00:09:29.240>just <00:09:29.380>know <00:09:29.520>there's <00:09:29.660>no <00:09:29.800>garbage <00:09:29.940>collection. <00:09:30.080>There's <00:09:30.220>also <00:09:30.360>no <00:09:30.500>manual,

165
00:09:35.830 --> 00:09:40.090
<00:09:35.830>uh, <00:09:35.985>sorry, <00:09:36.141>there's <00:09:36.296>no <00:09:36.452>garbage <00:09:36.607>collection. <00:09:36.763>There's <00:09:36.918>also <00:09:37.074>no <00:09:37.230>man

166
00:09:41.840 --> 00:09:43.690
<00:09:41.840>also <00:09:42.190>no <00:09:42.540>manual <00:09:42.890>memory <00:09:43.240>management.

167
00:09:43.990 --> 00:09:47.090
<00:09:43.990>But <00:09:44.106>the <00:09:44.223>ownership <00:09:44.340>system <00:09:44.456>sort <00:09:44.573>of <00:09:44.690>allows <00:09:44.806>the <00:09:44.923>sort <00:09:45.040>of <00:09:45.156>compile <00:09:45.273>time <00:09:45.390>memory

168
00:09:47.090 --> 00:09:50.490
<00:09:47.090>management. <00:09:47.230>Uh, <00:09:47.370>so <00:09:47.510>that's <00:09:47.650>the <00:09:47.790>brief <00:09:47.930>overview <00:09:48.070>of <00:09:48.210>the <00:09:48.350>language <00:09:48.490>itself.

169
00:09:50.490 --> 00:09:53.650
<00:09:50.490>But <00:09:50.597>I <00:09:50.705>want <00:09:50.813>to <00:09:50.920>talk <00:09:51.028>about <00:09:51.136>Rust, <00:09:51.243>uh, <00:09:51.351>sort <00:09:51.459>of <00:09:51.566>on <00:09:51.674>the <00:09:51.782>web, <00:09:51.890>right?

170
00:09:53.670 --> 00:09:56.890
<00:09:53.670>So <00:09:53.770>what's <00:09:53.870>the <00:09:53.969>situation <00:09:54.069>with <00:09:54.170>Rust <00:09:54.270>on <00:09:54.370>the <00:09:54.469>web <00:09:54.569>and <00:09:54.670>it <00:09:54.770>is <00:09:54.870>Rust <00:09:54.969>Web <00:09:55.069>yet.

171
00:09:58.030 --> 00:10:01.250
<00:09:58.030>And <00:09:58.146>now <00:09:58.263>we <00:09:58.380>web <00:09:58.496>here.org <00:09:58.613>answers <00:09:58.730>the <00:09:58.846>question <00:09:58.963>with <00:09:59.079>a <00:09:59.196>clear <00:09:59.313>yes, <00:09:59.430>right?

172
00:10:01.250 --> 00:10:03.330
<00:10:01.250>Rust <00:10:01.425>is <00:10:01.600>ready <00:10:01.775>for <00:10:01.950>the <00:10:02.125>web <00:10:02.300>and <00:10:02.475>it's <00:10:02.650>fast.

173
00:10:03.830 --> 00:10:07.050
<00:10:03.830>All <00:10:03.912>of <00:10:03.994>the <00:10:04.077>aspects <00:10:04.159>that <00:10:04.241>need <00:10:04.324>to <00:10:04.406>be <00:10:04.488>covered <00:10:04.571>in <00:10:04.653>order <00:10:04.735>to <00:10:04.818>be <00:10:04.900>able <00:10:04.982>to <00:10:05.065>build <00:10:05.147>web <00:10:05.230>apps

174
00:10:07.110 --> 00:10:11.570
<00:10:07.110>are <00:10:07.250>covered, <00:10:07.390>right? <00:10:07.530>Uh, <00:10:07.670>first <00:10:07.810>of <00:10:07.950>all, <00:10:08.090>there's <00:10:08.230>is, <00:10:08.370>uh, <00:10:08.510>Tokyo,

175
00:10:11.660 --> 00:10:14.850
<00:10:11.660>which <00:10:11.800>is <00:10:11.939>an <00:10:12.079>asynchronous <00:10:12.219>runtime, <00:10:12.360>is <00:10:12.500>the <00:10:12.640>foundation <00:10:12.780>for <00:10:12.920>most <00:10:13.060>of,

176
00:10:15.590 --> 00:10:17.770
<00:10:15.590>of <00:10:15.823>the <00:10:16.056>web <00:10:16.290>frameworks <00:10:16.523>and <00:10:16.756>similar <00:10:16.990>libraries,

177
00:10:18.830 --> 00:10:22.490
<00:10:18.830>and <00:10:18.917>it's <00:10:19.005>kind <00:10:19.092>of <00:10:19.180>the <00:10:19.267>main <00:10:19.355>building <00:10:19.442>block <00:10:19.530>for <00:10:19.617>us <00:10:19.705>on <00:10:19.792>the <00:10:19.880>web. <00:10:19.967>On <00:10:20.055>top <00:10:20.142>of <00:10:20.230>that,

178
00:10:22.490 --> 00:10:25.370
<00:10:22.490>there <00:10:22.770>are <00:10:23.050>the <00:10:23.330>web <00:10:23.610>frameworks, <00:10:23.890>uh,

179
00:10:25.630 --> 00:10:30.600
<00:10:25.630>and <00:10:25.770>there <00:10:25.910>are <00:10:26.050>quite <00:10:26.189>a <00:10:26.330>few <00:10:26.470>mature, <00:10:26.610>well-maintained <00:10:26.750>options <00:10:26.890>there, <00:10:27.030>right?

180
00:10:30.670 --> 00:10:34.560
<00:10:30.670>With <00:10:30.770>XXI <00:10:30.870>being <00:10:30.969>the <00:10:31.069>most <00:10:31.170>popular <00:10:31.270>one, <00:10:31.370>building <00:10:31.469>on <00:10:31.569>top <00:10:31.670>of <00:10:31.770>the <00:10:31.870>talk <00:10:31.969>around <00:10:32.069>time.

181
00:10:35.060 --> 00:10:39.240
<00:10:35.060>And <00:10:35.153>without <00:10:35.246>going <00:10:35.339>into <00:10:35.433>details <00:10:35.526>here, <00:10:35.619>we <00:10:35.713>can <00:10:35.806>say <00:10:35.900>that <00:10:35.993>sort <00:10:36.086>of <00:10:36.180>all <00:10:36.273>of <00:10:36.366>the <00:10:36.459>lev,

182
00:10:40.060 --> 00:10:40.893
oh,

183
00:10:41.980 --> 00:10:46.040
<00:10:41.980>we <00:10:42.073>can <00:10:42.166>say <00:10:42.260>that <00:10:42.353>all <00:10:42.446>of <00:10:42.540>the <00:10:42.633>lower <00:10:42.726>level <00:10:42.820>stuff <00:10:42.913>you <00:10:43.006>need <00:10:43.100>when <00:10:43.193>writing <00:10:43.286>web <00:10:43.380>backends

184
00:10:46.040 --> 00:10:50.680
<00:10:46.040>like <00:10:46.122>h <00:10:46.204>D <00:10:46.287>p <00:10:46.369>1, <00:10:46.451>2, <00:10:46.534>3, <00:10:46.616>web <00:10:46.698>sockets, <00:10:46.781>t <00:10:46.863>l <00:10:46.945>s <00:10:47.028>and <00:10:47.110>so <00:10:47.192>on, <00:10:47.275>is <00:10:47.357>covered, <00:10:47.439>right?

185
00:10:51.220 --> 00:10:54.760
<00:10:51.220>And <00:10:51.360>then <00:10:51.500>kind <00:10:51.640>of <00:10:51.780>below <00:10:51.920>the <00:10:52.060>framework <00:10:52.200>in <00:10:52.340>your <00:10:52.480>application <00:10:52.620>architecture,

186
00:10:54.760 --> 00:10:57.760
<00:10:54.760>you <00:10:54.960>have <00:10:55.160>the <00:10:55.360>data <00:10:55.560>stores, <00:10:55.760>obviously, <00:10:55.960>uh, <00:10:56.160>right?

187
00:10:57.780 --> 00:11:02.400
<00:10:57.780>And <00:10:57.896>you <00:10:58.013>have <00:10:58.130>a <00:10:58.246>number <00:10:58.363>of <00:10:58.480>mature <00:10:58.596>and <00:10:58.713>well <00:10:58.829>maintained, <00:10:58.946>uh, <00:10:59.063>uh, <00:10:59.180>uh,

188
00:11:02.980 --> 00:11:07.080
<00:11:02.980>um, <00:11:03.155>uh, <00:11:03.330>crates <00:11:03.505>for <00:11:03.680>the, <00:11:03.855>uh, <00:11:04.030>for <00:11:04.205>the <00:11:04.380>main,

189
00:11:07.980 --> 00:11:12.480
<00:11:07.980>uh, <00:11:08.107>for <00:11:08.234>the <00:11:08.361>most <00:11:08.489>relevant <00:11:08.616>data <00:11:08.743>stores <00:11:08.870>like <00:11:08.998>MySQL, <00:11:09.125>postcards, <00:11:09.252>whatever. <00:11:09.380>Uh,

190
00:11:12.480 --> 00:11:15.360
<00:11:12.480>there's <00:11:12.620>also <00:11:12.760>ORMs <00:11:12.900>as <00:11:13.040>well <00:11:13.180>if <00:11:13.320>you <00:11:13.460>want <00:11:13.600>to <00:11:13.740>use <00:11:13.880>one.

191
00:11:16.100 --> 00:11:18.960
<00:11:16.100>And <00:11:16.227>then <00:11:16.354>there's <00:11:16.481>a <00:11:16.609>number <00:11:16.736>of <00:11:16.863>data <00:11:16.990>stores <00:11:17.118>written <00:11:17.245>in <00:11:17.372>Rust <00:11:17.500>even,

192
00:11:18.960 --> 00:11:22.560
<00:11:18.960>because <00:11:19.076>obviously <00:11:19.193>Rust <00:11:19.310>is <00:11:19.426>a <00:11:19.543>great <00:11:19.660>choice <00:11:19.776>for <00:11:19.893>that <00:11:20.010>kind <00:11:20.126>of <00:11:20.243>software, <00:11:20.360>right?

193
00:11:23.820 --> 00:11:25.920
<00:11:23.820>In <00:11:24.053>addition <00:11:24.286>web <00:11:24.520>framework <00:11:24.753>and <00:11:24.986>data <00:11:25.220>stores,

194
00:11:25.920 --> 00:11:29.440
<00:11:25.920>there's <00:11:26.027>a <00:11:26.135>number <00:11:26.243>of <00:11:26.350>other <00:11:26.458>things <00:11:26.566>you <00:11:26.673>need <00:11:26.781>when <00:11:26.889>writing <00:11:26.996>a <00:11:27.104>web <00:11:27.212>app, <00:11:27.319>uh,

195
00:11:29.440 --> 00:11:31.520
<00:11:29.440>like <00:11:29.906>Serialization <00:11:30.373>des <00:11:30.840>Serialization,

196
00:11:31.520 --> 00:11:35.320
<00:11:31.520>which <00:11:31.694>is <00:11:31.870>covered <00:11:32.045>by <00:11:32.220>the <00:11:32.395>famous <00:11:32.569>survey <00:11:32.745>create. <00:11:32.920>Uh,

197
00:11:35.320 --> 00:11:40.310
<00:11:35.320>there's <00:11:35.520>implementations <00:11:35.720>of <00:11:35.920>various <00:11:36.120>messaging <00:11:36.320>formats. <00:11:36.520>There's, <00:11:36.720>uh,

198
00:11:40.370 --> 00:11:44.710
<00:11:40.370>crates <00:11:40.525>for <00:11:40.681>internationalization <00:11:40.836>as <00:11:40.992>well <00:11:41.147>as <00:11:41.303>templating <00:11:41.458>and <00:11:41.614>essentially <00:11:41.770>everything

199
00:11:44.770 --> 00:11:49.070
<00:11:44.770>you <00:11:44.910>would <00:11:45.050>need, <00:11:45.189>right? <00:11:45.329>So <00:11:45.470>overall, <00:11:45.610>as <00:11:45.750>our <00:11:45.890>web <00:11:46.030>org <00:11:46.170>says,

200
00:11:49.610 --> 00:11:53.840
<00:11:49.610>uh, <00:11:49.703>yes, <00:11:49.796>rust <00:11:49.890>is <00:11:49.983>ready <00:11:50.076>for <00:11:50.170>the <00:11:50.263>web. <00:11:50.356>And <00:11:50.450>as <00:11:50.543>I <00:11:50.636>said <00:11:50.730>in <00:11:50.823>in <00:11:50.916>the <00:11:51.010>beginning,

201
00:11:53.940 --> 00:11:57.920
<00:11:53.940>we <00:11:54.047>had <00:11:54.155>mainly <00:11:54.263>believe <00:11:54.370>that <00:11:54.478>building <00:11:54.586>web <00:11:54.693>apps <00:11:54.801>in <00:11:54.909>Rust <00:11:55.016>is <00:11:55.124>ready <00:11:55.232>for <00:11:55.340>takeoff

202
00:11:59.180 --> 00:12:02.000
<00:11:59.180>and <00:11:59.459>it's <00:11:59.739>even <00:12:00.020>relatively <00:12:00.300>easy. <00:12:00.579>Uh,

203
00:12:02.010 --> 00:12:04.520
<00:12:02.010>let's <00:12:02.185>look <00:12:02.360>at <00:12:02.535>the <00:12:02.710>small <00:12:02.885>Express <00:12:03.060>jss <00:12:03.235>app <00:12:03.410>here.

204
00:12:07.440 --> 00:12:10.940
<00:12:07.440>We <00:12:07.547>could <00:12:07.655>have <00:12:07.763>used <00:12:07.870>like <00:12:07.978>a <00:12:08.086>different <00:12:08.193>thing <00:12:08.301>like, <00:12:08.409>uh, <00:12:08.516>Ruby, <00:12:08.624>Python, <00:12:08.732>go, <00:12:08.840>whatever.

205
00:12:10.940 --> 00:12:14.620
<00:12:10.940>It's <00:12:11.067>all <00:12:11.194>similar <00:12:11.321>in <00:12:11.449>the <00:12:11.576>end. <00:12:11.703>But <00:12:11.830>here <00:12:11.958>we <00:12:12.085>chose <00:12:12.212>Express, <00:12:12.340>uh,

206
00:12:14.640 --> 00:12:19.540
<00:12:14.640>we <00:12:14.722>run <00:12:14.804>a <00:12:14.887>server <00:12:14.969>on <00:12:15.051>Port <00:12:15.134>3000 <00:12:15.216>and <00:12:15.298>respond <00:12:15.381>to <00:12:15.463>get <00:12:15.545>requests <00:12:15.628>to <00:12:15.710>the <00:12:15.792>root <00:12:15.875>path <00:12:15.957>with <00:12:16.040>a

207
00:12:19.540 --> 00:12:22.460
<00:12:19.540>static <00:12:19.695>string, <00:12:19.851>right? <00:12:20.006>This <00:12:20.162>is <00:12:20.317>like <00:12:20.473>an <00:12:20.628>extremely <00:12:20.784>simple <00:12:20.939>example.

208
00:12:23.720 --> 00:12:27.500
<00:12:23.720>The <00:12:23.836>equivalent <00:12:23.953>and <00:12:24.070>Rust <00:12:24.186>is <00:12:24.303>actually <00:12:24.420>pretty <00:12:24.536>similar, <00:12:24.653>right? <00:12:24.770>We <00:12:24.886>import <00:12:25.003>some <00:12:25.120>types,

209
00:12:27.680 --> 00:12:29.060
<00:12:27.680>we <00:12:27.990>define <00:12:28.300>a <00:12:28.611>main <00:12:28.921>function,

210
00:12:29.060 --> 00:12:34.060
<00:12:29.060>which <00:12:29.187>we <00:12:29.314>mark <00:12:29.441>with <00:12:29.569>Tokyo's <00:12:29.696>main <00:12:29.823>attribute <00:12:29.950>macro <00:12:30.078>to <00:12:30.205>allow <00:12:30.332>to <00:12:30.459>execute

211
00:12:34.080 --> 00:12:34.980
asynchronously.

212
00:12:35.000 --> 00:12:39.380
<00:12:35.000>And <00:12:35.107>then <00:12:35.215>we <00:12:35.323>create <00:12:35.430>an <00:12:35.538>application <00:12:35.646>and <00:12:35.753>route <00:12:35.861>request <00:12:35.969>to <00:12:36.076>the <00:12:36.184>root <00:12:36.292>path, <00:12:36.400>uh,

213
00:12:39.400 --> 00:12:40.980
<00:12:39.400>to <00:12:39.680>a <00:12:39.959>hello <00:12:40.240>world <00:12:40.520>function, <00:12:40.800>right?

214
00:12:41.000 --> 00:12:44.420
<00:12:41.000>And <00:12:41.093>the <00:12:41.186>rest <00:12:41.280>of <00:12:41.373>the <00:12:41.466>code <00:12:41.560>and <00:12:41.653>the <00:12:41.746>main <00:12:41.840>function <00:12:41.933>is <00:12:42.026>essentially <00:12:42.120>just <00:12:42.213>starts <00:12:42.306>up <00:12:42.400>the

215
00:12:44.420 --> 00:12:47.060
<00:12:44.420>server <00:12:44.575>and <00:12:44.731>binds <00:12:44.886>it <00:12:45.042>to <00:12:45.197>part <00:12:45.353>3000 <00:12:45.508>on <00:12:45.664>local <00:12:45.819>host.

216
00:12:47.520 --> 00:12:51.380
<00:12:47.520>And <00:12:47.627>then <00:12:47.735>the <00:12:47.843>Hello <00:12:47.950>world <00:12:48.058>function <00:12:48.166>itself <00:12:48.273>simply <00:12:48.381>returns <00:12:48.489>a <00:12:48.596>static <00:12:48.704>string <00:12:48.812>like <00:12:48.920>in

217
00:12:51.380 --> 00:12:55.220
<00:12:51.380>the <00:12:51.846>express <00:12:52.313>example, <00:12:52.780>right?

218
00:12:55.220 --> 00:12:59.500
<00:12:55.220>So <00:12:55.347>that's <00:12:55.474>Rust <00:12:55.601>and <00:12:55.729>the <00:12:55.856>state <00:12:55.983>of <00:12:56.110>the <00:12:56.238>web <00:12:56.365>in <00:12:56.492>Rust <00:12:56.620>or,

219
00:13:00.120 --> 00:13:03.260
<00:13:00.120>or <00:13:00.247>the <00:13:00.374>state <00:13:00.501>of <00:13:00.629>web <00:13:00.756>development <00:13:00.883>in <00:13:01.010>Rust <00:13:01.138>in <00:13:01.265>a <00:13:01.392>nutshell. <00:13:01.520>Now,

220
00:13:03.260 --> 00:13:05.420
<00:13:03.260>obviously <00:13:03.493>you <00:13:03.726>might <00:13:03.960>ask <00:13:04.193>why, <00:13:04.426>right? <00:13:04.660>Like,

221
00:13:05.480 --> 00:13:08.460
<00:13:05.480>why <00:13:05.607>would <00:13:05.734>you <00:13:05.861>care <00:13:05.989>about <00:13:06.116>this <00:13:06.243>when <00:13:06.370>you're <00:13:06.498>happily <00:13:06.625>using <00:13:06.752>Ruby <00:13:06.880>Java,

222
00:13:08.480 --> 00:13:10.780
<00:13:08.480>Alexia <00:13:08.713>TypeScript <00:13:08.946>go <00:13:09.180>or <00:13:09.413>whatever <00:13:09.646>you're <00:13:09.880>using?

223
00:13:11.320 --> 00:13:14.460
<00:13:11.320>And <00:13:11.447>to <00:13:11.574>explain <00:13:11.701>why <00:13:11.829>you <00:13:11.956>might <00:13:12.083>decide <00:13:12.210>for <00:13:12.338>us <00:13:12.465>in <00:13:12.592>some <00:13:12.720>scenarios,

224
00:13:14.540 --> 00:13:16.540
<00:13:14.540>I <00:13:14.740>wanna <00:13:14.939>go <00:13:15.140>back <00:13:15.339>to <00:13:15.540>our <00:13:15.740>previous <00:13:15.939>example,

225
00:13:17.740 --> 00:13:21.540
<00:13:17.740>seemingly <00:13:17.847>like <00:13:17.955>there's <00:13:18.063>not <00:13:18.170>a <00:13:18.278>big <00:13:18.386>difference <00:13:18.493>between <00:13:18.601>the <00:13:18.709>two <00:13:18.816>just <00:13:18.924>looking <00:13:19.032>at <00:13:19.140>the

226
00:13:21.540 --> 00:13:23.980
<00:13:21.540>code, <00:13:21.680>right? <00:13:21.819>One <00:13:21.959>implementation <00:13:22.099>is <00:13:22.240>type <00:13:22.380>while <00:13:22.520>the <00:13:22.660>other <00:13:22.800>is <00:13:22.939>not,

227
00:13:23.980 --> 00:13:27.260
<00:13:23.980>and <00:13:24.135>Rust <00:13:24.291>sort <00:13:24.446>of <00:13:24.602>is <00:13:24.757>a <00:13:24.913>bit <00:13:25.068>longer. <00:13:25.224>Uh, <00:13:25.380>however,

228
00:13:27.490 --> 00:13:29.300
<00:13:27.490>when <00:13:27.840>running <00:13:28.190>these <00:13:28.540>examples, <00:13:28.890>uh,

229
00:13:29.320 --> 00:13:33.060
<00:13:29.320>we <00:13:29.447>see <00:13:29.574>there's <00:13:29.701>actually <00:13:29.829>a <00:13:29.956>huge <00:13:30.083>difference <00:13:30.210>with <00:13:30.338>a <00:13:30.465>simple <00:13:30.592>load <00:13:30.720>test.

230
00:13:33.200 --> 00:13:37.980
<00:13:33.200>We <00:13:33.327>managed <00:13:33.454>to <00:13:33.581>complete <00:13:33.709>around <00:13:33.836>13,000 <00:13:33.963>requests <00:13:34.090>and <00:13:34.218>10 <00:13:34.345>seconds <00:13:34.472>for <00:13:34.600>the

231
00:13:37.980 --> 00:13:41.140
<00:13:37.980>Express <00:13:38.120>server. <00:13:38.260>Uh, <00:13:38.400>with <00:13:38.540>the <00:13:38.680>same <00:13:38.820>Lotus <00:13:38.960>in <00:13:39.100>the <00:13:39.240>same <00:13:39.380>time.

232
00:13:41.140 --> 00:13:44.900
<00:13:41.140>We <00:13:41.314>managed <00:13:41.490>almost <00:13:41.665>130,000 <00:13:41.840>requests <00:13:42.015>against <00:13:42.189>the <00:13:42.365>rest <00:13:42.540>server.

233
00:13:45.600 --> 00:13:50.420
<00:13:45.600>So <00:13:45.707>that's <00:13:45.815>obviously <00:13:45.923>roughly <00:13:46.030>10 <00:13:46.138>times <00:13:46.246>the <00:13:46.353>request <00:13:46.461>for <00:13:46.569>the <00:13:46.676>Rust <00:13:46.784>server <00:13:46.892>was, <00:13:47.000>uh,

234
00:13:50.480 --> 00:13:54.420
<00:13:50.480>was <00:13:50.607>the <00:13:50.734>no <00:13:50.861>J <00:13:50.989>server, <00:13:51.116>right? <00:13:51.243>So <00:13:51.370>obviously <00:13:51.498>rust <00:13:51.625>is <00:13:51.752>extremely <00:13:51.880>fast,

235
00:13:54.480 --> 00:13:57.980
<00:13:54.480>and <00:13:54.680>it's <00:13:54.880>also <00:13:55.080>not <00:13:55.280>just <00:13:55.480>fast <00:13:55.680>on <00:13:55.880>average,

236
00:13:58.010 --> 00:14:00.220
<00:13:58.010>performance <00:13:58.290>is <00:13:58.569>also <00:13:58.850>more <00:13:59.130>consistent, <00:13:59.410>right?

237
00:14:00.320 --> 00:14:03.180
<00:14:00.320>The <00:14:00.460>problem <00:14:00.600>with <00:14:00.740>all <00:14:00.880>garbage <00:14:01.020>collected <00:14:01.160>languages, <00:14:01.300>like <00:14:01.440>in <00:14:01.580>this <00:14:01.720>case,

238
00:14:03.180 --> 00:14:06.380
<00:14:03.180>JavaScript <00:14:03.354>is <00:14:03.530>the <00:14:03.704>performance <00:14:03.880>chart <00:14:04.055>looks <00:14:04.229>something <00:14:04.405>like <00:14:04.579>this.

239
00:14:07.360 --> 00:14:08.380
<00:14:07.360>You <00:14:07.819>have <00:14:08.278>spikes,

240
00:14:13.400 --> 00:14:16.780
<00:14:13.400>uh, <00:14:13.540>you <00:14:13.680>have <00:14:13.819>these <00:14:13.959>spikes <00:14:14.100>that <00:14:14.240>occur <00:14:14.380>in <00:14:14.520>intervals, <00:14:14.660>right? <00:14:14.800>Uh,

241
00:14:16.780 --> 00:14:19.180
<00:14:16.780>where <00:14:16.920>performance <00:14:17.060>is <00:14:17.199>much <00:14:17.339>worse <00:14:17.480>than <00:14:17.620>the <00:14:17.760>rest <00:14:17.900>of <00:14:18.040>the <00:14:18.180>time.

242
00:14:19.200 --> 00:14:21.900
<00:14:19.200>So <00:14:19.355>of <00:14:19.511>course <00:14:19.666>those <00:14:19.822>spikes <00:14:19.977>occur <00:14:20.133>when <00:14:20.288>garbage <00:14:20.444>collection <00:14:20.600>runs.

243
00:14:21.920 --> 00:14:25.340
<00:14:21.920>And <00:14:22.027>the <00:14:22.135>virtual <00:14:22.243>machine <00:14:22.350>holds <00:14:22.458>everything <00:14:22.566>sort <00:14:22.673>of <00:14:22.781>in <00:14:22.889>order <00:14:22.996>to <00:14:23.104>clean <00:14:23.212>up <00:14:23.319>memory,

244
00:14:26.520 --> 00:14:30.260
<00:14:26.520>uh, <00:14:26.647>for <00:14:26.774>language <00:14:26.901>like <00:14:27.029>Rust, <00:14:27.156>uh, <00:14:27.283>that <00:14:27.410>does <00:14:27.538>not <00:14:27.665>have <00:14:27.792>garbage <00:14:27.920>collection.

245
00:14:30.360 --> 00:14:33.220
<00:14:30.360>The <00:14:30.487>performance <00:14:30.614>chart <00:14:30.741>looks <00:14:30.869>something <00:14:30.996>like <00:14:31.123>this, <00:14:31.250>right? <00:14:31.378>It's <00:14:31.505>a <00:14:31.632>flat <00:14:31.760>line.

246
00:14:33.220 --> 00:14:35.940
<00:14:33.220>Without <00:14:33.375>p <00:14:33.531>you <00:14:33.686>get <00:14:33.842>consistent <00:14:33.997>performance <00:14:34.153>all <00:14:34.308>of <00:14:34.464>the <00:14:34.620>time,

247
00:14:36.150 --> 00:14:40.260
<00:14:36.150>right <00:14:36.305>before <00:14:36.461>Rust <00:14:36.616>came <00:14:36.772>along. <00:14:36.927>The <00:14:37.083>only <00:14:37.238>other <00:14:37.394>alternatives, <00:14:37.550>uh,

248
00:14:40.260 --> 00:14:44.700
<00:14:40.260>to <00:14:40.367>get <00:14:40.475>this <00:14:40.583>kind <00:14:40.690>of <00:14:40.798>high <00:14:40.906>end <00:14:41.013>steady <00:14:41.121>and <00:14:41.229>consistent <00:14:41.336>performance <00:14:41.444>with <00:14:41.552>CNC <00:14:41.660>plus

249
00:14:44.700 --> 00:14:45.533
<00:14:44.700>plus, <00:14:45.449>right?

250
00:14:45.880 --> 00:14:50.500
<00:14:45.880>The <00:14:45.996>problem <00:14:46.113>with <00:14:46.230>CNC <00:14:46.346>plus <00:14:46.463>plus <00:14:46.580>though <00:14:46.696>is <00:14:46.813>using <00:14:46.930>them <00:14:47.046>as <00:14:47.163>like <00:14:47.280>juggling

251
00:14:50.650 --> 00:14:53.040
<00:14:50.650>chainsaws, <00:14:50.824>right? <00:14:51.000>Which <00:14:51.175>is <00:14:51.350>not <00:14:51.525>something <00:14:51.699>that <00:14:51.875>I <00:14:52.050>say,

252
00:14:53.040 --> 00:14:56.960
<00:14:53.040>but <00:14:53.180>something <00:14:53.319>Leno <00:14:53.459>Towar <00:14:53.599>said, <00:14:53.740>and <00:14:53.880>uh, <00:14:54.020>he <00:14:54.160>must <00:14:54.300>know, <00:14:54.439>right?

253
00:14:56.960 --> 00:14:59.960
<00:14:56.960>He <00:14:57.076>must <00:14:57.193>have <00:14:57.310>written <00:14:57.426>millions <00:14:57.543>of <00:14:57.660>lines <00:14:57.776>of <00:14:57.893>code <00:14:58.010>in <00:14:58.126>these <00:14:58.243>languages, <00:14:58.360>right?

254
00:14:59.960 --> 00:15:04.160
<00:14:59.960>So <00:15:00.087>CNC <00:15:00.214>plus <00:15:00.341>plus <00:15:00.469>are <00:15:00.596>obviously <00:15:00.723>powerful, <00:15:00.850>but <00:15:00.978>also <00:15:01.105>really <00:15:01.232>dangerous, <00:15:01.360>right?

255
00:15:04.160 --> 00:15:05.360
<00:15:04.160>There's <00:15:04.520>lots <00:15:04.880>of <00:15:05.240>pitfalls,

256
00:15:05.360 --> 00:15:09.120
<00:15:05.360>most <00:15:05.560>prominently <00:15:05.760>making <00:15:05.960>mistakes <00:15:06.160>doing <00:15:06.360>manual <00:15:06.560>memory <00:15:06.760>management,

257
00:15:09.120 --> 00:15:13.000
<00:15:09.120>which <00:15:09.295>can <00:15:09.470>have <00:15:09.645>horrible <00:15:09.820>consequences <00:15:09.995>for <00:15:10.170>security <00:15:10.345>and <00:15:10.520>stability,

258
00:15:13.930 --> 00:15:14.300
right?

259
00:15:14.300 --> 00:15:17.880
<00:15:14.300>So <00:15:14.387>you <00:15:14.474>really <00:15:14.562>only <00:15:14.650>can <00:15:14.737>use <00:15:14.824>CNC <00:15:14.912>plus <00:15:15.000>plus <00:15:15.087>when <00:15:15.175>you're <00:15:15.262>an <00:15:15.349>expert <00:15:15.437>or <00:15:15.525>you <00:15:15.612>have <00:15:15.699>an

260
00:15:17.880 --> 00:15:22.680
<00:15:17.880>expert <00:15:17.967>team, <00:15:18.055>and <00:15:18.142>I <00:15:18.230>feel <00:15:18.317>like <00:15:18.405>I <00:15:18.492>have <00:15:18.580>to <00:15:18.667>talk <00:15:18.755>louder <00:15:18.842>now <00:15:18.930>'cause <00:15:19.017>the <00:15:19.105>music <00:15:19.192>is, <00:15:19.280>uh,

261
00:15:22.680 --> 00:15:26.400
<00:15:22.680>so <00:15:22.787>you <00:15:22.895>can <00:15:23.003>only <00:15:23.110>really <00:15:23.218>use <00:15:23.326>them <00:15:23.433>when <00:15:23.541>you <00:15:23.649>have <00:15:23.756>an <00:15:23.864>expert <00:15:23.972>team, <00:15:24.079>right?

262
00:15:26.420 --> 00:15:30.160
<00:15:26.420>But <00:15:26.520>nobody <00:15:26.620>in <00:15:26.719>the <00:15:26.819>web <00:15:26.920>field <00:15:27.020>has <00:15:27.120>that <00:15:27.219>because <00:15:27.319>we <00:15:27.420>are <00:15:27.520>mostly <00:15:27.620>using <00:15:27.719>very <00:15:27.819>different

263
00:15:30.400 --> 00:15:31.233
<00:15:30.400>languages, <00:15:31.149>right?

264
00:15:32.380 --> 00:15:36.040
<00:15:32.380>And <00:15:32.480>that <00:15:32.580>means <00:15:32.680>that <00:15:32.780>a <00:15:32.880>certain <00:15:32.980>level <00:15:33.080>of <00:15:33.180>performance <00:15:33.280>and <00:15:33.380>efficiency <00:15:33.480>is <00:15:33.580>sort <00:15:33.680>of <00:15:33.780>out

265
00:15:36.040 --> 00:15:38.000
<00:15:36.040>of <00:15:36.319>reach <00:15:36.599>for <00:15:36.880>those <00:15:37.160>teams, <00:15:37.439>right?

266
00:15:38.780 --> 00:15:43.120
<00:15:38.780>Andrus <00:15:38.880>came <00:15:38.980>along <00:15:39.079>and <00:15:39.180>sort <00:15:39.280>of <00:15:39.380>allows <00:15:39.480>us <00:15:39.579>sort <00:15:39.680>of <00:15:39.780>to <00:15:39.880>reach <00:15:39.980>those <00:15:40.079>levels <00:15:40.180>of

267
00:15:43.120 --> 00:15:47.840
<00:15:43.120>performance <00:15:43.295>and <00:15:43.470>efficiency <00:15:43.645>while <00:15:43.820>protecting <00:15:43.995>us <00:15:44.170>from <00:15:44.345>hurting <00:15:44.520>ourselves,

268
00:15:47.840 --> 00:15:52.240
<00:15:47.840>right? <00:15:48.015>Mainly <00:15:48.190>via <00:15:48.365>the <00:15:48.540>ownership <00:15:48.715>system <00:15:48.890>that <00:15:49.065>allows <00:15:49.240>the,

269
00:15:53.420 --> 00:15:54.320
<00:15:53.420>the <00:15:53.825>compiled <00:15:54.230>time.

270
00:15:54.320 --> 00:15:58.720
<00:15:54.320>Memory <00:15:54.495>management <00:15:54.670>and <00:15:54.845>performance <00:15:55.020>and <00:15:55.195>efficiency <00:15:55.370>aren't <00:15:55.545>only <00:15:55.720>relevant.

271
00:15:58.720 --> 00:16:00.800
<00:15:58.720>So <00:15:58.920>web <00:15:59.120>server <00:15:59.320>could <00:15:59.520>deliver <00:15:59.720>responses <00:15:59.920>faster, <00:16:00.120>right?

272
00:16:00.800 --> 00:16:05.240
<00:16:00.800>Having <00:16:00.893>a <00:16:00.986>server <00:16:01.079>that <00:16:01.173>only <00:16:01.266>means <00:16:01.359>one <00:16:01.453>10th <00:16:01.546>of <00:16:01.640>the <00:16:01.733>time <00:16:01.826>to <00:16:01.920>respond <00:16:02.013>to <00:16:02.106>a <00:16:02.199>request

273
00:16:05.550 --> 00:16:10.160
<00:16:05.550>also <00:16:05.643>means <00:16:05.736>we <00:16:05.829>can <00:16:05.923>respond <00:16:06.016>to <00:16:06.109>the <00:16:06.203>same <00:16:06.296>number <00:16:06.390>of <00:16:06.483>requests <00:16:06.576>with <00:16:06.670>one <00:16:06.763>10th <00:16:06.856>of <00:16:06.949>the

274
00:16:10.160 --> 00:16:12.120
<00:16:10.160>servers, <00:16:10.334>right? <00:16:10.510>Which <00:16:10.685>is <00:16:10.860>a <00:16:11.035>bit <00:16:11.209>of <00:16:11.385>a <00:16:11.560>simplification,

275
00:16:12.140 --> 00:16:17.040
<00:16:12.140>but <00:16:12.240>to <00:16:12.340>get <00:16:12.439>the <00:16:12.540>idea <00:16:12.640>right <00:16:12.740>and <00:16:12.840>being <00:16:12.939>able <00:16:13.040>to <00:16:13.140>serve <00:16:13.240>the <00:16:13.340>same <00:16:13.439>number <00:16:13.540>of

276
00:16:17.040 --> 00:16:21.760
<00:16:17.040>requests <00:16:17.147>with <00:16:17.255>one <00:16:17.363>10th <00:16:17.470>of <00:16:17.578>the <00:16:17.686>servers <00:16:17.793>also <00:16:17.901>means <00:16:18.009>one <00:16:18.116>10th <00:16:18.224>of <00:16:18.332>the <00:16:18.439>hosting

277
00:16:21.760 --> 00:16:24.880
<00:16:21.760>request, <00:16:21.876>we <00:16:21.993>only <00:16:22.110>have <00:16:22.226>to <00:16:22.343>pay <00:16:22.460>for <00:16:22.576>one <00:16:22.693>10th <00:16:22.810>of <00:16:22.926>the <00:16:23.043>servers, <00:16:23.160>right?

278
00:16:25.220 --> 00:16:27.560
<00:16:25.220>And <00:16:25.420>that <00:16:25.620>can <00:16:25.820>make <00:16:26.020>a <00:16:26.220>substantial <00:16:26.420>difference. <00:16:26.620>Actually,

279
00:16:27.570 --> 00:16:30.880
<00:16:27.570>cloud <00:16:27.725>hosting <00:16:27.881>is <00:16:28.036>really <00:16:28.192>nice, <00:16:28.347>but <00:16:28.503>it's <00:16:28.658>not <00:16:28.814>cheap, <00:16:28.970>right?

280
00:16:30.900 --> 00:16:33.640
<00:16:30.900>And <00:16:31.055>if <00:16:31.211>you <00:16:31.366>can't <00:16:31.522>switch <00:16:31.677>off <00:16:31.833>90% <00:16:31.988>of <00:16:32.144>your <00:16:32.300>servers,

281
00:16:34.070 --> 00:16:38.240
<00:16:34.070>that <00:16:34.177>can <00:16:34.285>make <00:16:34.393>a <00:16:34.500>difference <00:16:34.608>of <00:16:34.716>hundreds <00:16:34.823>of <00:16:34.931>thousands <00:16:35.039>of <00:16:35.146>euros <00:16:35.254>for, <00:16:35.362>you <00:16:35.470>know,

282
00:16:38.240 --> 00:16:43.240
<00:16:38.240>even <00:16:38.367>small <00:16:38.494>to <00:16:38.621>mid-size <00:16:38.749>products <00:16:38.876>and <00:16:39.003>companies <00:16:39.130>and <00:16:39.258>these <00:16:39.385>savings <00:16:39.512>are <00:16:39.640>real,

283
00:16:43.240 --> 00:16:46.800
<00:16:43.240>right? <00:16:43.367>Uh, <00:16:43.494>uh, <00:16:43.621>here's <00:16:43.749>a <00:16:43.876>bit <00:16:44.003>of <00:16:44.130>a <00:16:44.258>random <00:16:44.385>quote <00:16:44.512>from <00:16:44.640>Reddit,

284
00:16:47.210 --> 00:16:49.280
<00:16:47.210>which <00:16:47.443>I <00:16:47.676>admit <00:16:47.910>is <00:16:48.143>no <00:16:48.376>scientific <00:16:48.610>source,

285
00:16:49.380 --> 00:16:52.640
<00:16:49.380>but <00:16:49.555>the <00:16:49.730>numbers <00:16:49.905>they <00:16:50.080>mention <00:16:50.255>here <00:16:50.430>are <00:16:50.605>representative, <00:16:50.780>right?

286
00:16:52.640 --> 00:16:57.120
<00:16:52.640>They <00:16:52.733>say <00:16:52.826>they <00:16:52.920>can <00:16:53.013>fit <00:16:53.106>four <00:16:53.199>rust <00:16:53.293>services <00:16:53.386>on <00:16:53.480>a <00:16:53.573>note <00:16:53.666>that <00:16:53.760>fit <00:16:53.853>one <00:16:53.946>Python <00:16:54.040>service

287
00:16:57.120 --> 00:16:57.760
<00:16:57.120>before, <00:16:57.696>right?

288
00:16:57.760 --> 00:17:02.560
<00:16:57.760>And <00:16:57.867>each <00:16:57.975>of <00:16:58.083>the <00:16:58.190>Rust <00:16:58.298>services <00:16:58.406>achieve <00:16:58.513>14 <00:16:58.621>times <00:16:58.729>the <00:16:58.836>throughput <00:16:58.944>of <00:16:59.052>their <00:16:59.160>Python

289
00:17:03.080 --> 00:17:05.840
<00:17:03.080>services, <00:17:03.220>right? <00:17:03.360>So <00:17:03.500>they <00:17:03.640>can <00:17:03.780>switch <00:17:03.920>off, <00:17:04.060>I <00:17:04.200>don't <00:17:04.340>know, <00:17:04.480>a,

290
00:17:06.040 --> 00:17:10.760
<00:17:06.040>a <00:17:06.147>vast <00:17:06.255>amount <00:17:06.363>of <00:17:06.470>servers, <00:17:06.578>right? <00:17:06.686>And <00:17:06.793>we <00:17:06.901>are <00:17:07.009>not <00:17:07.116>only <00:17:07.224>saving <00:17:07.332>money <00:17:07.440>here,

291
00:17:10.980 --> 00:17:15.800
<00:17:10.980>but <00:17:11.079>of <00:17:11.180>course <00:17:11.280>only <00:17:11.380>using <00:17:11.480>one <00:17:11.579>10th <00:17:11.680>of <00:17:11.780>the <00:17:11.880>servers <00:17:11.980>also <00:17:12.079>means <00:17:12.180>we're <00:17:12.280>only <00:17:12.380>using

292
00:17:15.860 --> 00:17:17.520
<00:17:15.859>one <00:17:16.139>10th <00:17:16.419>of <00:17:16.699>the <00:17:16.979>energy, <00:17:17.260>right?

293
00:17:17.620 --> 00:17:20.760
<00:17:17.619>And <00:17:17.727>I <00:17:17.835>think <00:17:17.943>sort <00:17:18.050>of <00:17:18.158>that's <00:17:18.266>something <00:17:18.373>we <00:17:18.481>should <00:17:18.589>all <00:17:18.696>care <00:17:18.804>about <00:17:18.912>as <00:17:19.020>well,

294
00:17:20.760 --> 00:17:24.290
<00:17:20.760>since <00:17:21.109>running <00:17:21.460>data <00:17:21.810>centers, <00:17:22.160>uh,

295
00:17:24.290 --> 00:17:27.410
<00:17:24.290>since <00:17:24.490>running <00:17:24.690>data <00:17:24.889>centers <00:17:25.089>on <00:17:25.290>renewables <00:17:25.490>is <00:17:25.690>good,

296
00:17:27.410 --> 00:17:29.930
<00:17:27.410>but <00:17:27.550>the <00:17:27.690>greenest <00:17:27.830>energy <00:17:27.970>is <00:17:28.110>the <00:17:28.250>energy <00:17:28.390>we <00:17:28.530>don't <00:17:28.670>use, <00:17:28.810>right?

297
00:17:29.950 --> 00:17:34.210
<00:17:29.950>And <00:17:30.050>there <00:17:30.150>would <00:17:30.250>be <00:17:30.350>ridiculous <00:17:30.450>now <00:17:30.550>to <00:17:30.650>claim <00:17:30.750>that <00:17:30.850>Rust <00:17:30.950>is <00:17:31.050>gonna <00:17:31.150>solve <00:17:31.250>like <00:17:31.350>the

298
00:17:34.210 --> 00:17:36.290
<00:17:34.210>climate <00:17:34.490>crisis <00:17:34.770>or <00:17:35.050>whatever, <00:17:35.330>but <00:17:35.610>it's,

299
00:17:36.520 --> 00:17:38.730
<00:17:36.520>it's <00:17:36.720>definitely <00:17:36.920>something <00:17:37.120>you <00:17:37.320>want <00:17:37.520>to <00:17:37.720>consider, <00:17:37.920>right?

300
00:17:38.830 --> 00:17:42.330
<00:17:38.830>If <00:17:38.929>we <00:17:39.030>can <00:17:39.129>get <00:17:39.230>the <00:17:39.330>same <00:17:39.429>output <00:17:39.530>for <00:17:39.629>less <00:17:39.730>input, <00:17:39.830>that's <00:17:39.929>a <00:17:40.030>good <00:17:40.129>thing, <00:17:40.230>right?

301
00:17:42.390 --> 00:17:46.490
<00:17:42.390>And <00:17:42.517>it, <00:17:42.644>it <00:17:42.771>should <00:17:42.899>play <00:17:43.026>a <00:17:43.153>role <00:17:43.280>in <00:17:43.408>sort <00:17:43.535>of <00:17:43.662>decision <00:17:43.790>making.

302
00:17:47.190 --> 00:17:51.320
<00:17:47.190>Uh, <00:17:47.290>so <00:17:47.390>the <00:17:47.490>performance <00:17:47.590>and <00:17:47.690>efficiency <00:17:47.790>that <00:17:47.890>Rust <00:17:47.990>comes <00:17:48.090>with <00:17:48.190>is <00:17:48.290>one <00:17:48.390>good <00:17:48.490>reason <00:17:48.590>I

303
00:17:51.320 --> 00:17:52.920
<00:17:51.320>think <00:17:51.495>to <00:17:51.669>care <00:17:51.845>about <00:17:52.020>Rust <00:17:52.195>also <00:17:52.370>on <00:17:52.544>the <00:17:52.720>web.

304
00:17:52.920 --> 00:17:55.440
<00:17:52.920>But <00:17:53.095>there's <00:17:53.270>another <00:17:53.445>reason <00:17:53.620>that's <00:17:53.795>often <00:17:53.970>a <00:17:54.145>bit <00:17:54.320>overlooked,

305
00:17:56.090 --> 00:18:00.440
<00:17:56.090>which <00:17:56.206>is <00:17:56.323>the <00:17:56.439>reliability <00:17:56.556>and <00:17:56.673>maintainability <00:17:56.790>gains <00:17:56.906>that <00:17:57.023>we <00:17:57.139>get <00:17:57.256>from <00:17:57.373>Rust <00:17:57.490>Strong

306
00:18:00.440 --> 00:18:05.080
<00:18:00.440>type <00:18:00.547>system. <00:18:00.655>Uh, <00:18:00.763>so <00:18:00.870>let's <00:18:00.978>look <00:18:01.086>at <00:18:01.193>some <00:18:01.301>typical <00:18:01.409>code <00:18:01.516>from <00:18:01.624>Web <00:18:01.732>app <00:18:01.840>project.

307
00:18:05.380 --> 00:18:10.000
<00:18:05.380>And <00:18:05.487>if <00:18:05.595>you're <00:18:05.703>are <00:18:05.810>not <00:18:05.918>familiar, <00:18:06.026>uh, <00:18:06.133>this <00:18:06.241>is <00:18:06.349>Rails <00:18:06.456>here, <00:18:06.564>it's <00:18:06.672>pretty <00:18:06.780>neat,

308
00:18:10.110 --> 00:18:13.880
<00:18:10.110>like <00:18:10.209>it's <00:18:10.310>expressive <00:18:10.409>writing <00:18:10.510>code <00:18:10.610>like <00:18:10.709>this, <00:18:10.810>we <00:18:10.909>can <00:18:11.010>sort <00:18:11.110>of <00:18:11.209>reach <00:18:11.310>a <00:18:11.409>goal <00:18:11.510>fast,

309
00:18:13.980 --> 00:18:18.200
<00:18:13.980>but <00:18:14.087>there's <00:18:14.195>also <00:18:14.303>a <00:18:14.410>number <00:18:14.518>of <00:18:14.626>problems, <00:18:14.733>right? <00:18:14.841>We <00:18:14.949>can <00:18:15.056>see <00:18:15.164>the <00:18:15.272>user's <00:18:15.380>attributes,

310
00:18:18.300 --> 00:18:22.240
<00:18:18.300>but <00:18:18.393>sort <00:18:18.486>of <00:18:18.580>there <00:18:18.673>are <00:18:18.766>no <00:18:18.860>rules <00:18:18.953>there. <00:18:19.046>What <00:18:19.139>values <00:18:19.233>are <00:18:19.326>allowed <00:18:19.419>and <00:18:19.513>what <00:18:19.606>can, <00:18:19.700>and,

311
00:18:22.240 --> 00:18:25.840
<00:18:22.240>and <00:18:22.367>what <00:18:22.494>combinations <00:18:22.621>or <00:18:22.749>what <00:18:22.876>can <00:18:23.003>be <00:18:23.130>expected <00:18:23.258>to <00:18:23.385>be <00:18:23.512>set, <00:18:23.640>uh,

312
00:18:25.840 --> 00:18:29.320
<00:18:25.840>to <00:18:25.967>be <00:18:26.094>set <00:18:26.221>or <00:18:26.349>not <00:18:26.476>set <00:18:26.603>in <00:18:26.730>particular <00:18:26.858>in <00:18:26.985>particular <00:18:27.112>scenarios, <00:18:27.240>right?

313
00:18:29.320 --> 00:18:33.680
<00:18:29.320>So <00:18:29.419>for <00:18:29.520>example, <00:18:29.620>if <00:18:29.720>active <00:18:29.820>is <00:18:29.919>true, <00:18:30.020>activation <00:18:30.120>date <00:18:30.220>must <00:18:30.320>probably <00:18:30.419>be <00:18:30.520>set <00:18:30.620>as <00:18:30.720>well,

314
00:18:33.680 --> 00:18:35.280
<00:18:33.680>right? <00:18:33.960>And <00:18:34.240>if <00:18:34.520>active <00:18:34.800>as <00:18:35.080>false,

315
00:18:35.380 --> 00:18:39.160
<00:18:35.380>we <00:18:35.487>can <00:18:35.595>assume <00:18:35.703>activation <00:18:35.810>date <00:18:35.918>should <00:18:36.026>likely <00:18:36.133>not <00:18:36.241>be <00:18:36.349>set <00:18:36.456>because <00:18:36.564>it <00:18:36.672>wouldn't <00:18:36.780>make

316
00:18:39.160 --> 00:18:39.993
sense.

317
00:18:41.200 --> 00:18:44.700
<00:18:41.200>And <00:18:41.307>now <00:18:41.415>we <00:18:41.523>can <00:18:41.630>look <00:18:41.738>at <00:18:41.846>the <00:18:41.953>activate <00:18:42.061>methods <00:18:42.169>implementation <00:18:42.276>sort <00:18:42.384>of <00:18:42.492>to <00:18:42.600>validate

318
00:18:44.920 --> 00:18:48.740
<00:18:44.920>our <00:18:45.036>assumptions, <00:18:45.153>right? <00:18:45.270>But <00:18:45.386>these <00:18:45.503>things <00:18:45.620>are <00:18:45.736>not <00:18:45.853>encoded <00:18:45.970>in <00:18:46.086>types <00:18:46.203>or, <00:18:46.320>um,

319
00:18:49.080 --> 00:18:51.900
<00:18:49.080>Or <00:18:49.546>um, <00:18:50.013>or, <00:18:50.480>um,

320
00:18:54.410 --> 00:18:57.360
<00:18:54.410>Sorry, <00:18:54.610>but <00:18:54.810>these <00:18:55.010>things <00:18:55.210>are <00:18:55.410>not <00:18:55.610>encoded <00:18:55.810>in,

321
00:18:57.620 --> 00:18:59.930
<00:18:57.620>Uh, <00:18:58.320>in, <00:18:59.020>um,

322
00:19:00.140 --> 00:19:03.290
<00:19:00.140>Interfaces <00:19:00.267>or <00:19:00.394>types, <00:19:00.521>right? <00:19:00.649>So <00:19:00.776>they're <00:19:00.903>implicit <00:19:01.030>in <00:19:01.158>the <00:19:01.285>code <00:19:01.412>base, <00:19:01.540>right?

323
00:19:03.290 --> 00:19:07.250
<00:19:03.290>The <00:19:03.465>signature <00:19:03.639>of <00:19:03.815>the <00:19:03.990>activate <00:19:04.165>method <00:19:04.340>also <00:19:04.514>doesn't, <00:19:04.690>uh,

324
00:19:08.120 --> 00:19:12.970
<00:19:08.120>doesn't <00:19:08.294>say <00:19:08.469>what <00:19:08.645>the <00:19:08.820>argument <00:19:08.995>is <00:19:09.169>exactly <00:19:09.344>right? <00:19:09.520>Uh,

325
00:19:12.970 --> 00:19:14.610
<00:19:12.970>whether <00:19:13.203>it's <00:19:13.436>a <00:19:13.670>date <00:19:13.903>or <00:19:14.136>a <00:19:14.370>timestamp,

326
00:19:14.790 --> 00:19:17.130
<00:19:14.790>if <00:19:14.965>it's <00:19:15.139>a <00:19:15.315>time <00:19:15.490>which <00:19:15.665>time <00:19:15.840>zone <00:19:16.014>would've <00:19:16.190>been.

327
00:19:17.990 --> 00:19:21.530
<00:19:17.990>And <00:19:18.083>then <00:19:18.176>looking <00:19:18.270>at <00:19:18.363>a <00:19:18.456>usage <00:19:18.550>of <00:19:18.643>the <00:19:18.736>method, <00:19:18.830>we <00:19:18.923>don't <00:19:19.016>really <00:19:19.110>know <00:19:19.203>what <00:19:19.296>sort <00:19:19.390>of,

328
00:19:22.190 --> 00:19:25.450
<00:19:22.190>uh, <00:19:22.306>we <00:19:22.423>don't <00:19:22.540>really <00:19:22.656>know <00:19:22.773>whether <00:19:22.890>the <00:19:23.006>method <00:19:23.123>might <00:19:23.240>potentially <00:19:23.356>throw <00:19:23.473>an <00:19:23.590>arrow.

329
00:19:26.270 --> 00:19:28.850
<00:19:26.270>And <00:19:26.425>while <00:19:26.581>Ruby <00:19:26.736>is <00:19:26.892>a <00:19:27.047>bit <00:19:27.203>of <00:19:27.358>an <00:19:27.514>extreme <00:19:27.670>example,

330
00:19:28.900 --> 00:19:32.490
<00:19:28.900>maybe <00:19:29.007>many <00:19:29.115>of <00:19:29.223>these <00:19:29.330>problems <00:19:29.438>can <00:19:29.546>be <00:19:29.653>found <00:19:29.761>in <00:19:29.869>other <00:19:29.976>languages <00:19:30.084>as <00:19:30.192>well, <00:19:30.300>right?

331
00:19:32.490 --> 00:19:35.770
<00:19:32.490>Like <00:19:32.645>in <00:19:32.801>Java <00:19:32.956>or <00:19:33.112>go <00:19:33.267>or <00:19:33.423>whatever. <00:19:33.578>Uh, <00:19:33.734>where <00:19:33.890>we,

332
00:19:36.680 --> 00:19:36.900
Uh,

333
00:19:36.900 --> 00:19:40.500
<00:19:36.900>Where <00:19:37.000>we <00:19:37.100>would <00:19:37.200>also <00:19:37.300>have <00:19:37.400>no <00:19:37.500>way <00:19:37.600>sort <00:19:37.700>of <00:19:37.800>to <00:19:37.900>express <00:19:38.000>those <00:19:38.100>rules <00:19:38.200>around <00:19:38.300>the

334
00:19:40.500 --> 00:19:43.380
<00:19:40.500>combination <00:19:40.780>of <00:19:41.060>active <00:19:41.340>and <00:19:41.620>attri, <00:19:41.900>um,

335
00:19:43.380 --> 00:19:47.660
<00:19:43.380>activation <00:19:43.487>date <00:19:43.595>attributes <00:19:43.703>sort <00:19:43.810>of <00:19:43.918>in <00:19:44.026>the <00:19:44.133>types <00:19:44.241>directly <00:19:44.349>where <00:19:44.456>in <00:19:44.564>Java <00:19:44.672>we <00:19:44.780>can

336
00:19:47.660 --> 00:19:50.620
<00:19:47.660>have <00:19:47.835>nine <00:19:48.010>point <00:19:48.185>exception <00:19:48.360>exceptions <00:19:48.535>like <00:19:48.710>we <00:19:48.885>saw <00:19:49.060>before,

337
00:19:50.680 --> 00:19:52.380
<00:19:50.680>and <00:19:50.880>we <00:19:51.080>cannot <00:19:51.280>really <00:19:51.480>know <00:19:51.680>a <00:19:51.880>development <00:19:52.080>time,

338
00:19:52.380 --> 00:19:54.540
<00:19:52.380>whether <00:19:52.580>method <00:19:52.780>we're <00:19:52.980>calling <00:19:53.180>might <00:19:53.380>throw <00:19:53.580>an <00:19:53.780>error.

339
00:19:55.200 --> 00:19:58.700
<00:19:55.200>And <00:19:55.293>these <00:19:55.386>problems <00:19:55.480>all <00:19:55.573>might <00:19:55.666>seem <00:19:55.760>a <00:19:55.853>bit <00:19:55.946>made <00:19:56.040>up <00:19:56.133>and <00:19:56.226>not <00:19:56.320>too <00:19:56.413>relevant <00:19:56.506>in <00:19:56.600>reality.

340
00:19:58.800 --> 00:20:02.860
<00:19:58.800>And <00:19:58.893>maybe <00:19:58.986>also <00:19:59.080>don't <00:19:59.173>want <00:19:59.266>to <00:19:59.360>let <00:19:59.453>go <00:19:59.546>of <00:19:59.639>sort <00:19:59.733>of <00:19:59.826>your <00:19:59.919>ability <00:20:00.013>to <00:20:00.106>freely <00:20:00.200>express

341
00:20:03.140 --> 00:20:07.460
<00:20:03.140>yourself <00:20:03.247>in <00:20:03.355>a <00:20:03.463>flexible <00:20:03.570>language <00:20:03.678>like <00:20:03.786>this, <00:20:03.893>like <00:20:04.001>DH <00:20:04.109>the <00:20:04.216>creator <00:20:04.324>of <00:20:04.432>Rails, <00:20:04.540>right?

342
00:20:07.520 --> 00:20:11.200
<00:20:07.520>Who <00:20:07.986>seems <00:20:08.453>to, <00:20:08.920>uh,

343
00:20:11.220 --> 00:20:13.320
<00:20:11.220>who <00:20:11.375>seems <00:20:11.531>to <00:20:11.686>think <00:20:11.842>of <00:20:11.997>types <00:20:12.153>as <00:20:12.308>a <00:20:12.464>chore, <00:20:12.620>right?

344
00:20:13.320 --> 00:20:17.000
<00:20:13.320>That <00:20:13.436>take <00:20:13.553>the <00:20:13.669>joy <00:20:13.786>out <00:20:13.903>of <00:20:14.020>programming <00:20:14.136>somehow. <00:20:14.253>And <00:20:14.370>I, <00:20:14.486>to <00:20:14.603>some <00:20:14.720>extent,

345
00:20:17.120 --> 00:20:19.920
<00:20:17.120>I <00:20:17.275>have <00:20:17.431>to <00:20:17.586>say <00:20:17.742>I <00:20:17.897>can <00:20:18.053>relate <00:20:18.208>to <00:20:18.364>this <00:20:18.520>feeling,

346
00:20:20.020 --> 00:20:23.880
<00:20:20.020>but <00:20:20.107>the <00:20:20.195>problem <00:20:20.282>in <00:20:20.370>reality <00:20:20.457>is <00:20:20.545>the <00:20:20.632>longer <00:20:20.720>you <00:20:20.807>work <00:20:20.895>on <00:20:20.982>the <00:20:21.070>app <00:20:21.157>and <00:20:21.245>the <00:20:21.332>larger <00:20:21.420>your

347
00:20:23.880 --> 00:20:27.560
<00:20:23.880>code <00:20:24.007>base <00:20:24.134>becomes <00:20:24.261>and <00:20:24.389>the <00:20:24.516>larger <00:20:24.643>the <00:20:24.770>team <00:20:24.898>working <00:20:25.025>on <00:20:25.152>it <00:20:25.280>becomes,

348
00:20:27.700 --> 00:20:31.360
<00:20:27.700>the <00:20:27.807>more <00:20:27.915>you <00:20:28.023>start <00:20:28.130>to <00:20:28.238>feel <00:20:28.346>the <00:20:28.453>impact <00:20:28.561>of <00:20:28.669>those <00:20:28.776>problems <00:20:28.884>mentioned <00:20:28.992>before, <00:20:29.100>right?

349
00:20:31.380 --> 00:20:35.560
<00:20:31.380>You <00:20:31.535>don't <00:20:31.691>have <00:20:31.846>a <00:20:32.002>small <00:20:32.157>closely, <00:20:32.313>uh, <00:20:32.468>sort <00:20:32.624>of, <00:20:32.780>uh,

350
00:20:36.000 --> 00:20:37.510
<00:20:36.000>A, <00:20:37.359>a

351
00:20:38.630 --> 00:20:39.590
<00:20:38.630>A <00:20:38.846>small <00:20:39.062>sort <00:20:39.278>of <00:20:39.494>close,

352
00:20:39.590 --> 00:20:44.190
<00:20:39.590>coherent <00:20:39.706>team <00:20:39.823>anymore <00:20:39.939>where <00:20:40.056>everybody <00:20:40.173>understands <00:20:40.290>all <00:20:40.406>of <00:20:40.523>the <00:20:40.639>aspects <00:20:40.756>sort <00:20:40.873>of <00:20:40.990>in

353
00:20:44.190 --> 00:20:47.480
<00:20:44.190>the <00:20:44.290>application <00:20:44.390>and <00:20:44.490>is <00:20:44.590>aware <00:20:44.690>of <00:20:44.790>all <00:20:44.890>of <00:20:44.990>those <00:20:45.090>concepts <00:20:45.190>and <00:20:45.290>rules <00:20:45.390>that <00:20:45.490>are <00:20:45.590>somehow

354
00:20:47.480 --> 00:20:50.400
<00:20:47.480>present <00:20:47.635>in <00:20:47.791>the <00:20:47.946>code, <00:20:48.102>but <00:20:48.257>only <00:20:48.413>implicitly, <00:20:48.568>right? <00:20:48.724>Sort <00:20:48.880>of,

355
00:20:50.400 --> 00:20:53.400
<00:20:50.400>you <00:20:50.507>will <00:20:50.615>need <00:20:50.723>to <00:20:50.830>read <00:20:50.938>through <00:20:51.046>classes <00:20:51.153>and <00:20:51.261>methods <00:20:51.369>and <00:20:51.476>tests <00:20:51.584>to <00:20:51.692>sort <00:20:51.800>of

356
00:20:53.690 --> 00:20:55.400
<00:20:53.690>understand <00:20:53.970>all <00:20:54.250>of <00:20:54.530>those <00:20:54.810>words, <00:20:55.090>right?

357
00:20:55.400 --> 00:20:57.840
<00:20:55.400>And <00:20:55.516>the <00:20:55.633>bigger <00:20:55.750>the <00:20:55.866>code <00:20:55.983>base <00:20:56.100>becomes <00:20:56.216>and <00:20:56.333>the <00:20:56.450>bigger <00:20:56.566>the <00:20:56.683>team <00:20:56.800>becomes,

358
00:20:57.840 --> 00:21:01.600
<00:20:57.840>the <00:20:57.967>more <00:20:58.094>unrealistic <00:20:58.221>that <00:20:58.349>task <00:20:58.476>becomes, <00:20:58.603>right? <00:20:58.730>And <00:20:58.858>the <00:20:58.985>harder <00:20:59.112>it <00:20:59.240>becomes,

359
00:21:01.600 --> 00:21:04.240
<00:21:01.600>in <00:21:01.727>particular <00:21:01.854>for <00:21:01.981>new <00:21:02.109>joiners <00:21:02.236>to <00:21:02.363>work <00:21:02.490>on <00:21:02.618>the <00:21:02.745>code <00:21:02.872>base, <00:21:03.000>right?

360
00:21:04.780 --> 00:21:06.320
<00:21:04.780>And <00:21:05.126>also <00:21:05.473>likely <00:21:05.819>your, <00:21:06.166>um,

361
00:21:06.320 --> 00:21:10.040
<00:21:06.320>error <00:21:06.427>rates <00:21:06.535>would <00:21:06.643>go <00:21:06.750>up <00:21:06.858>as <00:21:06.966>people <00:21:07.073>make <00:21:07.181>mistakes <00:21:07.289>since <00:21:07.396>they're <00:21:07.504>not <00:21:07.612>familiar <00:21:07.720>with

362
00:21:10.040 --> 00:21:13.720
<00:21:10.040>all <00:21:10.133>of <00:21:10.226>these <00:21:10.320>implicit <00:21:10.413>sort <00:21:10.506>of <00:21:10.600>rules <00:21:10.693>that <00:21:10.786>are <00:21:10.879>in <00:21:10.973>the <00:21:11.066>code <00:21:11.159>base. <00:21:11.253>So <00:21:11.346>there's <00:21:11.440>an,

363
00:21:15.460 --> 00:21:19.480
<00:21:15.460>so <00:21:15.567>there's <00:21:15.675>an <00:21:15.783>immense <00:21:15.890>value <00:21:15.998>in <00:21:16.106>having <00:21:16.213>types <00:21:16.321>and <00:21:16.429>having <00:21:16.536>a <00:21:16.644>rich <00:21:16.752>and <00:21:16.860>expressive

364
00:21:19.480 --> 00:21:22.960
<00:21:19.480>type <00:21:19.573>system, <00:21:19.666>right? <00:21:19.760>So <00:21:19.853>looking <00:21:19.946>at <00:21:20.040>the <00:21:20.133>same <00:21:20.226>piece <00:21:20.320>of <00:21:20.413>code <00:21:20.506>as <00:21:20.600>before, <00:21:20.693>but <00:21:20.786>in <00:21:20.880>rust,

365
00:21:23.450 --> 00:21:26.360
<00:21:23.450>first <00:21:23.566>of <00:21:23.683>all, <00:21:23.800>for <00:21:23.916>the <00:21:24.033>user <00:21:24.150>model, <00:21:24.266>we <00:21:24.383>can <00:21:24.500>use <00:21:24.616>an <00:21:24.733>enum <00:21:24.850>with,

366
00:21:28.640 --> 00:21:31.480
<00:21:28.640>uh, <00:21:28.990>with, <00:21:29.340>um, <00:21:29.690>associated <00:21:30.040>data.

367
00:21:32.140 --> 00:21:35.600
<00:21:32.140>And <00:21:32.256>so <00:21:32.373>this <00:21:32.490>way <00:21:32.606>it's <00:21:32.723>completely <00:21:32.840>clear <00:21:32.956>what <00:21:33.073>inactive, <00:21:33.190>inactive <00:21:33.306>users <00:21:33.423>look <00:21:33.540>like.

368
00:21:35.600 --> 00:21:39.760
<00:21:35.600>Inactive <00:21:35.716>users <00:21:35.833>don't <00:21:35.949>even <00:21:36.066>have <00:21:36.183>the <00:21:36.300>same <00:21:36.416>properties <00:21:36.533>of <00:21:36.649>as <00:21:36.766>active <00:21:36.883>users, <00:21:37.000>right?

369
00:21:40.220 --> 00:21:44.400
<00:21:40.220>And <00:21:40.313>we <00:21:40.406>even <00:21:40.500>have <00:21:40.593>the <00:21:40.686>time <00:21:40.780>zone <00:21:40.873>that <00:21:40.966>we <00:21:41.060>expect <00:21:41.153>the <00:21:41.246>activation <00:21:41.340>date <00:21:41.433>to <00:21:41.526>be <00:21:41.620>in,

370
00:21:44.400 --> 00:21:48.440
<00:21:44.400>right? <00:21:44.527>In <00:21:44.654>the <00:21:44.781>type, <00:21:44.909>uh, <00:21:45.036>so <00:21:45.163>we <00:21:45.290>are <00:21:45.418>clearly <00:21:45.545>communicating <00:21:45.672>those <00:21:45.800>rules.

371
00:21:48.440 --> 00:21:51.760
<00:21:48.440>They <00:21:48.567>were <00:21:48.694>all <00:21:48.821>implicit <00:21:48.949>in <00:21:49.076>the <00:21:49.203>rails <00:21:49.330>example. <00:21:49.458>And <00:21:49.585>because <00:21:49.712>of <00:21:49.840>that,

372
00:21:51.790 --> 00:21:54.480
<00:21:51.790>it's <00:21:51.930>much <00:21:52.070>easier <00:21:52.210>and <00:21:52.350>more, <00:21:52.490>uh, <00:21:52.629>to <00:21:52.770>work <00:21:52.909>with <00:21:53.050>the <00:21:53.190>code.

373
00:21:54.480 --> 00:21:57.240
<00:21:54.480>The <00:21:54.620>code <00:21:54.760>is <00:21:54.900>much <00:21:55.040>more <00:21:55.180>approachable <00:21:55.320>in <00:21:55.460>particular <00:21:55.600>for <00:21:55.740>new <00:21:55.880>joiners.

374
00:21:58.660 --> 00:22:02.760
<00:21:58.660>And <00:21:58.767>then <00:21:58.875>in <00:21:58.983>the <00:21:59.090>activate <00:21:59.198>method, <00:21:59.306>we <00:21:59.413>know <00:21:59.521>exactly <00:21:59.629>what <00:21:59.736>the <00:21:59.844>argument <00:21:59.952>is, <00:22:00.060>uh,

375
00:22:02.760 --> 00:22:06.600
<00:22:02.760>right, <00:22:02.915>because <00:22:03.071>it's <00:22:03.226>obviously <00:22:03.382>it's <00:22:03.537>type. <00:22:03.693>We <00:22:03.848>also <00:22:04.004>have <00:22:04.160>the,

376
00:22:07.580 --> 00:22:12.560
<00:22:07.580>the, <00:22:07.735>um, <00:22:07.891>uh, <00:22:08.046>the <00:22:08.202>time <00:22:08.357>zone <00:22:08.513>in <00:22:08.668>the, <00:22:08.824>in <00:22:08.980>the,

377
00:22:12.860 --> 00:22:14.160
<00:22:12.860>um, <00:22:13.445>interface <00:22:14.030>again.

378
00:22:14.820 --> 00:22:18.760
<00:22:14.820>And <00:22:14.927>we <00:22:15.035>also <00:22:15.143>know <00:22:15.250>that <00:22:15.358>activation <00:22:15.466>date <00:22:15.573>will <00:22:15.681>always <00:22:15.789>have <00:22:15.896>a <00:22:16.004>value <00:22:16.112>when <00:22:16.220>this

379
00:22:19.040 --> 00:22:21.160
<00:22:19.040>function <00:22:19.389>runs <00:22:19.740>by, <00:22:20.090>uh, <00:22:20.440>right?

380
00:22:21.160 --> 00:22:25.400
<00:22:21.160>Because <00:22:21.253>if <00:22:21.346>there <00:22:21.440>was <00:22:21.533>sort <00:22:21.626>of <00:22:21.720>a <00:22:21.813>possibility <00:22:21.906>for <00:22:22.000>the <00:22:22.093>activation <00:22:22.186>date <00:22:22.280>not <00:22:22.373>to <00:22:22.466>have <00:22:22.560>a

381
00:22:25.400 --> 00:22:26.680
<00:22:25.400>value <00:22:25.630>at <00:22:25.860>the <00:22:26.091>place <00:22:26.321>where <00:22:26.552>we,

382
00:22:29.810 --> 00:22:34.310
<00:22:29.810>at <00:22:29.926>the <00:22:30.043>place <00:22:30.159>where <00:22:30.276>we, <00:22:30.393>uh, <00:22:30.510>uh, <00:22:30.626>uh, <00:22:30.743>where <00:22:30.860>we <00:22:30.976>sort <00:22:31.093>of, <00:22:31.210>uh,

383
00:22:35.010 --> 00:22:37.750
<00:22:35.010>uh, <00:22:35.137>where <00:22:35.264>we <00:22:35.391>calculate <00:22:35.519>it, <00:22:35.646>right? <00:22:35.773>Then <00:22:35.900>it <00:22:36.028>would <00:22:36.155>be <00:22:36.282>an <00:22:36.410>option,

384
00:22:37.770 --> 00:22:41.510
<00:22:37.770>but <00:22:38.003>we <00:22:38.236>couldn't <00:22:38.470>assign <00:22:38.703>the <00:22:38.936>option, <00:22:39.170>uh,

385
00:22:41.530 --> 00:22:46.470
<00:22:41.530>to <00:22:41.685>the <00:22:41.841>type <00:22:41.996>that <00:22:42.152>is <00:22:42.307>in <00:22:42.463>the <00:22:42.618>functions, <00:22:42.774>um, <00:22:42.930>interface,

386
00:22:46.470 --> 00:22:49.990
<00:22:46.470>right? <00:22:46.557>So <00:22:46.645>we <00:22:46.732>would <00:22:46.820>have <00:22:46.907>to <00:22:46.995>handle <00:22:47.082>both <00:22:47.170>cases <00:22:47.257>and <00:22:47.345>we <00:22:47.432>could <00:22:47.520>only <00:22:47.607>even <00:22:47.695>get <00:22:47.782>to <00:22:47.870>this

387
00:22:50.230 --> 00:22:54.150
<00:22:50.230>function <00:22:50.357>in <00:22:50.484>the <00:22:50.611>sum <00:22:50.739>case, <00:22:50.866>not <00:22:50.993>in <00:22:51.120>the <00:22:51.248>none <00:22:51.375>case. <00:22:51.502>Uh, <00:22:51.630>the,

388
00:22:54.150 --> 00:22:57.590
<00:22:54.150>the <00:22:54.266>function <00:22:54.383>signature <00:22:54.500>also <00:22:54.616>makes <00:22:54.733>clear <00:22:54.850>that <00:22:54.966>there <00:22:55.083>can <00:22:55.200>be <00:22:55.316>an <00:22:55.433>error, <00:22:55.550>right?

389
00:22:57.790 --> 00:23:00.230
<00:22:57.790>There <00:22:57.990>can <00:22:58.190>be <00:22:58.389>a <00:22:58.590>database <00:22:58.790>error. <00:22:58.990>Um, <00:22:59.190>and,

390
00:23:00.890 --> 00:23:05.070
<00:23:00.890>and <00:23:00.990>that's <00:23:01.090>clear <00:23:01.190>sort <00:23:01.290>of <00:23:01.390>because <00:23:01.490>we <00:23:01.590>return <00:23:01.690>the <00:23:01.790>result <00:23:01.890>inam <00:23:01.990>with <00:23:02.090>a <00:23:02.190>db <00:23:02.290>error

391
00:23:05.840 --> 00:23:10.830
<00:23:05.840>error, <00:23:05.980>uh, <00:23:06.120>struck, <00:23:06.260>right? <00:23:06.399>So <00:23:06.540>that <00:23:06.679>all <00:23:06.820>is, <00:23:06.959>is <00:23:07.100>clearly <00:23:07.240>communicated,

392
00:23:10.970 --> 00:23:14.950
<00:23:10.970>um, <00:23:11.077>in <00:23:11.185>the <00:23:11.293>code <00:23:11.400>base. <00:23:11.508>So <00:23:11.616>obviously <00:23:11.723>here <00:23:11.831>we <00:23:11.939>have <00:23:12.046>a <00:23:12.154>rather <00:23:12.262>simple <00:23:12.370>example,

393
00:23:15.050 --> 00:23:18.150
<00:23:15.050>but <00:23:15.225>I <00:23:15.399>think <00:23:15.575>it <00:23:15.750>illustrates <00:23:15.925>the <00:23:16.100>point, <00:23:16.274>right? <00:23:16.450>Uh,

394
00:23:19.740 --> 00:23:21.480
<00:23:19.740>the <00:23:19.973>code <00:23:20.206>here <00:23:20.440>is <00:23:20.673>clearly <00:23:20.906>more <00:23:21.140>expressive,

395
00:23:21.480 --> 00:23:25.080
<00:23:21.480>more <00:23:21.620>maintainable <00:23:21.760>and <00:23:21.900>more <00:23:22.040>reliable <00:23:22.180>than <00:23:22.320>the <00:23:22.460>previous <00:23:22.600>rates <00:23:22.740>called <00:23:22.880>nve.

396
00:23:27.940 --> 00:23:31.440
<00:23:27.940>And <00:23:28.056>it <00:23:28.173>also <00:23:28.290>goes <00:23:28.406>far <00:23:28.523>beyond <00:23:28.640>other <00:23:28.756>type <00:23:28.873>languages <00:23:28.990>like <00:23:29.106>Java <00:23:29.223>go <00:23:29.340>even.

397
00:23:32.020 --> 00:23:36.520
<00:23:32.020>So <00:23:32.147>these <00:23:32.274>improvements <00:23:32.401>in <00:23:32.529>in <00:23:32.656>reliability <00:23:32.783>and <00:23:32.910>maintainability <00:23:33.038>are <00:23:33.165>what <00:23:33.292>I <00:23:33.420>believe

398
00:23:36.520 --> 00:23:39.320
<00:23:36.520>sort <00:23:36.753>of <00:23:36.986>the <00:23:37.220>second <00:23:37.453>reason <00:23:37.686>what, <00:23:37.920>uh,

399
00:23:39.320 --> 00:23:42.360
<00:23:39.320>the <00:23:39.436>second <00:23:39.553>reason <00:23:39.669>why <00:23:39.786>you <00:23:39.903>wanna <00:23:40.020>consider <00:23:40.136>us <00:23:40.253>even <00:23:40.370>on <00:23:40.486>the <00:23:40.603>web, <00:23:40.720>right?

400
00:23:42.580 --> 00:23:46.240
<00:23:42.580>And <00:23:42.687>maybe <00:23:42.795>the <00:23:42.903>reason <00:23:43.010>that's <00:23:43.118>in <00:23:43.226>many <00:23:43.333>cases <00:23:43.441>more <00:23:43.549>relevant <00:23:43.656>than <00:23:43.764>the <00:23:43.872>performance <00:23:43.980>and

401
00:23:46.240 --> 00:23:50.360
<00:23:46.240>efficiency <00:23:46.440>gains. <00:23:46.640>Uh, <00:23:46.840>so <00:23:47.040>now <00:23:47.240>having <00:23:47.440>the, <00:23:47.640>uh,

402
00:23:50.360 --> 00:23:52.040
<00:23:50.360>the <00:23:50.639>why <00:23:50.919>and <00:23:51.199>the <00:23:51.479>what <00:23:51.760>established,

403
00:23:52.170 --> 00:23:55.080
<00:23:52.170>let's <00:23:52.297>look <00:23:52.424>at <00:23:52.551>how <00:23:52.679>and <00:23:52.806>where <00:23:52.933>to <00:23:53.060>adopt <00:23:53.188>rust <00:23:53.315>on <00:23:53.442>the <00:23:53.570>web.

404
00:23:55.240 --> 00:23:58.920
<00:23:55.240>I <00:23:55.356>want <00:23:55.473>to <00:23:55.590>talk <00:23:55.706>about <00:23:55.823>some <00:23:55.940>typical <00:23:56.056>use <00:23:56.173>cases <00:23:56.290>and <00:23:56.406>adoption <00:23:56.523>pair. <00:23:56.640>Uh,

405
00:23:58.920 --> 00:24:02.960
<00:23:58.920>so <00:23:59.047>first <00:23:59.174>of <00:23:59.301>all, <00:23:59.429>we've <00:23:59.556>already <00:23:59.683>established <00:23:59.810>that <00:23:59.938>Rust <00:24:00.065>gives <00:24:00.192>you <00:24:00.320>reliability,

406
00:24:03.280 --> 00:24:06.440
<00:24:03.280>maintainability, <00:24:03.435>efficiency <00:24:03.591>and <00:24:03.746>performance, <00:24:03.902>right? <00:24:04.057>So <00:24:04.213>use <00:24:04.368>cases <00:24:04.524>for <00:24:04.680>us.

407
00:24:06.440 --> 00:24:08.720
<00:24:06.440>There <00:24:06.615>are <00:24:06.790>obviously <00:24:06.965>cases <00:24:07.140>where <00:24:07.315>those <00:24:07.490>four <00:24:07.665>are <00:24:07.840>relevant.

408
00:24:09.060 --> 00:24:12.200
<00:24:09.060>Of <00:24:09.167>course <00:24:09.275>you <00:24:09.383>could <00:24:09.490>say <00:24:09.598>those <00:24:09.706>are <00:24:09.813>relevant <00:24:09.921>everywhere <00:24:10.029>and <00:24:10.136>you'd <00:24:10.244>be <00:24:10.352>right, <00:24:10.460>right?

409
00:24:12.220 --> 00:24:14.600
<00:24:12.220>But <00:24:12.347>of <00:24:12.474>course <00:24:12.601>you <00:24:12.729>also <00:24:12.856>don't <00:24:12.983>really <00:24:13.110>get <00:24:13.238>these <00:24:13.365>benefits <00:24:13.492>for <00:24:13.620>free.

410
00:24:14.600 --> 00:24:17.800
<00:24:14.600>There's <00:24:14.800>a <00:24:15.000>cost <00:24:15.199>associated, <00:24:15.399>uh, <00:24:15.600>with <00:24:15.800>using <00:24:16.000>rass.

411
00:24:18.100 --> 00:24:20.600
<00:24:18.100>If <00:24:18.333>you <00:24:18.566>compare <00:24:18.800>RASS <00:24:19.033>to <00:24:19.266>alternative <00:24:19.500>technologies,

412
00:24:20.820 --> 00:24:25.560
<00:24:20.820>you <00:24:20.947>can <00:24:21.074>say <00:24:21.201>you <00:24:21.329>get <00:24:21.456>more <00:24:21.583>value <00:24:21.710>out <00:24:21.838>of <00:24:21.965>all <00:24:22.092>to, <00:24:22.220>uh,

413
00:24:25.560 --> 00:24:29.800
<00:24:25.560>you <00:24:25.676>get <00:24:25.793>more <00:24:25.909>value <00:24:26.026>overall <00:24:26.143>compared <00:24:26.260>to <00:24:26.376>sort <00:24:26.493>of, <00:24:26.610>uh, <00:24:26.726>these <00:24:26.843>alternatives <00:24:26.960>here.

414
00:24:29.800 --> 00:24:32.640
<00:24:29.800>You <00:24:29.955>get <00:24:30.111>better <00:24:30.266>reliability <00:24:30.422>and <00:24:30.577>maintainability <00:24:30.733>as <00:24:30.888>we <00:24:31.044>just <00:24:31.200>saw,

415
00:24:32.640 --> 00:24:35.400
<00:24:32.640>and <00:24:32.767>you <00:24:32.894>get <00:24:33.021>better <00:24:33.149>performance <00:24:33.276>and <00:24:33.403>more <00:24:33.530>stable <00:24:33.658>performance <00:24:33.785>because <00:24:33.912>no <00:24:34.040>garbage

416
00:24:35.400 --> 00:24:40.120
<00:24:35.400>collection, <00:24:35.633>the <00:24:35.866>additional <00:24:36.100>value, <00:24:36.333>uh, <00:24:36.566>actually, <00:24:36.800>uh,

417
00:24:40.120 --> 00:24:41.320
<00:24:40.120>comes <00:24:40.480>at <00:24:40.840>a <00:24:41.199>coastal.

418
00:24:41.380 --> 00:24:46.120
<00:24:41.380>You <00:24:41.487>will <00:24:41.595>initially <00:24:41.703>invest <00:24:41.810>more <00:24:41.918>effort <00:24:42.026>into <00:24:42.133>building <00:24:42.241>a <00:24:42.349>system <00:24:42.456>with <00:24:42.564>Rust <00:24:42.672>than <00:24:42.780>you

419
00:24:46.120 --> 00:24:46.700
<00:24:46.120>will <00:24:46.380>with <00:24:46.642>Go,

420
00:24:46.700 --> 00:24:51.520
<00:24:46.700>or <00:24:46.793>even <00:24:46.886>more <00:24:46.980>so <00:24:47.073>compared <00:24:47.166>to <00:24:47.260>JavaScript <00:24:47.353>or <00:24:47.446>Ruby <00:24:47.540>that <00:24:47.633>are <00:24:47.726>kind <00:24:47.820>of <00:24:47.913>made <00:24:48.006>for <00:24:48.100>getting

421
00:24:51.550 --> 00:24:55.360
<00:24:51.550>results <00:24:51.666>fast, <00:24:51.783>right? <00:24:51.899>Compared <00:24:52.016>to <00:24:52.133>those <00:24:52.250>rust <00:24:52.366>doesn't <00:24:52.483>leave <00:24:52.600>you <00:24:52.716>as <00:24:52.833>much <00:24:52.950>freedom.

422
00:24:55.620 --> 00:24:59.000
<00:24:55.620>And <00:24:55.719>you <00:24:55.820>need <00:24:55.919>to <00:24:56.020>make <00:24:56.120>sure <00:24:56.219>your <00:24:56.320>program <00:24:56.419>passes <00:24:56.520>all <00:24:56.620>of <00:24:56.719>the <00:24:56.820>compilers <00:24:56.919>checks <00:24:57.020>before

423
00:24:59.080 --> 00:25:01.400
<00:24:59.080>you <00:24:59.313>get <00:24:59.546>a <00:24:59.780>working, <00:25:00.013>uh, <00:25:00.246>reside, <00:25:00.480>right?

424
00:25:01.400 --> 00:25:03.800
<00:25:01.400>Plus <00:25:01.555>there's <00:25:01.711>a <00:25:01.866>few <00:25:02.022>mountains <00:25:02.177>you <00:25:02.333>need <00:25:02.488>to <00:25:02.644>climb, <00:25:02.800>uh,

425
00:25:03.800 --> 00:25:05.920
<00:25:03.800>before <00:25:04.033>you're <00:25:04.266>productive <00:25:04.500>with <00:25:04.733>us. <00:25:04.966>For <00:25:05.200>example,

426
00:25:05.980 --> 00:25:08.720
<00:25:05.980>we <00:25:06.155>talked <00:25:06.330>about <00:25:06.505>the <00:25:06.680>ownership <00:25:06.855>system <00:25:07.030>in <00:25:07.205>the <00:25:07.380>beginning,

427
00:25:08.720 --> 00:25:11.840
<00:25:08.720>which <00:25:08.847>takes <00:25:08.974>many <00:25:09.101>people <00:25:09.229>a <00:25:09.356>lot <00:25:09.483>of <00:25:09.610>time <00:25:09.738>to <00:25:09.865>learn, <00:25:09.992>right? <00:25:10.120>However,

428
00:25:12.030 --> 00:25:15.720
<00:25:12.030>when <00:25:12.157>you <00:25:12.284>look <00:25:12.411>at <00:25:12.539>ongoing <00:25:12.666>longer <00:25:12.793>term <00:25:12.920>effort, <00:25:13.048>things <00:25:13.175>look <00:25:13.302>differently, <00:25:13.430>right?

429
00:25:15.720 --> 00:25:18.840
<00:25:15.720>You'll <00:25:15.860>see <00:25:16.000>that <00:25:16.140>over <00:25:16.280>time <00:25:16.420>the <00:25:16.560>effort <00:25:16.700>goes <00:25:16.840>down, <00:25:16.980>right? <00:25:17.120>Uh,

430
00:25:18.840 --> 00:25:20.920
<00:25:18.840>since <00:25:18.995>your <00:25:19.151>rust <00:25:19.306>dev <00:25:19.462>is <00:25:19.617>going <00:25:19.773>to <00:25:19.928>be <00:25:20.084>more <00:25:20.240>reliable,

431
00:25:20.980 --> 00:25:24.560
<00:25:20.980>you'll <00:25:21.135>spend <00:25:21.291>less <00:25:21.446>time <00:25:21.602>fixing <00:25:21.757>bucks. <00:25:21.913>Also, <00:25:22.068>as <00:25:22.224>we <00:25:22.380>saw,

432
00:25:24.630 --> 00:25:27.640
<00:25:24.630>rust <00:25:24.737>code <00:25:24.845>bases <00:25:24.953>are <00:25:25.060>more <00:25:25.168>maintainable <00:25:25.276>and <00:25:25.383>thus <00:25:25.491>you <00:25:25.599>can <00:25:25.706>work <00:25:25.814>on <00:25:25.922>them <00:25:26.030>more

433
00:25:27.640 --> 00:25:30.160
<00:25:27.640>efficiently <00:25:27.815>with <00:25:27.990>the <00:25:28.165>changing <00:25:28.340>or <00:25:28.515>growing <00:25:28.690>team <00:25:28.865>over <00:25:29.040>time.

434
00:25:30.740 --> 00:25:34.840
<00:25:30.740>And <00:25:30.915>that <00:25:31.090>is <00:25:31.265>often <00:25:31.440>very <00:25:31.615>different <00:25:31.790>for <00:25:31.965>other <00:25:32.140>technologies

435
00:25:35.690 --> 00:25:39.280
<00:25:35.690>where <00:25:35.806>the <00:25:35.923>effort <00:25:36.040>increases <00:25:36.156>over <00:25:36.273>time <00:25:36.390>due <00:25:36.506>to <00:25:36.623>sort <00:25:36.740>of <00:25:36.856>those <00:25:36.973>maintenance <00:25:37.090>and

436
00:25:39.280 --> 00:25:42.840
<00:25:39.280>reliability <00:25:39.435>challenges <00:25:39.591>that <00:25:39.746>we <00:25:39.902>saw <00:25:40.057>before. <00:25:40.213>So <00:25:40.368>in <00:25:40.524>a <00:25:40.680>way,

437
00:25:42.860 --> 00:25:45.400
<00:25:42.860>the <00:25:43.060>additional <00:25:43.260>investment <00:25:43.459>you're <00:25:43.659>making <00:25:43.860>with <00:25:44.060>Rust <00:25:44.260>initially,

438
00:25:45.400 --> 00:25:48.680
<00:25:45.400>you're <00:25:45.555>saving <00:25:45.711>further <00:25:45.866>down <00:25:46.022>the <00:25:46.177>line <00:25:46.333>through <00:25:46.488>better <00:25:46.644>reliability <00:25:46.800>and

439
00:25:48.920 --> 00:25:50.040
<00:25:48.920>maintainability <00:25:49.172>as <00:25:49.424>well, <00:25:49.676>of <00:25:49.928>course,

440
00:25:50.780 --> 00:25:55.440
<00:25:50.780>as <00:25:50.887>well <00:25:50.995>as <00:25:51.103>of <00:25:51.210>course <00:25:51.318>through <00:25:51.426>rust <00:25:51.533>efficiency <00:25:51.641>and <00:25:51.749>cost <00:25:51.856>savings <00:25:51.964>resulting <00:25:52.072>out <00:25:52.180>of

441
00:25:55.440 --> 00:25:59.640
<00:25:55.440>that, <00:25:55.580>right? <00:25:55.720>So <00:25:55.860>when <00:25:56.000>evaluating <00:25:56.140>whether <00:25:56.280>or <00:25:56.420>not <00:25:56.560>to <00:25:56.700>choose <00:25:56.840>Russ,

442
00:25:59.640 --> 00:26:03.160
<00:25:59.640>the <00:25:59.747>main <00:25:59.855>questions <00:25:59.963>to <00:26:00.070>answer <00:26:00.178>are <00:26:00.286>typically, <00:26:00.393>are <00:26:00.501>you <00:26:00.609>willing <00:26:00.716>to <00:26:00.824>make <00:26:00.932>that <00:26:01.040>additi?

443
00:26:04.420 --> 00:26:07.200
<00:26:04.420>Are <00:26:04.595>you <00:26:04.770>willing <00:26:04.945>to <00:26:05.120>make <00:26:05.295>that <00:26:05.470>additional <00:26:05.645>initial <00:26:05.820>investment?

444
00:26:08.150 --> 00:26:12.710
<00:26:08.150>Mm <00:26:08.350>what <00:26:08.550>are <00:26:08.750>your <00:26:08.950>requirements <00:26:09.150>regarding <00:26:09.350>re <00:26:09.550>um,

445
00:26:14.320 --> 00:26:17.870
<00:26:14.320>sorry, <00:26:14.520>what <00:26:14.720>are <00:26:14.919>your <00:26:15.120>requirements <00:26:15.320>regarding <00:26:15.520>reliability? <00:26:15.720>Uh,

446
00:26:17.870 --> 00:26:19.790
<00:26:17.870>what <00:26:18.103>are <00:26:18.336>your <00:26:18.570>plans <00:26:18.803>for <00:26:19.036>long-term <00:26:19.270>maintenance?

447
00:26:19.810 --> 00:26:23.230
<00:26:19.810>And <00:26:19.917>at <00:26:20.025>what <00:26:20.133>scale <00:26:20.240>are <00:26:20.348>you <00:26:20.456>sort <00:26:20.563>of <00:26:20.671>planning <00:26:20.779>to <00:26:20.886>run <00:26:20.994>what <00:26:21.102>you're <00:26:21.210>building?

448
00:26:23.230 --> 00:26:27.030
<00:26:23.230>Because <00:26:23.430>that, <00:26:23.630>uh, <00:26:23.830>sort <00:26:24.030>of <00:26:24.230>determines <00:26:24.430>how, <00:26:24.630>uh,

449
00:26:27.050 --> 00:26:31.350
<00:26:27.050>how <00:26:27.166>big <00:26:27.283>the <00:26:27.399>potential <00:26:27.516>cost <00:26:27.633>savings, <00:26:27.750>uh, <00:26:27.866>might <00:26:27.983>be <00:26:28.100>because <00:26:28.216>of <00:26:28.333>last <00:26:28.450>efficiency.

450
00:26:32.090 --> 00:26:35.830
<00:26:32.090>In <00:26:32.197>some <00:26:32.305>cases, <00:26:32.413>answering <00:26:32.520>these <00:26:32.628>questions <00:26:32.736>will <00:26:32.843>not <00:26:32.951>result <00:26:33.059>in <00:26:33.166>a <00:26:33.274>decision <00:26:33.382>for <00:26:33.490>us,

451
00:26:35.890 --> 00:26:39.110
<00:26:35.890>but <00:26:36.045>in <00:26:36.201>many <00:26:36.356>cases <00:26:36.512>it <00:26:36.667>will, <00:26:36.823>right? <00:26:36.978>Things <00:26:37.134>like, <00:26:37.290>uh,

452
00:26:39.110 --> 00:26:42.270
<00:26:39.110>your <00:26:39.237>core <00:26:39.364>business <00:26:39.491>system <00:26:39.619>that <00:26:39.746>implements <00:26:39.873>the <00:26:40.000>core <00:26:40.128>of <00:26:40.255>your <00:26:40.382>product, <00:26:40.510>right?

453
00:26:42.270 --> 00:26:43.710
<00:26:42.270>That <00:26:42.594>you <00:26:42.918>care <00:26:43.242>about <00:26:43.566>reliability,

454
00:26:43.710 --> 00:26:48.080
<00:26:43.710>long-term <00:26:43.826>maintainability <00:26:43.943>and <00:26:44.060>these <00:26:44.176>things <00:26:44.293>maybe <00:26:44.410>more <00:26:44.526>than <00:26:44.643>in <00:26:44.760>other <00:26:44.876>parts <00:26:44.993>of <00:26:45.110>the

455
00:26:48.080 --> 00:26:50.880
<00:26:48.080>system <00:26:48.220>like <00:26:48.360>an <00:26:48.500>H <00:26:48.639>D <00:26:48.780>P <00:26:48.919>A <00:26:49.060>P <00:26:49.199>I <00:26:49.340>that <00:26:49.480>um,

456
00:26:52.180 --> 00:26:56.790
<00:26:52.180>like <00:26:52.250>an <00:26:52.320>H <00:26:52.390>D <00:26:52.460>P <00:26:52.530>A <00:26:52.600>P <00:26:52.670>I <00:26:52.740>that <00:26:52.810>might <00:26:52.880>sit <00:26:52.950>on <00:26:53.020>top <00:26:53.090>of <00:26:53.160>that <00:26:53.230>sort <00:26:53.300>of <00:26:53.370>where <00:26:53.440>you <00:26:53.510>like, <00:26:53.580>uh,

457
00:26:56.790 --> 00:26:59.310
<00:26:56.790>like <00:26:56.965>the <00:26:57.139>freedom <00:26:57.315>of <00:26:57.490>something <00:26:57.665>like <00:26:57.840>Ruby <00:26:58.014>or <00:26:58.190>JavaScript.

458
00:26:59.370 --> 00:27:03.830
<00:26:59.370>And <00:26:59.477>so <00:26:59.585>if <00:26:59.693>you're <00:26:59.800>reliability <00:26:59.908>needs <00:27:00.016>are <00:27:00.123>not <00:27:00.231>as <00:27:00.339>strict <00:27:00.446>for <00:27:00.554>any <00:27:00.662>financial <00:27:00.770>system,

459
00:27:03.970 --> 00:27:07.430
<00:27:03.970>you <00:27:04.086>generally <00:27:04.203>have <00:27:04.320>little <00:27:04.436>tolerance <00:27:04.553>for <00:27:04.670>bucks <00:27:04.786>and <00:27:04.903>need <00:27:05.020>stability <00:27:05.136>at <00:27:05.253>all <00:27:05.370>times,

460
00:27:07.430 --> 00:27:11.150
<00:27:07.430>right? <00:27:07.537>So <00:27:07.645>rust <00:27:07.753>is <00:27:07.860>a <00:27:07.968>great <00:27:08.076>choice <00:27:08.183>there. <00:27:08.291>Plus <00:27:08.399>the <00:27:08.506>faster <00:27:08.614>you <00:27:08.722>can <00:27:08.830>trade,

461
00:27:11.170 --> 00:27:13.310
<00:27:11.170>the <00:27:11.345>more <00:27:11.520>money <00:27:11.695>you <00:27:11.870>make <00:27:12.045>in <00:27:12.220>many <00:27:12.395>cases, <00:27:12.570>right?

462
00:27:14.790 --> 00:27:17.790
<00:27:14.790>Anything <00:27:14.906>that <00:27:15.023>is <00:27:15.139>high <00:27:15.256>throughput <00:27:15.373>and <00:27:15.490>must <00:27:15.606>have <00:27:15.723>high <00:27:15.840>performance <00:27:15.956>is <00:27:16.073>an <00:27:16.190>obvious

463
00:27:17.890 --> 00:27:18.950
<00:27:17.890>use <00:27:18.128>case, <00:27:18.367>right? <00:27:18.605>For <00:27:18.844>example,

464
00:27:18.950 --> 00:27:22.150
<00:27:18.950>thing <00:27:19.090>of <00:27:19.230>something <00:27:19.370>like <00:27:19.510>a <00:27:19.650>proxy <00:27:19.790>that <00:27:19.930>sits <00:27:20.070>on <00:27:20.210>top <00:27:20.350>of,

465
00:27:22.170 --> 00:27:26.110
<00:27:22.170>or <00:27:22.310>like <00:27:22.450>in <00:27:22.590>front <00:27:22.730>of <00:27:22.870>a <00:27:23.010>number <00:27:23.150>of <00:27:23.290>like <00:27:23.430>microservice <00:27:23.570>APIs,

466
00:27:26.110 --> 00:27:28.710
<00:27:26.110>that's <00:27:26.284>super <00:27:26.459>high <00:27:26.635>throughput. <00:27:26.810>You <00:27:26.985>wanna <00:27:27.159>have <00:27:27.334>consistent <00:27:27.510>performance,

467
00:27:28.710 --> 00:27:31.350
<00:27:28.710>you <00:27:28.943>wanna <00:27:29.176>have <00:27:29.410>minimal <00:27:29.643>overhead. <00:27:29.876>And <00:27:30.110>uh,

468
00:27:31.350 --> 00:27:34.750
<00:27:31.350>so <00:27:31.466>if <00:27:31.583>you <00:27:31.699>can't <00:27:31.816>have <00:27:31.933>garbage <00:27:32.050>collector <00:27:32.166>spikes <00:27:32.283>and <00:27:32.399>of <00:27:32.516>course <00:27:32.633>for <00:27:32.750>anything,

469
00:27:34.750 --> 00:27:38.270
<00:27:34.750>you're <00:27:34.857>running <00:27:34.965>a <00:27:35.073>large <00:27:35.180>scale <00:27:35.288>sort <00:27:35.396>of, <00:27:35.503>you <00:27:35.611>will <00:27:35.719>be <00:27:35.826>seeing <00:27:35.934>big <00:27:36.042>cost, <00:27:36.150>uh,

470
00:27:38.270 --> 00:27:41.830
<00:27:38.270>savings <00:27:38.410>in <00:27:38.550>terms <00:27:38.690>of, <00:27:38.830>in <00:27:38.970>terms <00:27:39.110>of <00:27:39.250>safe <00:27:39.389>tossing <00:27:39.530>codes. <00:27:39.670>Uh,

471
00:27:41.830 --> 00:27:44.510
<00:27:41.830>so <00:27:41.929>once <00:27:42.030>you <00:27:42.129>have <00:27:42.230>identified <00:27:42.330>the <00:27:42.429>use <00:27:42.530>case, <00:27:42.629>the <00:27:42.730>question <00:27:42.830>is <00:27:42.929>how <00:27:43.030>do <00:27:43.129>you <00:27:43.230>start,

472
00:27:44.510 --> 00:27:44.810
right?

473
00:27:44.810 --> 00:27:48.470
<00:27:44.810>How <00:27:44.926>do <00:27:45.043>you <00:27:45.159>adopt <00:27:45.276>the <00:27:45.393>technology <00:27:45.510>and <00:27:45.626>what <00:27:45.743>are <00:27:45.860>architectures <00:27:45.976>and <00:27:46.093>strategies <00:27:46.210>that

474
00:27:48.470 --> 00:27:52.070
<00:27:48.470>work? <00:27:48.597>The <00:27:48.724>simplest <00:27:48.851>scenario <00:27:48.979>of <00:27:49.106>course <00:27:49.233>is <00:27:49.360>you're <00:27:49.488>starting <00:27:49.615>something <00:27:49.742>fresh, <00:27:49.870>right?

475
00:27:52.090 --> 00:27:53.630
<00:27:52.090>As <00:27:52.367>we <00:27:52.644>saw <00:27:52.921>before, <00:27:53.198>the, <00:27:53.476>um,

476
00:27:53.660 --> 00:27:56.590
<00:27:53.660>ecosystem <00:27:53.835>is <00:27:54.010>mature <00:27:54.185>enough <00:27:54.360>to <00:27:54.535>build <00:27:54.710>complete <00:27:54.885>web <00:27:55.060>backends.

477
00:27:56.610 --> 00:27:59.990
<00:27:56.610>And <00:27:56.703>one <00:27:56.796>thing <00:27:56.889>to <00:27:56.983>keep <00:27:57.076>in <00:27:57.169>mind <00:27:57.263>though <00:27:57.356>is <00:27:57.449>Russ <00:27:57.543>isn't <00:27:57.636>your <00:27:57.729>friend <00:27:57.823>when <00:27:57.916>you <00:27:58.010>don't

478
00:28:00.210 --> 00:28:03.790
<00:28:00.210>really <00:28:00.337>understand <00:28:00.464>the <00:28:00.591>domain <00:28:00.719>yet <00:28:00.846>and <00:28:00.973>are <00:28:01.100>sort <00:28:01.228>of <00:28:01.355>still <00:28:01.482>exploring, <00:28:01.610>right?

479
00:28:03.790 --> 00:28:07.630
<00:28:03.790>While <00:28:03.917>technologies <00:28:04.044>like <00:28:04.171>Rails <00:28:04.299>or <00:28:04.426>Java <00:28:04.553>so <00:28:04.680>are <00:28:04.808>exactly <00:28:04.935>for <00:28:05.062>that <00:28:05.190>stage,

480
00:28:07.690 --> 00:28:11.310
<00:28:07.690>but <00:28:07.817>then <00:28:07.944>show <00:28:08.071>their <00:28:08.199>shortcomings <00:28:08.326>later <00:28:08.453>on <00:28:08.580>when <00:28:08.708>it's <00:28:08.835>about <00:28:08.962>maintenance, <00:28:09.090>uh,

481
00:28:11.310 --> 00:28:13.190
<00:28:11.310>rust <00:28:11.485>is <00:28:11.659>kind <00:28:11.835>of <00:28:12.010>the <00:28:12.185>other <00:28:12.360>way <00:28:12.534>around, <00:28:12.710>right?

482
00:28:13.220 --> 00:28:17.150
<00:28:13.220>Awesome <00:28:13.347>for <00:28:13.474>long <00:28:13.601>term <00:28:13.729>maintenance <00:28:13.856>and <00:28:13.983>stability <00:28:14.110>and <00:28:14.238>reliability <00:28:14.365>and <00:28:14.492>so <00:28:14.620>on.

483
00:28:17.770 --> 00:28:22.270
<00:28:17.770>But <00:28:17.877>not <00:28:17.985>as <00:28:18.093>great <00:28:18.200>for <00:28:18.308>getting <00:28:18.416>to <00:28:18.523>an <00:28:18.631>initial <00:28:18.739>prototype <00:28:18.846>fast <00:28:18.954>while <00:28:19.062>learning <00:28:19.170>the

484
00:28:22.270 --> 00:28:26.390
<00:28:22.270>domain <00:28:22.386>and <00:28:22.503>figure <00:28:22.620>out <00:28:22.736>and <00:28:22.853>figuring <00:28:22.970>out <00:28:23.086>the <00:28:23.203>architecture <00:28:23.320>along <00:28:23.436>the <00:28:23.553>way, <00:28:23.670>right?

485
00:28:26.410 --> 00:28:29.550
<00:28:26.410>The <00:28:26.517>clearer <00:28:26.625>your <00:28:26.733>idea <00:28:26.840>of <00:28:26.948>the <00:28:27.056>domain <00:28:27.163>as <00:28:27.271>well <00:28:27.379>as <00:28:27.486>the <00:28:27.594>architecture <00:28:27.702>you're <00:28:27.810>going

486
00:28:29.970 --> 00:28:33.470
<00:28:29.970>for, <00:28:30.063>uh, <00:28:30.156>in <00:28:30.250>the <00:28:30.343>beginning <00:28:30.436>of <00:28:30.530>a <00:28:30.623>project, <00:28:30.716>the <00:28:30.810>better <00:28:30.903>is <00:28:30.996>going <00:28:31.090>to <00:28:31.183>go <00:28:31.276>with <00:28:31.370>rust.

487
00:28:33.660 --> 00:28:36.790
<00:28:33.660>Another <00:28:33.776>thing <00:28:33.893>to <00:28:34.010>keep <00:28:34.126>in <00:28:34.243>mind <00:28:34.360>is <00:28:34.476>there's <00:28:34.593>no <00:28:34.710>rust <00:28:34.826>on <00:28:34.943>rated, <00:28:35.060>right?

488
00:28:36.860 --> 00:28:40.190
<00:28:36.860>Like <00:28:37.034>no <00:28:37.209>full <00:28:37.385>features, <00:28:37.560>uh, <00:28:37.735>batteries <00:28:37.909>included <00:28:38.084>framework <00:28:38.260>yet,

489
00:28:40.730 --> 00:28:44.190
<00:28:40.730>or <00:28:40.837>the <00:28:40.945>building <00:28:41.053>blocks <00:28:41.160>exist, <00:28:41.268>but <00:28:41.376>you <00:28:41.483>will <00:28:41.591>be <00:28:41.699>assembling <00:28:41.806>them <00:28:41.914>along <00:28:42.022>the <00:28:42.130>way.

490
00:28:44.490 --> 00:28:47.590
<00:28:44.490>The <00:28:44.617>scenario <00:28:44.744>where <00:28:44.871>that's <00:28:44.999>not <00:28:45.126>really <00:28:45.253>concern <00:28:45.380>is <00:28:45.508>when <00:28:45.635>you're <00:28:45.762>just <00:28:45.890>building

491
00:28:47.590 --> 00:28:49.510
<00:28:47.590>individual <00:28:47.870>microservices, <00:28:48.149>right? <00:28:48.429>In <00:28:48.709>these <00:28:48.990>cases,

492
00:28:49.530 --> 00:28:52.990
<00:28:49.530>you <00:28:49.637>don't <00:28:49.745>really <00:28:49.853>care <00:28:49.960>so <00:28:50.068>much <00:28:50.176>for <00:28:50.283>sort <00:28:50.391>of <00:28:50.499>many <00:28:50.606>things <00:28:50.714>that <00:28:50.822>full <00:28:50.930>featured

493
00:28:52.990 --> 00:28:54.070
<00:28:52.990>framework <00:28:53.233>would <00:28:53.476>handle <00:28:53.719>for <00:28:53.962>you.

494
00:28:54.530 --> 00:28:58.190
<00:28:54.530>And <00:28:54.629>I'd <00:28:54.730>say <00:28:54.830>this <00:28:54.930>is <00:28:55.030>also <00:28:55.129>the <00:28:55.230>typical <00:28:55.330>adoption <00:28:55.430>path <00:28:55.530>for <00:28:55.629>us <00:28:55.730>in <00:28:55.830>web <00:28:55.930>development,

495
00:28:58.190 --> 00:29:01.230
<00:28:58.190>right? <00:28:58.306>And <00:28:58.423>the <00:28:58.540>nice <00:28:58.656>thing <00:28:58.773>is <00:28:58.890>you're <00:28:59.006>not <00:28:59.123>making <00:28:59.240>a <00:28:59.356>big <00:28:59.473>upfront <00:28:59.590>investment,

496
00:29:01.380 --> 00:29:04.870
<00:29:01.380>sort <00:29:01.496>of <00:29:01.613>it's <00:29:01.730>limited <00:29:01.846>scope. <00:29:01.963>So <00:29:02.080>if <00:29:02.196>it <00:29:02.313>doesn't <00:29:02.430>work, <00:29:02.546>you <00:29:02.663>don't <00:29:02.780>like,

497
00:29:04.870 --> 00:29:08.510
<00:29:04.870>you <00:29:04.997>haven't <00:29:05.124>wasted <00:29:05.251>a <00:29:05.379>lot <00:29:05.506>of, <00:29:05.633>uh, <00:29:05.760>money <00:29:05.888>and <00:29:06.015>if <00:29:06.142>it <00:29:06.270>succeeds,

498
00:29:08.510 --> 00:29:12.590
<00:29:08.510>it <00:29:08.626>will <00:29:08.743>typically <00:29:08.860>be <00:29:08.976>the <00:29:09.093>first, <00:29:09.210>uh, <00:29:09.326>step <00:29:09.443>on <00:29:09.560>an <00:29:09.676>incremental <00:29:09.793>adoption <00:29:09.910>path.

499
00:29:12.900 --> 00:29:15.590
<00:29:12.900>Even <00:29:13.180>easier <00:29:13.460>scenarios, <00:29:13.740>native <00:29:14.020>extensions, <00:29:14.300>right?

500
00:29:15.610 --> 00:29:19.510
<00:29:15.610>If <00:29:15.717>you <00:29:15.825>have <00:29:15.933>something <00:29:16.040>like <00:29:16.148>Node, <00:29:16.256>ruby, <00:29:16.363>Alexia <00:29:16.471>or <00:29:16.579>whatever <00:29:16.686>with <00:29:16.794>like <00:29:16.902>slow <00:29:17.010>spots,

501
00:29:19.530 --> 00:29:23.790
<00:29:19.530>you <00:29:19.637>can <00:29:19.745>use <00:29:19.853>a <00:29:19.960>native <00:29:20.068>extension <00:29:20.176>to <00:29:20.283>make <00:29:20.391>those <00:29:20.499>individual <00:29:20.606>things <00:29:20.714>faster <00:29:20.822>before <00:29:20.930>you

502
00:29:23.790 --> 00:29:25.830
<00:29:23.790>had <00:29:23.906>to <00:29:24.023>use <00:29:24.139>c <00:29:24.256>c <00:29:24.373>plus <00:29:24.490>plus <00:29:24.606>for <00:29:24.723>that. <00:29:24.840>But <00:29:24.956>like <00:29:25.073>we <00:29:25.190>saw,

503
00:29:25.830 --> 00:29:30.270
<00:29:25.830>that's <00:29:25.946>not <00:29:26.063>really <00:29:26.179>an <00:29:26.296>option <00:29:26.413>and <00:29:26.530>Rust <00:29:26.646>makes <00:29:26.763>that <00:29:26.879>a <00:29:26.996>possibility. <00:29:27.113>So, <00:29:27.230>so,

504
00:29:30.690 --> 00:29:34.190
<00:29:30.690>uh, <00:29:30.817>out <00:29:30.944>of <00:29:31.071>time <00:29:31.199>almost, <00:29:31.326>uh, <00:29:31.453>just <00:29:31.580>one, <00:29:31.708>two <00:29:31.835>more <00:29:31.962>minutes. <00:29:32.090>Uh,

505
00:29:34.430 --> 00:29:37.710
<00:29:34.430>I <00:29:34.557>just <00:29:34.684>want <00:29:34.811>to <00:29:34.939>briefly <00:29:35.066>talk <00:29:35.193>about <00:29:35.320>where <00:29:35.448>we're <00:29:35.575>going, <00:29:35.702>right? <00:29:35.830>Uh,

506
00:29:37.710 --> 00:29:40.470
<00:29:37.710>what's <00:29:37.850>the <00:29:37.990>future <00:29:38.130>of <00:29:38.270>Rust <00:29:38.410>in <00:29:38.550>development? <00:29:38.690>As <00:29:38.830>I <00:29:38.970>mentioned <00:29:39.110>before,

507
00:29:40.470 --> 00:29:44.200
<00:29:40.470>you're <00:29:40.577>already <00:29:40.685>getting <00:29:40.793>a <00:29:40.900>lot <00:29:41.008>of <00:29:41.116>value <00:29:41.223>out <00:29:41.331>of <00:29:41.439>rust <00:29:41.546>comparing <00:29:41.654>to <00:29:41.762>other, <00:29:41.870>uh,

508
00:29:44.200 --> 00:29:45.240
<00:29:44.200>technologies, <00:29:45.136>right?

509
00:29:45.260 --> 00:29:48.720
<00:29:45.260>And <00:29:45.367>while <00:29:45.475>long-term <00:29:45.583>effort <00:29:45.690>is <00:29:45.798>already <00:29:45.906>looking <00:29:46.013>pretty <00:29:46.121>good <00:29:46.229>for <00:29:46.336>us <00:29:46.444>because <00:29:46.552>of <00:29:46.660>its

510
00:29:48.720 --> 00:29:50.520
<00:29:48.720>great <00:29:49.186>reliability <00:29:49.653>and <00:29:50.120>maintainability,

511
00:29:50.700 --> 00:29:54.080
<00:29:50.700>the <00:29:50.816>initial <00:29:50.933>effort <00:29:51.050>for <00:29:51.166>adopting <00:29:51.283>Rust <00:29:51.400>is <00:29:51.516>a <00:29:51.633>challenge <00:29:51.750>as <00:29:51.866>we <00:29:51.983>saw, <00:29:52.100>right?

512
00:29:54.540 --> 00:29:58.600
<00:29:54.540>So <00:29:54.639>the <00:29:54.740>goal <00:29:54.840>of <00:29:54.940>the <00:29:55.040>ecosystem <00:29:55.139>is <00:29:55.240>to <00:29:55.340>bring <00:29:55.440>that <00:29:55.540>initial <00:29:55.639>effort <00:29:55.740>down <00:29:55.840>and <00:29:55.940>flatten

513
00:29:58.600 --> 00:29:59.380
<00:29:58.600>the <00:29:58.951>curve, <00:29:59.302>right?

514
00:29:59.380 --> 00:30:03.000
<00:29:59.380>So <00:29:59.473>that <00:29:59.566>you <00:29:59.660>end <00:29:59.753>up <00:29:59.846>with <00:29:59.940>the <00:30:00.033>same <00:30:00.126>or <00:30:00.220>similar <00:30:00.313>level <00:30:00.406>of <00:30:00.500>initial <00:30:00.593>effort <00:30:00.686>compared <00:30:00.780>to

515
00:30:03.330 --> 00:30:07.600
<00:30:03.330>other <00:30:03.504>technologies, <00:30:03.679>but <00:30:03.855>lower <00:30:04.030>ongoing, <00:30:04.205>long-term <00:30:04.379>effort, <00:30:04.554>better <00:30:04.730>reliability,

516
00:30:07.790 --> 00:30:10.000
<00:30:07.790>plus <00:30:08.023>the <00:30:08.256>performance <00:30:08.490>benefits <00:30:08.723>of <00:30:08.956>Rise, <00:30:09.190>right?

517
00:30:10.020 --> 00:30:14.400
<00:30:10.020>And <00:30:10.160>bringing <00:30:10.300>the <00:30:10.440>initial <00:30:10.580>effort <00:30:10.720>down <00:30:10.860>sort <00:30:11.000>of <00:30:11.139>will <00:30:11.280>happen, <00:30:11.420>uh,

518
00:30:14.420 --> 00:30:17.360
<00:30:14.420>via <00:30:14.620>the <00:30:14.820>language, <00:30:15.020>self <00:30:15.220>evolving, <00:30:15.420>becoming <00:30:15.620>more <00:30:15.820>approachable,

519
00:30:17.410 --> 00:30:22.360
<00:30:17.410>frameworks <00:30:17.526>becoming <00:30:17.643>more <00:30:17.760>mature <00:30:17.876>and <00:30:17.993>continuing <00:30:18.110>to <00:30:18.226>improve <00:30:18.343>their <00:30:18.460>a <00:30:18.576>p <00:30:18.693>i <00:30:18.810>as

520
00:30:22.360 --> 00:30:25.640
<00:30:22.360>well <00:30:22.487>as <00:30:22.614>new <00:30:22.741>patterns <00:30:22.869>and <00:30:22.996>frameworks <00:30:23.123>taking <00:30:23.250>shape <00:30:23.378>on <00:30:23.505>higher <00:30:23.632>abstraction <00:30:23.760>levels,

521
00:30:25.640 --> 00:30:28.720
<00:30:25.640>right? <00:30:25.756>So <00:30:25.873>eventually <00:30:25.990>you <00:30:26.106>will <00:30:26.223>have <00:30:26.340>like <00:30:26.456>a <00:30:26.573>rust <00:30:26.690>on <00:30:26.806>rates <00:30:26.923>or <00:30:27.040>something,

522
00:30:29.060 --> 00:30:32.320
<00:30:29.060>and <00:30:29.187>we're <00:30:29.314>not <00:30:29.441>even <00:30:29.569>so <00:30:29.696>far <00:30:29.823>away <00:30:29.950>from <00:30:30.078>that <00:30:30.205>future. <00:30:30.332>Uh, <00:30:30.460>uh,

523
00:30:32.320 --> 00:30:36.280
<00:30:32.320>here's <00:30:32.447>a <00:30:32.574>quote <00:30:32.701>from <00:30:32.829>Google <00:30:32.956>who <00:30:33.083>have <00:30:33.210>been <00:30:33.338>adopting <00:30:33.465>rust <00:30:33.592>significantly, <00:30:33.720>uh,

524
00:30:36.280 --> 00:30:40.560
<00:30:36.280>can <00:30:36.407>for <00:30:36.534>years <00:30:36.661>recently <00:30:36.789>shared. <00:30:36.916>They, <00:30:37.043>uh, <00:30:37.170>don't <00:30:37.298>really <00:30:37.425>see <00:30:37.552>any, <00:30:37.680>um,

525
00:30:40.660 --> 00:30:42.320
<00:30:40.660>any <00:30:41.126>productivity <00:30:41.593>penalty, <00:30:42.060>right?

526
00:30:42.470 --> 00:30:45.360
<00:30:42.470>It's <00:30:42.597>maybe <00:30:42.724>a <00:30:42.851>question <00:30:42.979>how <00:30:43.106>that <00:30:43.233>translates <00:30:43.360>to <00:30:43.488>other <00:30:43.615>teams <00:30:43.742>and <00:30:43.870>companies,

527
00:30:45.360 --> 00:30:47.160
<00:30:45.360>but <00:30:45.593>it's <00:30:45.826>a <00:30:46.060>good <00:30:46.293>positive <00:30:46.526>signal, <00:30:46.760>right?

528
00:30:47.160 --> 00:30:51.960
<00:30:47.160>So <00:30:47.287>there's <00:30:47.414>clearly <00:30:47.541>a <00:30:47.669>bright <00:30:47.796>future <00:30:47.923>ahead, <00:30:48.050>right? <00:30:48.178>Uh, <00:30:48.305>for <00:30:48.432>the, <00:30:48.560>uh,

529
00:30:51.980 --> 00:30:53.760
<00:30:51.980>for <00:30:52.260>us <00:30:52.540>also <00:30:52.820>on <00:30:53.100>the <00:30:53.380>web.

530
00:30:53.780 --> 00:30:58.440
<00:30:53.780>And <00:30:53.879>we <00:30:53.980>think <00:30:54.080>sort <00:30:54.180>of <00:30:54.280>it <00:30:54.379>gives <00:30:54.480>you <00:30:54.580>all <00:30:54.680>access <00:30:54.780>sort <00:30:54.879>of <00:30:54.980>to <00:30:55.080>like <00:30:55.180>new

531
00:30:58.440 --> 00:31:01.080
<00:30:58.440>entire <00:30:58.720>levels <00:30:59.000>of <00:30:59.280>efficiency, <00:30:59.560>stability, <00:30:59.840>reliability,

532
00:31:01.480 --> 00:31:06.000
<00:31:01.480>maintainability <00:31:01.680>without <00:31:01.880>giving <00:31:02.080>up <00:31:02.280>developer <00:31:02.480>experience <00:31:02.680>and <00:31:02.880>productivity.

533
00:31:06.180 --> 00:31:08.080
<00:31:06.180>So <00:31:06.380>if <00:31:06.580>you're <00:31:06.780>all <00:31:06.980>intrigued <00:31:07.180>now <00:31:07.380>about <00:31:07.580>Rust,

534
00:31:08.140 --> 00:31:11.760
<00:31:08.140>you <00:31:08.280>should <00:31:08.420>come <00:31:08.560>to <00:31:08.700>Euros <00:31:08.840>conference <00:31:08.980>we <00:31:09.120>organize <00:31:09.260>in <00:31:09.400>October. <00:31:09.540>Uh,

535
00:31:12.470 --> 00:31:15.880
<00:31:12.470>it's <00:31:12.586>a <00:31:12.703>two <00:31:12.820>day <00:31:12.936>conference. <00:31:13.053>I <00:31:13.170>brought <00:31:13.286>some <00:31:13.403>stickers <00:31:13.520>here, <00:31:13.636>and <00:31:13.753>with <00:31:13.870>that,

536
00:31:16.370 --> 00:31:16.800
<00:31:16.370>thank <00:31:16.757>you.