WEBVTT

1
00:00:05.100 --> 00:00:11.600
<00:00:05.100>It <00:00:06.500>yeah,

2
00:00:09.600 --> 00:00:12.400
<00:00:09.600>welcome <00:00:11.000>from

3
00:00:12.400 --> 00:00:15.500
<00:00:12.400>my <00:00:12.540>side. <00:00:12.680>I <00:00:12.820>would <00:00:12.960>like <00:00:13.100>to <00:00:13.240>give <00:00:13.380>you <00:00:13.520>today <00:00:13.660>a <00:00:13.800>short

4
00:00:15.500 --> 00:00:18.900
<00:00:15.500>introduction <00:00:15.733>about <00:00:15.966>Dart <00:00:16.200>a <00:00:16.433>language <00:00:16.666>belief <00:00:16.900>that

5
00:00:18.900 --> 00:00:20.600
<00:00:18.900>experience <00:00:19.366>a <00:00:19.833>new <00:00:20.299>bloom.

6
00:00:21.200 --> 00:00:24.200
<00:00:21.200>Because <00:00:21.400>Dart <00:00:21.599>was <00:00:21.800>more <00:00:22.000>less <00:00:22.200>in <00:00:22.400>quotes <00:00:22.599>that

7
00:00:24.200 --> 00:00:27.500
<00:00:24.200>and <00:00:24.340>nowadays. <00:00:24.480>It's <00:00:24.619>I <00:00:24.759>would <00:00:24.900>say <00:00:25.040>one <00:00:25.180>of <00:00:25.320>the <00:00:25.460>nicest <00:00:25.599>language

8
00:00:27.500 --> 00:00:31.300
<00:00:27.500>you <00:00:27.655>could <00:00:27.811>choose <00:00:27.966>and <00:00:28.122>one <00:00:28.277>language <00:00:28.433>you <00:00:28.588>can <00:00:28.744>use <00:00:28.900>for

9
00:00:30.300 --> 00:00:33.200
<00:00:30.300>a <00:00:30.427>lot <00:00:30.554>of <00:00:30.681>things <00:00:30.809>and <00:00:30.936>for <00:00:31.063>a <00:00:31.190>lot <00:00:31.318>of <00:00:31.445>different <00:00:31.572>things <00:00:31.700>and

10
00:00:33.200 --> 00:00:35.800
<00:00:33.200>why <00:00:33.340>and <00:00:33.480>what <00:00:33.620>it <00:00:33.760>is. <00:00:33.900>I <00:00:34.040>would <00:00:34.180>like <00:00:34.320>to <00:00:34.460>show <00:00:34.600>you.

11
00:00:36.900 --> 00:00:39.600
<00:00:36.900>So <00:00:37.100>first <00:00:37.300>of <00:00:37.500>all <00:00:37.699>showing <00:00:37.900>overview <00:00:38.100>about <00:00:38.300>some

12
00:00:39.600 --> 00:00:42.400
<00:00:39.600>history <00:00:39.880>things <00:00:40.160>about <00:00:40.440>art, <00:00:40.720>we <00:00:41.000>will

13
00:00:42.400 --> 00:00:46.200
<00:00:42.400>have <00:00:42.555>a <00:00:42.711>look <00:00:42.866>at <00:00:43.022>type <00:00:43.177>systems <00:00:43.333>about <00:00:43.488>asynchronous <00:00:43.644>programming <00:00:43.800>packages

14
00:00:45.200 --> 00:00:48.400
<00:00:45.200>tools, <00:00:45.550>and <00:00:45.900>because <00:00:46.250>I <00:00:46.600>only

15
00:00:48.400 --> 00:00:51.300
<00:00:48.400>have <00:00:48.600>30 <00:00:48.800>minutes <00:00:49.000>there's <00:00:49.199>much <00:00:49.400>much <00:00:49.600>more <00:00:49.800>maybe

16
00:00:51.300 --> 00:00:54.000
<00:00:51.300>afterwards <00:00:51.650>just <00:00:52.000>come <00:00:52.349>and <00:00:52.699>visit

17
00:00:54.000 --> 00:00:54.200
me.

18
00:00:55.100 --> 00:00:58.700
<00:00:55.100>So <00:00:55.240>about <00:00:55.380>the <00:00:55.520>overview <00:00:55.660>Dart <00:00:55.800>is <00:00:55.940>open <00:00:56.080>source. <00:00:56.220>The <00:00:56.360>main <00:00:56.500>sponsor

19
00:00:58.700 --> 00:01:01.200
<00:00:58.700>is <00:00:58.855>Google <00:00:59.011>and <00:00:59.166>maybe <00:00:59.322>some <00:00:59.477>of <00:00:59.633>you <00:00:59.788>maybe <00:00:59.944>already <00:01:00.100>heard

20
00:01:01.200 --> 00:01:04.100
<00:01:01.200>about <00:01:01.375>it. <00:01:01.550>That <00:01:01.725>is <00:01:01.900>the <00:01:02.075>programming <00:01:02.250>language, <00:01:02.425>which <00:01:02.600>is

21
00:01:04.100 --> 00:01:07.500
<00:01:04.099>used <00:01:04.379>in <00:01:04.660>flutter. <00:01:04.940>So <00:01:05.220>Google's <00:01:05.500>you

22
00:01:07.500 --> 00:01:11.200
<00:01:07.500>cross-platform <00:01:07.966>framework <00:01:08.433>to <00:01:08.900>build

23
00:01:11.200 --> 00:01:14.600
<00:01:11.200>apps <00:01:11.400>for <00:01:11.600>Android <00:01:11.800>iOS <00:01:12.000>Mac <00:01:12.200>Windows <00:01:12.400>Linux <00:01:12.600>and

24
00:01:14.600 --> 00:01:15.300
<00:01:14.600>the <00:01:15.229>web.

25
00:01:16.500 --> 00:01:19.800
<00:01:16.500>But <00:01:16.733>God <00:01:16.966>was <00:01:17.200>first <00:01:17.433>presentation <00:01:17.666>already <00:01:17.900>in

26
00:01:19.800 --> 00:01:21.100
<00:01:19.800>October <00:01:20.970>2012.

27
00:01:22.300 --> 00:01:25.100
<00:01:22.300>And <00:01:22.475>the <00:01:22.649>idea <00:01:22.825>was <00:01:23.000>there <00:01:23.175>the <00:01:23.350>Dodge <00:01:23.524>should <00:01:23.700>be

28
00:01:25.100 --> 00:01:28.600
<00:01:25.100>more <00:01:25.333>or <00:01:25.566>less <00:01:25.800>the <00:01:26.033>new <00:01:26.266>JavaScript. <00:01:26.500>So

29
00:01:28.600 --> 00:01:31.100
<00:01:28.600>the <00:01:28.774>new <00:01:28.949>language <00:01:29.125>for <00:01:29.300>the <00:01:29.475>web. <00:01:29.649>They <00:01:29.824>wanted <00:01:30.000>to

30
00:01:31.100 --> 00:01:34.800
<00:01:31.100>have <00:01:31.255>a <00:01:31.411>language <00:01:31.566>which <00:01:31.722>is <00:01:31.877>way <00:01:32.033>better <00:01:32.188>than <00:01:32.344>JavaScript, <00:01:32.500>which

31
00:01:34.800 --> 00:01:37.800
<00:01:34.800>is <00:01:35.000>easier <00:01:35.200>to <00:01:35.399>use <00:01:35.600>which <00:01:35.800>is <00:01:36.000>more <00:01:36.200>safe

32
00:01:37.800 --> 00:01:40.500
<00:01:37.800>to <00:01:38.149>have <00:01:38.500>better <00:01:38.850>possibility <00:01:39.200>to

33
00:01:40.500 --> 00:01:43.600
<00:01:40.500>develop <00:01:40.733>for <00:01:40.966>the <00:01:41.200>web. <00:01:41.433>But <00:01:41.666>as <00:01:41.900>I

34
00:01:43.600 --> 00:01:46.000
<00:01:43.600>guess <00:01:43.774>all <00:01:43.949>of <00:01:44.125>you <00:01:44.300>know, <00:01:44.475>they <00:01:44.649>didn't <00:01:44.824>achieved <00:01:45.000>it.

35
00:01:47.800 --> 00:01:50.500
<00:01:47.800>And <00:01:48.080>then <00:01:48.360>they <00:01:48.640>decide <00:01:48.920>that <00:01:49.200>to

36
00:01:50.500 --> 00:01:53.600
<00:01:50.500>create <00:01:50.700>flutter <00:01:50.900>their <00:01:51.100>cross-platform <00:01:51.300>framework <00:01:51.500>and <00:01:51.700>they <00:01:51.900>have

37
00:01:53.600 --> 00:01:56.400
<00:01:53.600>seen <00:01:53.755>okay <00:01:53.911>dot <00:01:54.066>is <00:01:54.222>still <00:01:54.377>not <00:01:54.533>really <00:01:54.688>used <00:01:54.844>but <00:01:55.000>it

38
00:01:56.400 --> 00:02:00.000
<00:01:56.400>has <00:01:56.527>still <00:01:56.654>a <00:01:56.781>lot <00:01:56.909>of <00:01:57.036>possibilities <00:01:57.163>and <00:01:57.290>a <00:01:57.418>lot <00:01:57.545>of <00:01:57.672>options <00:01:57.800>and

39
00:01:59.300 --> 00:02:02.700
<00:01:59.300>and <00:01:59.533>many <00:01:59.766>nice <00:02:00.000>things <00:02:00.233>so <00:02:00.466>they <00:02:00.700>use

40
00:02:02.700 --> 00:02:06.100
<00:02:02.700>dot <00:02:02.933>evolved <00:02:03.166>it <00:02:03.400>even <00:02:03.633>further <00:02:03.866>and <00:02:04.100>you

41
00:02:05.100 --> 00:02:08.600
<00:02:05.100>start <00:02:05.380>for <00:02:05.660>there <00:02:05.940>more <00:02:06.220>less <00:02:06.500>language

42
00:02:08.600 --> 00:02:10.800
<00:02:08.600>or <00:02:09.066>programming <00:02:09.533>framework <00:02:10.000>flutter.

43
00:02:11.700 --> 00:02:15.100
<00:02:11.700>So <00:02:11.855>nowadays <00:02:12.011>or <00:02:12.166>at <00:02:12.322>least <00:02:12.477>from <00:02:12.633>the <00:02:12.788>last <00:02:12.944>year's <00:02:13.100>takeoverflow

44
00:02:14.100 --> 00:02:17.800
<00:02:14.100>developer <00:02:14.333>survey <00:02:14.566>that <00:02:14.799>is <00:02:15.033>already <00:02:15.266>Rising <00:02:15.500>quite

45
00:02:17.800 --> 00:02:20.800
<00:02:17.800>a <00:02:17.927>lot. <00:02:18.054>So <00:02:18.181>we <00:02:18.309>see <00:02:18.436>that <00:02:18.563>I <00:02:18.690>think <00:02:18.818>it's <00:02:18.945>on <00:02:19.072>this <00:02:19.200>six

46
00:02:20.800 --> 00:02:23.500
<00:02:20.800>or <00:02:21.080>seventh <00:02:21.360>position <00:02:21.640>here. <00:02:21.920>But <00:02:22.200>already

47
00:02:23.500 --> 00:02:26.800
<00:02:23.500>before <00:02:23.780>Swift <00:02:24.060>C <00:02:24.340>sharp <00:02:24.620>F <00:02:24.900>sharp

48
00:02:26.800 --> 00:02:29.200
<00:02:26.800>hotline. <00:02:27.266>It's <00:02:27.733>already <00:02:28.200>a

49
00:02:29.200 --> 00:02:32.700
<00:02:29.200>very <00:02:29.480>Rising <00:02:29.760>programming <00:02:30.040>language <00:02:30.320>and <00:02:30.600>why

50
00:02:32.700 --> 00:02:35.400
<00:02:32.700>we <00:02:32.899>maybe <00:02:33.100>will <00:02:33.299>see <00:02:33.500>later <00:02:33.700>also <00:02:33.899>during <00:02:34.100>our

51
00:02:35.400 --> 00:02:36.100
<00:02:35.400>life <00:02:36.030>coding.

52
00:02:37.300 --> 00:02:41.000
<00:02:37.300>So <00:02:37.440>let's <00:02:37.580>have <00:02:37.720>a <00:02:37.860>look <00:02:38.000>at <00:02:38.140>some <00:02:38.280>overview <00:02:38.420>points <00:02:38.560>what <00:02:38.700>DART

53
00:02:40.900 --> 00:02:44.200
<00:02:40.900>tells <00:02:41.180>us <00:02:41.460>about <00:02:41.740>itself. <00:02:42.020>So <00:02:42.300>that

54
00:02:43.200 --> 00:02:46.600
<00:02:43.200>says <00:02:43.399>about <00:02:43.600>itself <00:02:43.799>that <00:02:44.000>is <00:02:44.200>a <00:02:44.399>client <00:02:44.600>optimized

55
00:02:46.600 --> 00:02:49.800
<00:02:46.600>language <00:02:46.833>for <00:02:47.066>fast <00:02:47.299>apps <00:02:47.533>on <00:02:47.766>any <00:02:48.000>platform.

56
00:02:49.800 --> 00:02:52.200
<00:02:49.800>And <00:02:50.000>I <00:02:50.200>think <00:02:50.400>that's <00:02:50.600>already <00:02:50.800>one <00:02:51.000>thing <00:02:51.200>which

57
00:02:52.200 --> 00:02:56.000
<00:02:52.200>is <00:02:52.375>really <00:02:52.549>nice <00:02:52.725>because <00:02:52.899>it <00:02:53.075>will <00:02:53.250>be <00:02:53.424>fast <00:02:53.600>faster

58
00:02:55.200 --> 00:02:58.400
<00:02:55.200>than <00:02:55.549>C <00:02:55.899>sharp <00:02:56.250>Java <00:02:56.600>but

59
00:02:58.400 --> 00:03:01.800
<00:02:58.400>still <00:02:58.600>running <00:02:58.800>on <00:02:59.000>all <00:02:59.200>platforms <00:02:59.400>Windows <00:02:59.600>window <00:02:59.800>Mac

60
00:03:01.800 --> 00:03:04.100
<00:03:01.800>Linux, <00:03:02.000>but <00:03:02.200>you <00:03:02.400>also <00:03:02.600>can <00:03:02.800>use <00:03:03.000>it <00:03:03.200>on

61
00:03:04.100 --> 00:03:07.500
<00:03:04.100>embedded <00:03:04.275>systems. <00:03:04.450>Also, <00:03:04.625>this <00:03:04.799>is <00:03:04.975>quite <00:03:05.150>new <00:03:05.325>and <00:03:05.500>the

62
00:03:07.500 --> 00:03:10.300
<00:03:07.500>goal <00:03:07.675>is <00:03:07.850>to <00:03:08.025>offer <00:03:08.200>the <00:03:08.375>most <00:03:08.550>productive <00:03:08.725>programming <00:03:08.900>language

63
00:03:10.300 --> 00:03:13.200
<00:03:10.300>for <00:03:10.650>multi-platform <00:03:11.000>development. <00:03:11.350>And <00:03:11.700>also

64
00:03:13.200 --> 00:03:16.500
<00:03:13.200>that's <00:03:13.327>a <00:03:13.454>very <00:03:13.581>good <00:03:13.709>goal. <00:03:13.836>They <00:03:13.963>want <00:03:14.090>to <00:03:14.218>try <00:03:14.345>to <00:03:14.472>achieve <00:03:14.600>to

65
00:03:16.500 --> 00:03:20.000
<00:03:16.500>be <00:03:16.675>productive <00:03:16.850>and <00:03:17.025>we <00:03:17.200>will <00:03:17.375>see <00:03:17.550>this <00:03:17.725>that <00:03:17.900>but

66
00:03:19.200 --> 00:03:23.200
<00:03:19.200>also <00:03:19.433>flutter <00:03:19.666>is <00:03:19.899>made <00:03:20.133>from <00:03:20.366>Developers <00:03:20.600>for

67
00:03:22.200 --> 00:03:25.300
<00:03:22.200>developers <00:03:22.549>because <00:03:22.899>they <00:03:23.250>bring <00:03:23.600>a

68
00:03:25.300 --> 00:03:28.900
<00:03:25.300>lot <00:03:25.455>of <00:03:25.611>things <00:03:25.766>we <00:03:25.922>just <00:03:26.077>are <00:03:26.233>used <00:03:26.388>to <00:03:26.544>and <00:03:26.700>we

69
00:03:28.900 --> 00:03:29.600
<00:03:28.900>want <00:03:29.215>to <00:03:29.530>use

70
00:03:31.500 --> 00:03:34.300
<00:03:31.500>Then <00:03:31.700>it <00:03:31.900>has <00:03:32.100>three <00:03:32.300>main <00:03:32.500>further <00:03:32.700>goals. <00:03:32.900>So

71
00:03:34.300 --> 00:03:37.400
<00:03:34.300>optimized <00:03:34.475>for <00:03:34.650>UI <00:03:34.825>so <00:03:35.000>you <00:03:35.175>can <00:03:35.350>still <00:03:35.525>use <00:03:35.700>it

72
00:03:37.400 --> 00:03:40.100
<00:03:37.400>for <00:03:37.540>UI <00:03:37.680>but <00:03:37.820>you <00:03:37.960>don't <00:03:38.100>have <00:03:38.240>to <00:03:38.380>you <00:03:38.520>also <00:03:38.660>can <00:03:38.800>use

73
00:03:40.100 --> 00:03:43.400
<00:03:40.100>your <00:03:40.239>back <00:03:40.380>as <00:03:40.519>in <00:03:40.660>the <00:03:40.799>backend <00:03:40.940>or <00:03:41.079>for <00:03:41.220>command <00:03:41.359>line <00:03:41.500>tool

74
00:03:43.400 --> 00:03:46.800
<00:03:43.400>or <00:03:43.633>a <00:03:43.866>scripting <00:03:44.100>but <00:03:44.333>for <00:03:44.566>M <00:03:44.800>optimized

75
00:03:46.800 --> 00:03:50.500
<00:03:46.800>for <00:03:46.940>UI, <00:03:47.080>we <00:03:47.220>need <00:03:47.360>something <00:03:47.500>like <00:03:47.640>a <00:03:47.780>single <00:03:47.920>weight <00:03:48.060>isolate <00:03:48.200>based

76
00:03:49.500 --> 00:03:52.300
<00:03:49.500>concurrency <00:03:49.966>sound <00:03:50.433>null <00:03:50.900>safety,

77
00:03:52.300 --> 00:03:55.600
<00:03:52.300>but <00:03:52.475>also <00:03:52.650>things <00:03:52.825>like <00:03:53.000>the <00:03:53.175>spreadable <00:03:53.350>radar <00:03:53.525>collection <00:03:53.700>if

78
00:03:55.600 --> 00:03:58.400
<00:03:55.600>syntax <00:03:55.833>now <00:03:56.066>all <00:03:56.299>these <00:03:56.533>things <00:03:56.766>are <00:03:57.000>already

79
00:03:58.400 --> 00:04:02.100
<00:03:58.400>in <00:03:58.507>and <00:03:58.615>some <00:03:58.723>of <00:03:58.830>them <00:03:58.938>you <00:03:59.046>will <00:03:59.153>have <00:03:59.261>a <00:03:59.369>look <00:03:59.476>in <00:03:59.584>more <00:03:59.692>detail <00:03:59.800>also

80
00:04:01.100 --> 00:04:02.600
<00:04:01.100>in <00:04:01.775>life <00:04:02.450>query.

81
00:04:03.300 --> 00:04:06.200
<00:04:03.300>But <00:04:03.475>also <00:04:03.650>very <00:04:03.825>productive <00:04:04.000>development <00:04:04.175>and <00:04:04.350>that's <00:04:04.525>one <00:04:04.700>thing

82
00:04:06.200 --> 00:04:09.500
<00:04:06.200>I <00:04:06.375>really <00:04:06.549>like <00:04:06.725>a <00:04:06.899>lot. <00:04:07.075>That's <00:04:07.250>the <00:04:07.424>hard <00:04:07.600>reload.

83
00:04:09.900 --> 00:04:12.700
<00:04:09.900>So <00:04:10.133>you <00:04:10.366>can <00:04:10.600>change <00:04:10.833>code <00:04:11.066>while <00:04:11.300>it

84
00:04:12.700 --> 00:04:16.000
<00:04:12.700>is <00:04:12.839>running <00:04:12.980>in <00:04:13.119>the <00:04:13.260>background <00:04:13.399>and <00:04:13.540>you <00:04:13.679>don't <00:04:13.820>have <00:04:13.959>to <00:04:14.100>recompile.

85
00:04:16.700 --> 00:04:19.900
<00:04:16.700>You <00:04:16.933>just <00:04:17.166>change <00:04:17.399>it <00:04:17.633>hit <00:04:17.866>save <00:04:18.099>and

86
00:04:19.900 --> 00:04:22.100
<00:04:19.899>your <00:04:20.055>software <00:04:20.211>in <00:04:20.366>the <00:04:20.522>which <00:04:20.677>is <00:04:20.833>already <00:04:20.988>running <00:04:21.144>in <00:04:21.299>the

87
00:04:22.100 --> 00:04:25.200
<00:04:22.100>background <00:04:22.380>is <00:04:22.660>updated <00:04:22.940>and <00:04:23.220>it <00:04:23.500>changes

88
00:04:25.200 --> 00:04:28.000
<00:04:25.200>are <00:04:25.355>there. <00:04:25.511>So, <00:04:25.666>for <00:04:25.822>example, <00:04:25.977>when <00:04:26.133>you <00:04:26.288>develop <00:04:26.444>an <00:04:26.599>app,

89
00:04:28.700 --> 00:04:31.500
<00:04:28.700>it <00:04:28.827>is <00:04:28.954>running <00:04:29.081>on <00:04:29.209>a <00:04:29.336>mobile <00:04:29.463>phone <00:04:29.590>connected <00:04:29.718>to <00:04:29.845>your <00:04:29.972>PC. <00:04:30.099>The

90
00:04:31.500 --> 00:04:34.600
<00:04:31.500>app <00:04:31.655>is <00:04:31.811>already <00:04:31.966>running <00:04:32.122>you <00:04:32.277>change <00:04:32.433>one <00:04:32.588>color <00:04:32.744>from <00:04:32.900>green

91
00:04:34.600 --> 00:04:37.200
<00:04:34.600>to <00:04:34.800>red <00:04:35.000>and <00:04:35.200>it's <00:04:35.400>directly <00:04:35.600>on <00:04:35.800>your <00:04:36.000>mobile

92
00:04:37.200 --> 00:04:40.700
<00:04:37.200>phone <00:04:37.355>from <00:04:37.511>green <00:04:37.666>to <00:04:37.822>Red <00:04:37.977>without <00:04:38.133>restarting <00:04:38.288>the <00:04:38.444>app <00:04:38.599>and

93
00:04:40.700 --> 00:04:43.500
<00:04:40.700>the <00:04:40.855>same <00:04:41.011>thing <00:04:41.166>you <00:04:41.322>could <00:04:41.477>use <00:04:41.633>the <00:04:41.788>start <00:04:41.944>for <00:04:42.099>example

94
00:04:43.500 --> 00:04:46.800
<00:04:43.500>for <00:04:43.675>a <00:04:43.850>back <00:04:44.025>and <00:04:44.200>service <00:04:44.375>or <00:04:44.550>other <00:04:44.725>different <00:04:44.900>things.

95
00:04:46.800 --> 00:04:47.800
<00:04:46.800>You <00:04:46.980>want <00:04:47.160>to <00:04:47.340>like <00:04:47.520>to <00:04:47.700>implement.

96
00:04:48.800 --> 00:04:51.300
<00:04:48.800>Profiling <00:04:49.080>locking <00:04:49.360>debugging <00:04:49.640>all <00:04:49.920>the <00:04:50.200>things

97
00:04:51.300 --> 00:04:54.300
<00:04:51.300>we <00:04:51.455>know <00:04:51.611>is <00:04:51.766>also <00:04:51.922>there <00:04:52.077>and <00:04:52.233>also <00:04:52.388>they <00:04:52.544>want <00:04:52.700>a

98
00:04:54.300 --> 00:04:57.500
<00:04:54.300>very <00:04:54.475>be <00:04:54.650>really <00:04:54.825>fast <00:04:55.000>on <00:04:55.175>all <00:04:55.350>platforms. <00:04:55.525>And <00:04:55.700>that's

99
00:04:57.500 --> 00:05:00.500
<00:04:57.500>also <00:04:57.675>something <00:04:57.850>they <00:04:58.025>achieved <00:04:58.200>we <00:04:58.375>will <00:04:58.550>see <00:04:58.725>there <00:04:58.900>are

100
00:05:00.500 --> 00:05:04.100
<00:05:00.500>some <00:05:00.700>some <00:05:00.900>figures. <00:05:01.100>So <00:05:01.300>for <00:05:01.500>example, <00:05:01.700>there's <00:05:01.900>a

101
00:05:03.100 --> 00:05:04.800
<00:05:03.100>GitHub <00:05:03.800>repository <00:05:04.500>which

102
00:05:05.900 --> 00:05:08.100
<00:05:05.900>Yeah, <00:05:06.179>more <00:05:06.460>or <00:05:06.739>less <00:05:07.020>tries <00:05:07.299>to

103
00:05:08.100 --> 00:05:12.500
<00:05:08.100>have <00:05:08.333>a <00:05:08.566>nice <00:05:08.800>possibility <00:05:09.033>to <00:05:09.266>yeah, <00:05:09.500>differentiate

104
00:05:11.500 --> 00:05:14.500
<00:05:11.500>between <00:05:11.850>different <00:05:12.200>languages <00:05:12.550>and <00:05:12.900>compare

105
00:05:14.500 --> 00:05:17.300
<00:05:14.500>them <00:05:14.780>about <00:05:15.060>their <00:05:15.340>startup <00:05:15.620>and <00:05:15.900>we

106
00:05:17.300 --> 00:05:20.900
<00:05:17.300>have <00:05:17.455>a <00:05:17.611>look <00:05:17.766>there <00:05:17.922>the <00:05:18.077>startup <00:05:18.233>time <00:05:18.388>of <00:05:18.544>Java <00:05:18.700>for

107
00:05:20.900 --> 00:05:23.900
<00:05:20.900>the <00:05:21.179>program <00:05:21.460>and <00:05:21.739>the <00:05:22.020>guy <00:05:22.299>implemented

108
00:05:23.900 --> 00:05:27.100
<00:05:23.900>is <00:05:24.179>about <00:05:24.460>40 <00:05:24.739>milliseconds <00:05:25.020>for <00:05:25.299>node

109
00:05:26.100 --> 00:05:29.300
<00:05:26.100>33 <00:05:26.566>milliseconds <00:05:27.033>and <00:05:27.500>for

110
00:05:29.300 --> 00:05:32.200
<00:05:29.300>python <00:05:29.500>30 <00:05:29.700>milliseconds, <00:05:29.900>and <00:05:30.100>he <00:05:30.300>did <00:05:30.500>the <00:05:30.700>same

111
00:05:32.200 --> 00:05:36.100
<00:05:32.200>in <00:05:32.355>Dart <00:05:32.511>and <00:05:32.666>in <00:05:32.822>Dart, <00:05:32.977>it's <00:05:33.133>only <00:05:33.288>12 <00:05:33.444>milliseconds. <00:05:33.599>So

112
00:05:35.100 --> 00:05:39.000
<00:05:35.100>a <00:05:35.450>third <00:05:35.800>fast <00:05:36.150>then <00:05:36.500>something

113
00:05:38.200 --> 00:05:41.500
<00:05:38.200>like <00:05:38.666>Java <00:05:39.133>node <00:05:39.599>or

114
00:05:41.500 --> 00:05:42.200
python.

115
00:05:43.100 --> 00:05:47.300
<00:05:43.100>And <00:05:43.216>why <00:05:43.333>they <00:05:43.450>cannot <00:05:43.566>do <00:05:43.683>it <00:05:43.800>and <00:05:43.916>still <00:05:44.033>have <00:05:44.150>this <00:05:44.266>nice. <00:05:44.383>Yeah <00:05:44.500>modest

116
00:05:46.300 --> 00:05:49.300
<00:05:46.300>programming <00:05:46.580>features <00:05:46.860>for <00:05:47.140>the <00:05:47.420>developer <00:05:47.700>because

117
00:05:49.300 --> 00:05:52.900
<00:05:49.300>they <00:05:49.475>have <00:05:49.650>two <00:05:49.825>possibilities. <00:05:50.000>They <00:05:50.175>can <00:05:50.350>cheat <00:05:50.525>compile <00:05:50.700>in

118
00:05:52.900 --> 00:05:55.700
<00:05:52.900>development. <00:05:53.133>So <00:05:53.366>just <00:05:53.599>in <00:05:53.833>time <00:05:54.066>compilation, <00:05:54.299>but

119
00:05:55.700 --> 00:05:58.600
<00:05:55.700>they <00:05:55.875>also <00:05:56.050>can <00:05:56.224>do <00:05:56.400>ahead <00:05:56.575>of <00:05:56.750>time <00:05:56.925>compilation <00:05:57.099>when

120
00:05:58.600 --> 00:06:01.900
<00:05:58.600>you <00:05:58.800>ship <00:05:59.000>it <00:05:59.200>and <00:05:59.400>that's <00:05:59.600>quite <00:05:59.800>nice <00:06:00.000>and

121
00:06:01.900 --> 00:06:04.100
<00:06:01.900>you <00:06:02.179>could <00:06:02.460>also <00:06:02.739>compile <00:06:03.020>it <00:06:03.299>to

122
00:06:04.100 --> 00:06:07.300
<00:06:04.100>JavaScript <00:06:04.240>if <00:06:04.380>you <00:06:04.520>like <00:06:04.660>because <00:06:04.800>if <00:06:04.940>you <00:06:05.080>want <00:06:05.220>to <00:06:05.360>implement <00:06:05.500>for

123
00:06:07.300 --> 00:06:10.900
<00:06:07.300>the <00:06:07.455>web <00:06:07.611>now, <00:06:07.766>you <00:06:07.922>can <00:06:08.077>still <00:06:08.233>use <00:06:08.388>start <00:06:08.544>then <00:06:08.700>compile

124
00:06:10.900 --> 00:06:13.200
<00:06:10.900>it <00:06:11.055>to <00:06:11.211>JavaScript <00:06:11.366>and <00:06:11.522>use <00:06:11.677>it <00:06:11.833>in <00:06:11.988>your <00:06:12.144>web <00:06:12.299>platform.

125
00:06:14.800 --> 00:06:17.900
<00:06:14.800>So <00:06:15.000>a <00:06:15.200>short <00:06:15.400>under <00:06:15.600>the <00:06:15.800>hood, <00:06:16.000>that's <00:06:16.200>how

126
00:06:17.900 --> 00:06:20.600
<00:06:17.900>it <00:06:18.133>looks <00:06:18.366>like. <00:06:18.599>So <00:06:18.833>the <00:06:19.066>dot <00:06:19.299>compiler

127
00:06:20.600 --> 00:06:23.200
<00:06:20.600>can <00:06:20.740>decide. <00:06:20.880>Okay. <00:06:21.020>Do <00:06:21.160>I <00:06:21.300>want <00:06:21.440>to <00:06:21.580>have <00:06:21.720>a <00:06:21.860>just <00:06:22.000>in

128
00:06:23.200 --> 00:06:26.300
<00:06:23.200>time <00:06:23.340>compilation? <00:06:23.479>So <00:06:23.620>cheat <00:06:23.760>compilation <00:06:23.900>or <00:06:24.039>ahead <00:06:24.180>of <00:06:24.320>time <00:06:24.460>compilation <00:06:24.599>which

129
00:06:26.300 --> 00:06:29.700
<00:06:26.300>would <00:06:26.440>be <00:06:26.580>the <00:06:26.720>production <00:06:26.860>to <00:06:27.000>a <00:06:27.140>chain <00:06:27.280>and <00:06:27.420>should <00:06:27.560>compilation <00:06:27.700>would

130
00:06:29.700 --> 00:06:32.500
<00:06:29.700>be <00:06:29.855>development <00:06:30.011>2 <00:06:30.166>Chain <00:06:30.322>and <00:06:30.477>then <00:06:30.633>you <00:06:30.788>can <00:06:30.944>decide <00:06:31.099>okay

131
00:06:32.500 --> 00:06:35.100
<00:06:32.500>on <00:06:32.627>which <00:06:32.754>platform <00:06:32.881>I <00:06:33.009>need <00:06:33.136>to <00:06:33.263>go. <00:06:33.390>Is <00:06:33.518>it <00:06:33.645>on <00:06:33.772>32 <00:06:33.900>is

132
00:06:35.100 --> 00:06:39.000
<00:06:35.100>it <00:06:35.300>arm <00:06:35.500>64, <00:06:35.700>is <00:06:35.900>it <00:06:36.100>X <00:06:36.300>8664 <00:06:36.500>or

133
00:06:38.600 --> 00:06:41.800
<00:06:38.600>JavaScript <00:06:39.066>what <00:06:39.533>then <00:06:40.000>not

134
00:06:41.800 --> 00:06:44.300
<00:06:41.800>can <00:06:42.033>do <00:06:42.266>so <00:06:42.500>far <00:06:42.733>is <00:06:42.966>a <00:06:43.200>cross

135
00:06:44.300 --> 00:06:47.200
<00:06:44.300>compilation. <00:06:44.475>So <00:06:44.650>you <00:06:44.825>cannot <00:06:45.000>compile <00:06:45.175>on <00:06:45.350>an <00:06:45.525>x64 <00:06:45.700>for

136
00:06:47.200 --> 00:06:50.500
<00:06:47.200>an <00:06:47.375>arm <00:06:47.550>and <00:06:47.724>64 <00:06:47.900>that's <00:06:48.075>not <00:06:48.250>possible. <00:06:48.425>But <00:06:48.599>I

137
00:06:50.500 --> 00:06:53.400
<00:06:50.500>would <00:06:50.700>say <00:06:50.900>that's <00:06:51.100>not <00:06:51.300>a <00:06:51.500>big <00:06:51.700>disadvantage <00:06:51.900>because

138
00:06:53.400 --> 00:06:56.300
<00:06:53.400>in <00:06:53.555>the <00:06:53.711>best <00:06:53.866>case <00:06:54.022>you <00:06:54.177>have <00:06:54.333>something <00:06:54.488>like <00:06:54.644>CD <00:06:54.799>build

139
00:06:56.300 --> 00:06:59.300
<00:06:56.300>service <00:06:56.500>where <00:06:56.700>you <00:06:56.900>build <00:06:57.100>the <00:06:57.300>different <00:06:57.500>outputs <00:06:57.700>and

140
00:06:59.300 --> 00:07:00.000
<00:06:59.300>then <00:06:59.615>ship <00:06:59.930>it.

141
00:07:02.100 --> 00:07:04.600
<00:07:02.100>But <00:07:02.275>that's <00:07:02.450>as <00:07:02.625>an <00:07:02.800>overview <00:07:02.975>and <00:07:03.150>under <00:07:03.325>the <00:07:03.500>hood.

142
00:07:05.100 --> 00:07:07.200
<00:07:05.100>So <00:07:05.275>let's <00:07:05.450>have <00:07:05.625>a <00:07:05.800>look <00:07:05.975>at <00:07:06.150>the <00:07:06.325>type <00:07:06.500>system.

143
00:07:08.200 --> 00:07:11.600
<00:07:08.200>The <00:07:08.355>types <00:07:08.511>of <00:07:08.666>Dart <00:07:08.822>is <00:07:08.977>strongly <00:07:09.133>typed <00:07:09.288>with <00:07:09.444>type <00:07:09.599>interference.

144
00:07:11.600 --> 00:07:15.300
<00:07:11.600>So <00:07:11.800>you <00:07:12.000>can <00:07:12.200>use <00:07:12.400>something <00:07:12.600>like <00:07:12.800>VAR. <00:07:13.000>You

145
00:07:14.300 --> 00:07:18.500
<00:07:14.300>may <00:07:14.500>be <00:07:14.700>are <00:07:14.900>used <00:07:15.100>from <00:07:15.300>JavaScript <00:07:15.500>c-sharp <00:07:15.700>and

146
00:07:17.500 --> 00:07:20.500
<00:07:17.500>other <00:07:17.966>languages <00:07:18.433>and <00:07:18.900>you

147
00:07:20.500 --> 00:07:23.300
<00:07:20.500>don't <00:07:20.675>have <00:07:20.850>to <00:07:21.025>put <00:07:21.200>the <00:07:21.375>type <00:07:21.550>in <00:07:21.725>it <00:07:21.900>is

148
00:07:23.300 --> 00:07:26.300
<00:07:23.300>null <00:07:23.475>safety <00:07:23.650>and <00:07:23.825>also <00:07:24.000>in <00:07:24.175>sound <00:07:24.350>and <00:07:24.525>I'll <00:07:24.700>safety.

149
00:07:26.300 --> 00:07:27.700
<00:07:26.300>So <00:07:26.615>with <00:07:26.930>the <00:07:27.245>latest <00:07:27.560>version.

150
00:07:28.600 --> 00:07:31.100
<00:07:28.600>All <00:07:28.880>the <00:07:29.160>types <00:07:29.440>are <00:07:29.720>can <00:07:30.000>never

151
00:07:31.100 --> 00:07:34.300
<00:07:31.100>be <00:07:31.380>null <00:07:31.660>unless <00:07:31.940>you <00:07:32.220>say <00:07:32.500>it

152
00:07:34.300 --> 00:07:37.900
<00:07:34.300>can <00:07:34.533>so <00:07:34.766>each <00:07:35.000>variable <00:07:35.233>is <00:07:35.466>never <00:07:35.700>null

153
00:07:37.900 --> 00:07:40.400
<00:07:37.900>only <00:07:38.099>you <00:07:38.299>say <00:07:38.500>it <00:07:38.700>can <00:07:38.900>be <00:07:39.099>null <00:07:39.299>and

154
00:07:40.400 --> 00:07:43.600
<00:07:40.400>that's <00:07:40.575>also <00:07:40.750>a <00:07:40.924>very <00:07:41.099>big <00:07:41.275>benefit <00:07:41.450>because <00:07:41.625>I <00:07:41.799>guess

155
00:07:43.600 --> 00:07:46.600
<00:07:43.600>all <00:07:43.755>of <00:07:43.911>you <00:07:44.066>maybe <00:07:44.222>already <00:07:44.377>had <00:07:44.533>this <00:07:44.688>null <00:07:44.844>Point <00:07:45.000>exceptions

156
00:07:46.600 --> 00:07:49.900
<00:07:46.600>or <00:07:46.775>something <00:07:46.950>like <00:07:47.125>that. <00:07:47.300>This <00:07:47.475>cannot <00:07:47.650>be <00:07:47.825>any <00:07:48.000>more.

157
00:07:50.800 --> 00:07:53.400
<00:07:50.800>And <00:07:51.080>supports <00:07:51.360>General <00:07:51.640>types <00:07:51.920>top-level <00:07:52.200>functions

158
00:07:53.400 --> 00:07:56.500
<00:07:53.400>top-level <00:07:53.679>variables, <00:07:53.960>but <00:07:54.239>also <00:07:54.520>class <00:07:54.799>and

159
00:07:56.500 --> 00:07:59.500
<00:07:56.500>function <00:07:56.675>variables <00:07:56.850>and <00:07:57.025>what <00:07:57.200>they <00:07:57.375>don't <00:07:57.550>have <00:07:57.725>is <00:07:57.900>these

160
00:07:59.500 --> 00:08:02.100
<00:07:59.500>public-private <00:08:00.200>protected <00:08:00.900>keywords.

161
00:08:02.800 --> 00:08:05.100
<00:08:02.800>They <00:08:03.033>use <00:08:03.266>more <00:08:03.500>or <00:08:03.733>less <00:08:03.966>a <00:08:04.200>thing.

162
00:08:05.100 --> 00:08:08.800
<00:08:05.100>It's <00:08:05.300>the <00:08:05.500>underscore <00:08:05.700>for <00:08:05.900>private <00:08:06.100>members. <00:08:06.300>They <00:08:06.500>are

163
00:08:08.800 --> 00:08:11.700
<00:08:08.800>then <00:08:08.940>private <00:08:09.080>for <00:08:09.220>the <00:08:09.360>library. <00:08:09.500>But <00:08:09.640>all <00:08:09.780>the <00:08:09.920>rest <00:08:10.060>is <00:08:10.200>public.

164
00:08:13.600 --> 00:08:13.900
<00:08:13.600>and <00:08:13.870>there

165
00:08:14.800 --> 00:08:18.200
<00:08:14.800>I <00:08:14.975>would <00:08:15.150>say <00:08:15.325>let's <00:08:15.500>have <00:08:15.675>a <00:08:15.850>look <00:08:16.025>because <00:08:16.200>learning

166
00:08:17.200 --> 00:08:20.500
<00:08:17.200>a <00:08:17.375>language <00:08:17.550>or <00:08:17.724>seeing <00:08:17.900>about <00:08:18.075>a <00:08:18.250>language <00:08:18.425>is <00:08:18.599>always

167
00:08:20.500 --> 00:08:22.300
<00:08:20.500>easier <00:08:20.733>when <00:08:20.966>you <00:08:21.200>really <00:08:21.433>see <00:08:21.666>the <00:08:21.900>language.

168
00:08:26.200 --> 00:08:27.500
<00:08:26.200>Is <00:08:26.590>this <00:08:26.980>readable <00:08:27.370>also?

169
00:08:28.800 --> 00:08:29.500
<00:08:28.800>behind <00:08:29.430>or

170
00:08:30.400 --> 00:08:34.600
<00:08:30.400>yes, <00:08:30.555>no, <00:08:30.711>maybe <00:08:30.866>hands <00:08:31.022>up. <00:08:31.177>Yes. <00:08:31.333>Okay. <00:08:31.488>Thanks. <00:08:31.644>Okay. <00:08:31.799>This

171
00:08:34.600 --> 00:08:37.700
<00:08:34.600>would <00:08:34.740>be <00:08:34.880>our <00:08:35.020>main <00:08:35.159>function <00:08:35.300>and <00:08:35.440>that's <00:08:35.580>also <00:08:35.720>the <00:08:35.860>first <00:08:36.000>yeah

172
00:08:37.700 --> 00:08:40.500
<00:08:37.700>Global <00:08:38.050>function. <00:08:38.400>I <00:08:38.750>just <00:08:39.100>printed

173
00:08:40.500 --> 00:08:43.200
<00:08:40.500>out <00:08:40.627>hello <00:08:40.754>world. <00:08:40.881>That's <00:08:41.009>it. <00:08:41.136>That's <00:08:41.263>maybe <00:08:41.390>not <00:08:41.518>that <00:08:41.645>interesting. <00:08:41.772>So <00:08:41.900>I

174
00:08:43.200 --> 00:08:47.000
<00:08:43.200>created <00:08:43.480>some <00:08:43.760>more <00:08:44.040>interesting <00:08:44.320>parts <00:08:44.600>inside

175
00:08:46.600 --> 00:08:49.500
<00:08:46.600>this <00:08:46.800>so <00:08:47.000>here. <00:08:47.200>We <00:08:47.400>have <00:08:47.600>a <00:08:47.800>class. <00:08:48.000>I

176
00:08:49.500 --> 00:08:52.400
<00:08:49.500>think <00:08:49.675>it <00:08:49.850>looks <00:08:50.025>very <00:08:50.200>feminate <00:08:50.375>familiar <00:08:50.550>because <00:08:50.725>they <00:08:50.900>have

177
00:08:52.400 --> 00:08:55.400
<00:08:52.400>stolen <00:08:52.680>more <00:08:52.959>or <00:08:53.240>less <00:08:53.520>a <00:08:53.800>lot

178
00:08:55.400 --> 00:08:58.300
<00:08:55.400>of <00:08:55.507>things <00:08:55.615>from <00:08:55.723>our <00:08:55.830>languages <00:08:55.938>and <00:08:56.046>I <00:08:56.153>would <00:08:56.261>say <00:08:56.369>they <00:08:56.476>have <00:08:56.584>picked <00:08:56.692>the <00:08:56.800>best

179
00:08:58.300 --> 00:09:01.700
<00:08:58.300>parts <00:08:58.474>of <00:08:58.650>other <00:08:58.824>language <00:08:59.000>like <00:08:59.175>see <00:08:59.349>Sharp <00:08:59.525>Java <00:08:59.699>typescript

180
00:09:02.600 --> 00:09:05.300
<00:09:02.600>Here <00:09:02.833>we <00:09:03.066>have <00:09:03.300>the <00:09:03.533>first <00:09:03.766>private <00:09:04.000>member.

181
00:09:05.300 --> 00:09:08.900
<00:09:05.300>As <00:09:05.455>I <00:09:05.611>said, <00:09:05.766>it's <00:09:05.922>the <00:09:06.077>underscore. <00:09:06.233>It's <00:09:06.388>by <00:09:06.544>convention. <00:09:06.699>So

182
00:09:08.900 --> 00:09:11.600
<00:09:08.900>if <00:09:09.027>you <00:09:09.154>use <00:09:09.281>an <00:09:09.409>underscore <00:09:09.536>in <00:09:09.663>front <00:09:09.790>of <00:09:09.918>a <00:09:10.045>name, <00:09:10.172>it's <00:09:10.300>private.

183
00:09:11.600 --> 00:09:12.300
<00:09:11.600>That's <00:09:12.230>it.

184
00:09:13.300 --> 00:09:16.200
<00:09:13.300>We <00:09:13.474>have <00:09:13.650>to <00:09:13.824>type <00:09:14.000>interference. <00:09:14.175>So <00:09:14.349>I <00:09:14.525>just <00:09:14.699>can

185
00:09:16.200 --> 00:09:19.400
<00:09:16.200>pass <00:09:16.327>in <00:09:16.454>a <00:09:16.581>string <00:09:16.709>and <00:09:16.836>you <00:09:16.963>see <00:09:17.090>okay, <00:09:17.218>it <00:09:17.345>already <00:09:17.472>knows <00:09:17.600>it's

186
00:09:19.400 --> 00:09:21.100
<00:09:19.400>a <00:09:19.600>string <00:09:19.800>I <00:09:20.000>can <00:09:20.199>use <00:09:20.400>the <00:09:20.600>rock <00:09:20.800>keyboard.

187
00:09:21.900 --> 00:09:25.200
<00:09:21.900>As <00:09:22.100>I <00:09:22.300>said, <00:09:22.500>everything <00:09:22.699>is <00:09:22.900>not <00:09:23.100>null <00:09:23.300>unless

188
00:09:24.200 --> 00:09:27.300
<00:09:24.200>you <00:09:24.355>say <00:09:24.511>it <00:09:24.666>is <00:09:24.822>null <00:09:24.977>and <00:09:25.133>how <00:09:25.288>you <00:09:25.444>do <00:09:25.600>that

189
00:09:27.300 --> 00:09:30.700
<00:09:27.300>is <00:09:27.455>the <00:09:27.611>question <00:09:27.766>mark <00:09:27.922>operator. <00:09:28.077>So <00:09:28.233>if <00:09:28.388>I <00:09:28.544>use <00:09:28.699>string

190
00:09:30.700 --> 00:09:33.600
<00:09:30.700>so <00:09:30.875>my <00:09:31.050>type <00:09:31.225>question <00:09:31.400>mark <00:09:31.575>this <00:09:31.750>means <00:09:31.925>okay <00:09:32.100>last

191
00:09:33.600 --> 00:09:36.300
<00:09:33.600>name <00:09:33.880>can <00:09:34.160>be <00:09:34.440>null <00:09:34.720>and <00:09:35.000>it

192
00:09:36.300 --> 00:09:39.200
<00:09:36.300>is <00:09:36.455>also <00:09:36.611>not <00:09:36.766>at <00:09:36.922>the <00:09:37.077>beginning <00:09:37.233>so <00:09:37.388>you <00:09:37.544>as <00:09:37.699>a

193
00:09:39.200 --> 00:09:43.700
<00:09:39.200>developer <00:09:39.316>now <00:09:39.433>have <00:09:39.550>to <00:09:39.666>make <00:09:39.783>sure <00:09:39.900>that <00:09:40.016>you <00:09:40.133>don't <00:09:40.250>access <00:09:40.366>this <00:09:40.483>before <00:09:40.600>and

194
00:09:42.700 --> 00:09:45.800
<00:09:42.700>it <00:09:43.050>is <00:09:43.400>initialized. <00:09:43.750>Otherwise <00:09:44.100>the

195
00:09:45.800 --> 00:09:48.300
<00:09:45.800>compiler <00:09:46.000>does <00:09:46.199>it <00:09:46.400>but <00:09:46.599>if <00:09:46.800>you <00:09:47.000>use <00:09:47.199>that

196
00:09:48.300 --> 00:09:49.700
<00:09:48.300>you <00:09:48.615>have <00:09:48.930>to <00:09:49.245>do <00:09:49.560>it.

197
00:09:51.400 --> 00:09:54.500
<00:09:51.400>There <00:09:51.555>are <00:09:51.711>some <00:09:51.866>tricks <00:09:52.022>to <00:09:52.177>go <00:09:52.333>around <00:09:52.488>that <00:09:52.644>with <00:09:52.800>the

198
00:09:54.500 --> 00:09:58.200
<00:09:54.500>late <00:09:54.700>keyboard. <00:09:54.900>That <00:09:55.100>means <00:09:55.300>okay. <00:09:55.500>Hey <00:09:55.700>compiler. <00:09:55.900>I

199
00:09:57.200 --> 00:10:00.800
<00:09:57.200>know <00:09:57.375>it <00:09:57.550>better <00:09:57.725>than <00:09:57.900>you. <00:09:58.075>I <00:09:58.250>know <00:09:58.425>that <00:09:58.600>it

200
00:10:00.800 --> 00:10:03.300
<00:10:00.800>will <00:10:01.000>be <00:10:01.199>initialized <00:10:01.400>before <00:10:01.599>I <00:10:01.800>will <00:10:02.000>exit <00:10:02.199>it

201
00:10:03.300 --> 00:10:06.600
<00:10:03.300>don't <00:10:03.533>complain <00:10:03.766>about <00:10:04.000>it. <00:10:04.233>I <00:10:04.466>doing <00:10:04.699>everything.

202
00:10:08.400 --> 00:10:11.800
<00:10:08.400>We <00:10:08.555>have <00:10:08.711>constructures <00:10:08.866>also <00:10:09.022>nice <00:10:09.177>syntax <00:10:09.333>with <00:10:09.488>these <00:10:09.644>fasting <00:10:09.800>structures.

203
00:10:11.800 --> 00:10:14.500
<00:10:11.800>If <00:10:11.974>I <00:10:12.150>use <00:10:12.324>this <00:10:12.500>this <00:10:12.675>DOT <00:10:12.849>first <00:10:13.025>name, <00:10:13.199>so

204
00:10:14.500 --> 00:10:17.200
<00:10:14.500>the <00:10:14.627>first <00:10:14.754>argument <00:10:14.881>of <00:10:15.009>my <00:10:15.136>constructive <00:10:15.263>will <00:10:15.390>be <00:10:15.518>a <00:10:15.645>string <00:10:15.772>will <00:10:15.900>be

205
00:10:17.200 --> 00:10:20.300
<00:10:17.200>directly <00:10:17.355>passed <00:10:17.511>into <00:10:17.666>first <00:10:17.822>name. <00:10:17.977>I <00:10:18.133>don't <00:10:18.288>have <00:10:18.444>to <00:10:18.600>use

206
00:10:20.300 --> 00:10:23.500
<00:10:20.300>this. <00:10:20.579>Okay <00:10:20.859>argument <00:10:21.140>equals <00:10:21.420>the <00:10:21.699>other

207
00:10:23.500 --> 00:10:26.400
<00:10:23.500>thing. <00:10:23.700>I <00:10:23.900>just <00:10:24.100>can't <00:10:24.300>be <00:10:24.500>way <00:10:24.700>faster <00:10:24.900>and

208
00:10:26.400 --> 00:10:26.700
<00:10:26.400>more <00:10:26.670>productive.

209
00:10:27.700 --> 00:10:30.300
<00:10:27.700>I <00:10:27.875>have <00:10:28.050>gatters <00:10:28.225>and <00:10:28.400>Setters <00:10:28.575>as <00:10:28.750>we <00:10:28.925>know <00:10:29.100>it

210
00:10:30.300 --> 00:10:33.400
<00:10:30.300>in <00:10:30.474>other <00:10:30.650>languages. <00:10:30.824>I <00:10:31.000>have <00:10:31.175>class <00:10:31.349>functions <00:10:31.525>as <00:10:31.699>we

211
00:10:33.400 --> 00:10:34.200
<00:10:33.400>know <00:10:33.580>it <00:10:33.760>in <00:10:33.940>other <00:10:34.120>languages.

212
00:10:36.100 --> 00:10:39.800
<00:10:36.100>What <00:10:36.300>they <00:10:36.500>also <00:10:36.700>have <00:10:36.900>is <00:10:37.100>so-called <00:10:37.300>factories. <00:10:37.500>I

213
00:10:39.800 --> 00:10:42.500
<00:10:39.800>also <00:10:40.000>like <00:10:40.199>that <00:10:40.400>that's <00:10:40.599>a <00:10:40.800>possibility <00:10:41.000>to <00:10:41.199>provide

214
00:10:42.500 --> 00:10:45.700
<00:10:42.500>inside <00:10:42.850>a <00:10:43.200>class <00:10:43.550>more <00:10:43.900>or

215
00:10:45.700 --> 00:10:49.300
<00:10:45.700>less <00:10:45.900>different <00:10:46.100>kind <00:10:46.300>of <00:10:46.500>creation <00:10:46.700>processes. <00:10:46.900>It's <00:10:47.100>like

216
00:10:49.300 --> 00:10:52.200
<00:10:49.300>aesthetic <00:10:49.533>function. <00:10:49.766>Oh, <00:10:50.000>but <00:10:50.233>they <00:10:50.466>give <00:10:50.699>it

217
00:10:52.200 --> 00:10:55.500
<00:10:52.200>a <00:10:52.375>real <00:10:52.550>new <00:10:52.725>keyword <00:10:52.900>so <00:10:53.075>that <00:10:53.250>you <00:10:53.425>really <00:10:53.600>know.

218
00:10:55.500 --> 00:10:58.400
<00:10:55.500>Okay. <00:10:55.655>This <00:10:55.811>is <00:10:55.966>just <00:10:56.122>a <00:10:56.277>factory. <00:10:56.433>It <00:10:56.588>will <00:10:56.744>always <00:10:56.900>produce

219
00:10:58.400 --> 00:11:01.600
<00:10:58.400>me <00:10:58.633>new <00:10:58.866>patients <00:10:59.100>in <00:10:59.333>this <00:10:59.566>case <00:10:59.800>and

220
00:11:01.600 --> 00:11:04.100
<00:11:01.600>I <00:11:01.755>call <00:11:01.911>it <00:11:02.066>maybe <00:11:02.222>dummy <00:11:02.377>Factory, <00:11:02.533>but <00:11:02.688>maybe <00:11:02.844>if <00:11:03.000>you

221
00:11:04.100 --> 00:11:07.300
<00:11:04.100>use <00:11:04.300>different <00:11:04.500>kind <00:11:04.700>of <00:11:04.900>creation <00:11:05.100>processes, <00:11:05.300>this <00:11:05.500>is

222
00:11:07.300 --> 00:11:10.300
<00:11:07.300>an <00:11:07.407>I <00:11:07.515>think <00:11:07.623>and <00:11:07.730>maybe <00:11:07.838>some <00:11:07.946>of <00:11:08.053>you <00:11:08.161>maybe <00:11:08.269>also <00:11:08.376>know <00:11:08.484>the <00:11:08.592>Builder <00:11:08.699>pattern

223
00:11:10.300 --> 00:11:13.100
<00:11:10.300>then <00:11:10.439>you <00:11:10.579>can <00:11:10.719>work <00:11:10.859>with <00:11:11.000>that <00:11:11.140>also <00:11:11.280>a <00:11:11.420>little <00:11:11.560>bit <00:11:11.699>easier.

224
00:11:14.800 --> 00:11:16.100
<00:11:14.800>They <00:11:15.385>have <00:11:15.970>enumerations.

225
00:11:16.900 --> 00:11:19.300
<00:11:16.900>List <00:11:17.180>and <00:11:17.459>generics. <00:11:17.740>So <00:11:18.020>everything <00:11:18.300>what

226
00:11:19.300 --> 00:11:22.500
<00:11:19.300>we <00:11:19.500>know <00:11:19.699>or <00:11:19.900>from <00:11:20.099>other <00:11:20.300>languages <00:11:20.500>you <00:11:20.699>have

227
00:11:22.500 --> 00:11:25.400
<00:11:22.500>sets <00:11:22.780>Maps. <00:11:23.060>I <00:11:23.340>think <00:11:23.620>that's <00:11:23.900>that's

228
00:11:25.400 --> 00:11:26.500
<00:11:25.400>quite <00:11:26.390>straightforward.

229
00:11:27.100 --> 00:11:30.600
<00:11:27.100>What <00:11:27.300>is <00:11:27.500>maybe <00:11:27.700>not <00:11:27.900>that <00:11:28.100>straightforward <00:11:28.300>but <00:11:28.500>some

230
00:11:30.600 --> 00:11:33.600
<00:11:30.600>languages <00:11:30.775>already <00:11:30.950>also <00:11:31.125>have <00:11:31.300>it <00:11:31.475>is <00:11:31.650>extension <00:11:31.825>methods. <00:11:32.000>So

231
00:11:33.600 --> 00:11:36.200
<00:11:33.600>a <00:11:33.775>lot <00:11:33.950>of <00:11:34.125>times <00:11:34.300>you <00:11:34.475>use <00:11:34.650>Frameworks <00:11:34.825>or <00:11:35.000>other

232
00:11:36.200 --> 00:11:39.200
<00:11:36.200>libraries, <00:11:36.375>but <00:11:36.550>you <00:11:36.725>want <00:11:36.900>to <00:11:37.075>extend <00:11:37.250>them <00:11:37.425>and <00:11:37.600>you

233
00:11:39.200 --> 00:11:42.300
<00:11:39.200>can't <00:11:39.375>do <00:11:39.550>that <00:11:39.725>because <00:11:39.900>you <00:11:40.075>are <00:11:40.250>not <00:11:40.425>controlling <00:11:40.600>the

234
00:11:42.300 --> 00:11:45.000
<00:11:42.300>source <00:11:42.579>code. <00:11:42.859>Yeah. <00:11:43.140>So <00:11:43.420>a <00:11:43.699>lot

235
00:11:45.100 --> 00:11:48.100
<00:11:45.100>of <00:11:45.240>times <00:11:45.380>then <00:11:45.520>we <00:11:45.660>use <00:11:45.800>these <00:11:45.940>helper <00:11:46.080>functions. <00:11:46.220>Yeah, <00:11:46.360>and <00:11:46.500>I

236
00:11:48.100 --> 00:11:51.400
<00:11:48.100>think <00:11:48.227>that's <00:11:48.354>always <00:11:48.481>not <00:11:48.609>nice. <00:11:48.736>So <00:11:48.863>what <00:11:48.990>we <00:11:49.118>could <00:11:49.245>do <00:11:49.372>here <00:11:49.500>is

237
00:11:51.400 --> 00:11:53.400
<00:11:51.400>we <00:11:51.680>could <00:11:51.959>create <00:11:52.240>a <00:11:52.520>extension <00:11:52.800>method

238
00:11:54.300 --> 00:11:57.400
<00:11:54.300>So <00:11:54.455>we <00:11:54.611>give <00:11:54.766>the <00:11:54.922>extension <00:11:55.077>on <00:11:55.233>a <00:11:55.388>name <00:11:55.544>and <00:11:55.699>say

239
00:11:57.400 --> 00:12:00.200
<00:11:57.400>okay <00:11:57.574>which <00:11:57.750>type <00:11:57.925>we <00:11:58.100>want <00:11:58.275>to <00:11:58.449>extend <00:11:58.625>in <00:11:58.800>our

240
00:12:00.200 --> 00:12:01.600
<00:12:00.200>case. <00:12:00.515>It's <00:12:00.830>the <00:12:01.145>string <00:12:01.460>type.

241
00:12:02.800 --> 00:12:05.200
<00:12:02.800>And <00:12:02.974>I <00:12:03.150>give <00:12:03.324>the <00:12:03.500>string <00:12:03.675>type <00:12:03.849>now <00:12:04.025>a <00:12:04.199>new

242
00:12:05.200 --> 00:12:08.400
<00:12:05.200>function <00:12:05.400>pass <00:12:05.600>in <00:12:05.800>now <00:12:06.000>it <00:12:06.200>will <00:12:06.400>return <00:12:06.600>an

243
00:12:08.400 --> 00:12:08.700
integer.

244
00:12:09.700 --> 00:12:12.600
<00:12:09.700>And <00:12:09.875>how <00:12:10.050>do <00:12:10.225>I <00:12:10.400>use <00:12:10.575>that <00:12:10.750>afterwards? <00:12:10.925>I <00:12:11.100>just

245
00:12:12.600 --> 00:12:15.900
<00:12:12.600>can <00:12:12.800>now <00:12:13.000>use <00:12:13.200>a <00:12:13.400>string <00:12:13.600>and <00:12:13.800>make <00:12:14.000>dot

246
00:12:15.900 --> 00:12:18.300
<00:12:15.900>pass <00:12:16.133>in <00:12:16.366>so <00:12:16.600>I <00:12:16.833>directly <00:12:17.066>use <00:12:17.300>this

247
00:12:18.300 --> 00:12:21.600
<00:12:18.300>function <00:12:18.474>on <00:12:18.650>a <00:12:18.824>string <00:12:19.000>and <00:12:19.175>it <00:12:19.349>will <00:12:19.525>return <00:12:19.699>me

248
00:12:21.600 --> 00:12:24.100
<00:12:21.600>the <00:12:21.950>integer <00:12:22.300>representation <00:12:22.650>or <00:12:23.000>the

249
00:12:24.100 --> 00:12:27.500
<00:12:24.100>cast <00:12:24.275>of <00:12:24.450>this <00:12:24.625>string. <00:12:24.800>So <00:12:24.975>now <00:12:25.150>I <00:12:25.325>can <00:12:25.500>easily

250
00:12:27.500 --> 00:12:30.600
<00:12:27.500>extend <00:12:27.780>other <00:12:28.060>libraries <00:12:28.340>with <00:12:28.620>my <00:12:28.900>languages

251
00:12:30.600 --> 00:12:33.600
<00:12:30.600>without <00:12:30.833>the <00:12:31.066>need <00:12:31.300>of <00:12:31.533>having <00:12:31.766>or <00:12:32.000>changing

252
00:12:33.600 --> 00:12:35.900
<00:12:33.600>the <00:12:33.880>source <00:12:34.160>code <00:12:34.440>of <00:12:34.720>this <00:12:35.000>libraries.

253
00:12:38.400 --> 00:12:41.500
<00:12:38.400>Another <00:12:38.633>nice <00:12:38.866>thing <00:12:39.100>is <00:12:39.333>our <00:12:39.566>are <00:12:39.800>the

254
00:12:41.500 --> 00:12:44.400
<00:12:41.500>so-called <00:12:41.780>Cascades. <00:12:42.060>I <00:12:42.340>also <00:12:42.620>like <00:12:42.900>that

255
00:12:44.400 --> 00:12:48.100
<00:12:44.400>a <00:12:44.527>lot <00:12:44.654>because <00:12:44.781>it <00:12:44.909>shifts <00:12:45.036>away <00:12:45.163>a <00:12:45.290>lot <00:12:45.418>of <00:12:45.545>these <00:12:45.672>boilerplate <00:12:45.800>typing.

256
00:12:47.100 --> 00:12:50.300
<00:12:47.100>Yeah. <00:12:47.800>So <00:12:48.500>with

257
00:12:50.300 --> 00:12:53.600
<00:12:50.300>these <00:12:50.500>two <00:12:50.699>dots <00:12:50.900>that <00:12:51.099>are <00:12:51.300>the <00:12:51.500>Cascades <00:12:51.699>I

258
00:12:53.600 --> 00:12:56.100
<00:12:53.600>can <00:12:53.950>set <00:12:54.300>variables <00:12:54.650>on <00:12:55.000>a

259
00:12:56.100 --> 00:12:59.200
<00:12:56.100>now <00:12:56.450>created <00:12:56.800>object. <00:12:57.150>So <00:12:57.500>what

260
00:12:59.200 --> 00:13:02.500
<00:12:59.200>I <00:12:59.340>have <00:12:59.480>here <00:12:59.620>is <00:12:59.760>patient <00:12:59.900>first <00:13:00.040>name, <00:13:00.180>so <00:13:00.320>I <00:13:00.460>create <00:13:00.600>patient

261
00:13:02.500 --> 00:13:05.600
<00:13:02.500>and <00:13:02.700>on <00:13:02.900>this <00:13:03.100>patient <00:13:03.300>I <00:13:03.500>now <00:13:03.700>said <00:13:03.900>also

262
00:13:05.600 --> 00:13:08.200
<00:13:05.600>last <00:13:05.740>name <00:13:05.880>the <00:13:06.020>last <00:13:06.160>name <00:13:06.300>H <00:13:06.440>to <00:13:06.580>H <00:13:06.720>and <00:13:06.860>anything <00:13:07.000>to

263
00:13:08.200 --> 00:13:11.500
<00:13:08.200>anything <00:13:08.480>normally <00:13:08.760>we <00:13:09.040>would <00:13:09.320>have <00:13:09.600>written

264
00:13:11.500 --> 00:13:13.800
<00:13:11.500>something <00:13:11.850>like <00:13:12.200>that <00:13:12.550>so <00:13:12.900>patient.

265
00:13:15.100 --> 00:13:18.400
<00:13:15.100>DOT <00:13:15.333>first <00:13:15.566>the <00:13:15.800>last <00:13:16.033>name <00:13:16.266>equals <00:13:16.500>patient

266
00:13:18.400 --> 00:13:21.600
<00:13:18.400>dot <00:13:18.600>h <00:13:18.800>equals <00:13:19.000>patient <00:13:19.199>dot <00:13:19.400>anything <00:13:19.600>equals <00:13:19.800>and

267
00:13:21.600 --> 00:13:24.200
<00:13:21.600>all <00:13:21.833>these <00:13:22.066>things <00:13:22.300>we <00:13:22.533>get <00:13:22.766>rid <00:13:23.000>by

268
00:13:24.200 --> 00:13:28.600
<00:13:24.200>just <00:13:24.375>using <00:13:24.550>these <00:13:24.725>two <00:13:24.900>dots <00:13:25.075>and <00:13:25.250>that's <00:13:25.425>it. <00:13:25.600>So

269
00:13:27.600 --> 00:13:30.200
<00:13:27.600>again <00:13:27.880>a <00:13:28.160>lot <00:13:28.440>of <00:13:28.720>boilerplate <00:13:29.000>code

270
00:13:30.200 --> 00:13:31.200
<00:13:30.200>gone <00:13:31.100>away.

271
00:13:33.200 --> 00:13:38.000
<00:13:33.200>Another <00:13:33.433>thing <00:13:33.666>they <00:13:33.900>introduced <00:13:34.133>very <00:13:34.366>lately <00:13:34.600>since

272
00:13:37.100 --> 00:13:40.300
<00:13:37.100>2.17 <00:13:38.500>which

273
00:13:40.300 --> 00:13:43.600
<00:13:40.300>was <00:13:40.439>released. <00:13:40.579>I <00:13:40.719>think <00:13:40.859>three <00:13:41.000>weeks <00:13:41.140>ago <00:13:41.280>on <00:13:41.420>the <00:13:41.560>last <00:13:41.699>Google

274
00:13:43.600 --> 00:13:44.100
conference.

275
00:13:44.800 --> 00:13:47.900
<00:13:44.800>We <00:13:45.079>can <00:13:45.359>now <00:13:45.640>give <00:13:45.920>an <00:13:46.199>enumeration

276
00:13:47.900 --> 00:13:50.200
<00:13:47.900>members <00:13:48.600>and <00:13:49.300>Constructors.

277
00:13:51.200 --> 00:13:54.600
<00:13:51.200>So <00:13:51.375>an <00:13:51.550>enumeration <00:13:51.725>is <00:13:51.900>now <00:13:52.075>a <00:13:52.250>little <00:13:52.425>bit <00:13:52.600>similar

278
00:13:54.600 --> 00:13:57.300
<00:13:54.600>to <00:13:54.775>a <00:13:54.950>class <00:13:55.125>and <00:13:55.300>a <00:13:55.475>lot <00:13:55.650>of <00:13:55.825>times. <00:13:56.000>This

279
00:13:57.300 --> 00:14:00.500
<00:13:57.300>is <00:13:57.439>very <00:13:57.579>handy. <00:13:57.719>If <00:13:57.859>you <00:13:58.000>want <00:13:58.140>to <00:13:58.280>work <00:13:58.420>in <00:13:58.560>your <00:13:58.699>cold

280
00:14:00.500 --> 00:14:03.200
<00:14:00.500>base <00:14:00.780>with <00:14:01.060>a <00:14:01.340>nicely <00:14:01.620>with <00:14:01.900>light

281
00:14:03.200 --> 00:14:06.900
<00:14:03.200>nicely <00:14:03.375>names <00:14:03.550>with <00:14:03.725>enums, <00:14:03.900>but <00:14:04.075>maybe <00:14:04.250>the <00:14:04.425>old <00:14:04.600>back-end

282
00:14:06.900 --> 00:14:09.900
<00:14:06.900>service <00:14:07.133>still <00:14:07.366>uses <00:14:07.600>something <00:14:07.833>like <00:14:08.066>integer <00:14:08.300>representation

283
00:14:09.900 --> 00:14:12.800
<00:14:09.900>or <00:14:10.055>only <00:14:10.211>one <00:14:10.366>Char <00:14:10.522>or <00:14:10.677>something <00:14:10.833>like <00:14:10.988>that. <00:14:11.144>This <00:14:11.300>is

284
00:14:12.800 --> 00:14:15.200
<00:14:12.800>something <00:14:13.000>I <00:14:13.199>wanted <00:14:13.400>to <00:14:13.599>show <00:14:13.800>here. <00:14:14.000>So <00:14:14.199>for

285
00:14:15.200 --> 00:14:18.500
<00:14:15.200>example, <00:14:15.340>you <00:14:15.480>want <00:14:15.620>to <00:14:15.760>work <00:14:15.900>with <00:14:16.040>north <00:14:16.180>east <00:14:16.320>south <00:14:16.460>west <00:14:16.600>in

286
00:14:18.500 --> 00:14:21.500
<00:14:18.500>your <00:14:18.627>cold <00:14:18.754>base, <00:14:18.881>but <00:14:19.009>the <00:14:19.136>old <00:14:19.263>back <00:14:19.390>and <00:14:19.518>service <00:14:19.645>or <00:14:19.772>another <00:14:19.900>old

287
00:14:21.500 --> 00:14:25.300
<00:14:21.500>library, <00:14:21.655>you <00:14:21.811>have <00:14:21.966>to <00:14:22.122>use <00:14:22.277>still <00:14:22.433>works <00:14:22.588>with <00:14:22.744>an <00:14:22.900>esw,

288
00:14:24.300 --> 00:14:27.400
<00:14:24.300>which <00:14:24.579>is <00:14:24.859>not <00:14:25.140>that <00:14:25.420>nicely <00:14:25.699>and

289
00:14:27.400 --> 00:14:28.000
<00:14:27.400>also <00:14:27.579>has <00:14:27.760>a <00:14:27.940>string.

290
00:14:28.900 --> 00:14:31.500
<00:14:28.900>So <00:14:29.133>you <00:14:29.366>can <00:14:29.600>now <00:14:29.833>give <00:14:30.066>an <00:14:30.300>enum

291
00:14:31.500 --> 00:14:34.800
<00:14:31.500>more <00:14:31.733>or <00:14:31.966>less <00:14:32.200>a <00:14:32.433>private <00:14:32.666>member <00:14:32.900>this

292
00:14:34.800 --> 00:14:35.300
<00:14:34.800>short <00:14:35.250>name.

293
00:14:36.300 --> 00:14:39.400
<00:14:36.300>And <00:14:36.579>Constructor <00:14:36.859>where <00:14:37.140>you <00:14:37.420>molest <00:14:37.699>create

294
00:14:39.400 --> 00:14:44.000
<00:14:39.400>the <00:14:39.574>shortening <00:14:39.750>and <00:14:39.925>then <00:14:40.100>you <00:14:40.275>can <00:14:40.449>easily <00:14:40.625>create <00:14:40.800>enum

295
00:14:42.300 --> 00:14:45.900
<00:14:42.300>values <00:14:43.000>which <00:14:43.699>have

296
00:14:45.900 --> 00:14:48.200
<00:14:45.900>an <00:14:46.133>internal <00:14:46.366>representation, <00:14:46.600>which <00:14:46.833>you <00:14:47.066>then <00:14:47.300>can

297
00:14:48.200 --> 00:14:51.200
<00:14:48.200>pass <00:14:48.400>further <00:14:48.600>to <00:14:48.800>your <00:14:49.000>backend <00:14:49.200>service <00:14:49.400>and <00:14:49.600>that's

298
00:14:51.200 --> 00:14:54.600
<00:14:51.200>quite <00:14:51.400>handy <00:14:51.600>so <00:14:51.800>you <00:14:52.000>can <00:14:52.200>easily <00:14:52.400>access <00:14:52.600>these

299
00:14:54.600 --> 00:14:55.200
<00:14:54.600>two <00:14:55.140>things.

300
00:14:57.500 --> 00:15:00.100
<00:14:57.500>Another <00:14:57.700>very <00:14:57.900>nice <00:14:58.100>thing <00:14:58.300>which <00:14:58.500>I <00:14:58.700>like <00:14:58.900>a

301
00:15:00.100 --> 00:15:01.800
<00:15:00.100>lot <00:15:00.800>are <00:15:01.500>mixins.

302
00:15:03.200 --> 00:15:06.200
<00:15:03.200>I'm <00:15:03.375>not <00:15:03.550>a <00:15:03.725>very <00:15:03.900>big <00:15:04.075>fan <00:15:04.250>of <00:15:04.425>inheritance <00:15:04.600>because

303
00:15:06.200 --> 00:15:10.200
<00:15:06.200>always <00:15:06.400>when <00:15:06.600>I <00:15:06.800>see <00:15:07.000>using <00:15:07.200>someone <00:15:07.400>inheritance <00:15:07.600>it

304
00:15:09.200 --> 00:15:12.200
<00:15:09.200>is <00:15:09.550>wrong <00:15:09.900>and <00:15:10.250>it <00:15:10.600>leads

305
00:15:12.200 --> 00:15:15.300
<00:15:12.200>to <00:15:12.400>a <00:15:12.600>lot <00:15:12.800>of <00:15:13.000>failures. <00:15:13.200>My <00:15:13.400>very <00:15:13.600>famous

306
00:15:15.300 --> 00:15:17.700
<00:15:15.300>example <00:15:15.533>is <00:15:15.766>these <00:15:16.000>okay <00:15:16.233>we <00:15:16.466>have <00:15:16.699>animals

307
00:15:18.700 --> 00:15:21.300
<00:15:18.700>then <00:15:18.900>you <00:15:19.100>have <00:15:19.300>flying <00:15:19.500>animals <00:15:19.700>and <00:15:19.900>swimming <00:15:20.100>animals.

308
00:15:22.000 --> 00:15:22.300
Okay.

309
00:15:23.100 --> 00:15:27.800
<00:15:23.100>What <00:15:23.227>for <00:15:23.354>example <00:15:23.481>is <00:15:23.609>a <00:15:23.736>duck <00:15:23.863>duck <00:15:23.990>flies <00:15:24.118>in <00:15:24.245>swims <00:15:24.372>are <00:15:24.500>shark

310
00:15:27.800 --> 00:15:30.500
<00:15:27.800>can <00:15:28.033>only <00:15:28.266>swim <00:15:28.500>but <00:15:28.733>not <00:15:28.966>flying. <00:15:29.199>So

311
00:15:30.500 --> 00:15:33.900
<00:15:30.500>how <00:15:30.733>do <00:15:30.966>you <00:15:31.200>make <00:15:31.433>this <00:15:31.666>inheritance <00:15:31.900>hierarchy,

312
00:15:33.900 --> 00:15:36.400
<00:15:33.900>right <00:15:34.180>and <00:15:34.459>with <00:15:34.740>mixins <00:15:35.020>you <00:15:35.300>come

313
00:15:36.400 --> 00:15:39.400
<00:15:36.400>over <00:15:36.600>it <00:15:36.800>a <00:15:37.000>mixing <00:15:37.199>you <00:15:37.400>could <00:15:37.600>imagine <00:15:37.800>it's

314
00:15:39.400 --> 00:15:42.900
<00:15:39.400>like <00:15:39.600>an <00:15:39.800>interface <00:15:40.000>but <00:15:40.199>with <00:15:40.400>the <00:15:40.600>implementation <00:15:40.800>and

315
00:15:42.900 --> 00:15:45.100
<00:15:42.900>that's <00:15:43.100>the <00:15:43.300>nice <00:15:43.500>thing <00:15:43.699>so <00:15:43.900>a <00:15:44.100>mix <00:15:44.300>in

316
00:15:45.100 --> 00:15:48.000
<00:15:45.100>you <00:15:45.300>can <00:15:45.500>molest <00:15:45.700>use <00:15:45.900>as <00:15:46.100>a <00:15:46.300>kind <00:15:46.500>of

317
00:15:48.800 --> 00:15:51.500
<00:15:48.800>interface, <00:15:49.000>but <00:15:49.199>you <00:15:49.400>can <00:15:49.599>also <00:15:49.800>pass <00:15:50.000>and <00:15:50.199>implementation.

318
00:15:51.500 --> 00:15:54.800
<00:15:51.500>So <00:15:51.640>for <00:15:51.780>example <00:15:51.920>here, <00:15:52.060>we <00:15:52.200>have <00:15:52.340>a <00:15:52.480>mixing <00:15:52.620>address <00:15:52.760>the <00:15:52.900>street

319
00:15:54.800 --> 00:15:56.400
<00:15:54.800>house <00:15:55.079>number <00:15:55.359>City <00:15:55.640>and <00:15:55.920>an <00:15:56.199>address.

320
00:15:57.400 --> 00:16:00.700
<00:15:57.400>And <00:15:57.516>then <00:15:57.633>I <00:15:57.750>can <00:15:57.866>have <00:15:57.983>a <00:15:58.100>class <00:15:58.216>user <00:15:58.333>and <00:15:58.449>I <00:15:58.566>say <00:15:58.683>with <00:15:58.800>address.

321
00:16:01.500 --> 00:16:04.500
<00:16:01.500>But <00:16:01.655>I <00:16:01.811>also <00:16:01.966>can <00:16:02.122>have <00:16:02.277>more <00:16:02.433>than <00:16:02.588>one <00:16:02.744>which <00:16:02.900>is

322
00:16:04.500 --> 00:16:07.100
<00:16:04.500>inheritance <00:16:04.733>in <00:16:04.966>the <00:16:05.200>most <00:16:05.433>language <00:16:05.666>is <00:16:05.900>not

323
00:16:07.100 --> 00:16:10.400
<00:16:07.100>possible. <00:16:07.240>You <00:16:07.380>can <00:16:07.520>only <00:16:07.660>have <00:16:07.800>one <00:16:07.940>parent <00:16:08.080>because <00:16:08.220>it <00:16:08.360>behaves <00:16:08.500>like

324
00:16:10.400 --> 00:16:14.200
<00:16:10.400>an <00:16:10.574>interface <00:16:10.750>and <00:16:10.925>then <00:16:11.100>I <00:16:11.275>can <00:16:11.449>easily. <00:16:11.625>Yeah <00:16:11.800>use

325
00:16:13.200 --> 00:16:16.900
<00:16:13.200>on <00:16:13.480>a <00:16:13.760>user <00:16:14.040>also <00:16:14.320>the <00:16:14.600>address

326
00:16:16.900 --> 00:16:19.400
<00:16:16.900>and <00:16:17.100>the <00:16:17.300>street <00:16:17.500>which <00:16:17.699>I <00:16:17.900>have <00:16:18.100>more <00:16:18.300>less

327
00:16:19.400 --> 00:16:22.600
<00:16:19.400>defined <00:16:19.600>in <00:16:19.800>my <00:16:20.000>mixing <00:16:20.199>and <00:16:20.400>that's <00:16:20.600>quite <00:16:20.800>handy.

328
00:16:22.600 --> 00:16:26.000
<00:16:22.600>This <00:16:22.880>is <00:16:23.160>way <00:16:23.440>more. <00:16:23.720>Yeah <00:16:24.000>a

329
00:16:25.600 --> 00:16:28.500
<00:16:25.600>composition <00:16:25.880>way <00:16:26.160>instead <00:16:26.440>of <00:16:26.720>inheritance <00:16:27.000>now

330
00:16:28.500 --> 00:16:31.400
<00:16:28.500>favor <00:16:28.733>composition <00:16:28.966>of <00:16:29.200>inheritance. <00:16:29.433>That's <00:16:29.666>always <00:16:29.900>a

331
00:16:31.400 --> 00:16:31.700
<00:16:31.400>nice <00:16:31.670>thing.

332
00:16:33.200 --> 00:16:35.200
<00:16:33.200>And <00:16:33.400>that's <00:16:33.600>something <00:16:33.800>I <00:16:34.000>really <00:16:34.200>like <00:16:34.400>a <00:16:34.600>lot.

333
00:16:36.200 --> 00:16:39.800
<00:16:36.200>We <00:16:36.355>also <00:16:36.511>have <00:16:36.666>something <00:16:36.822>like <00:16:36.977>generators. <00:16:37.133>We <00:16:37.288>have <00:16:37.444>generators <00:16:37.600>sync

334
00:16:39.800 --> 00:16:42.700
<00:16:39.800>and <00:16:39.955>async. <00:16:40.111>So <00:16:40.266>if <00:16:40.422>you <00:16:40.577>have <00:16:40.733>to <00:16:40.888>generate <00:16:41.044>different <00:16:41.199>values,

335
00:16:42.700 --> 00:16:45.900
<00:16:42.700>yeah, <00:16:42.980>or <00:16:43.260>you <00:16:43.540>get <00:16:43.820>values <00:16:44.100>by

336
00:16:45.900 --> 00:16:48.800
<00:16:45.900>a <00:16:46.055>stream <00:16:46.211>from <00:16:46.366>the <00:16:46.522>network <00:16:46.677>or <00:16:46.833>from <00:16:46.988>a <00:16:47.144>video <00:16:47.300>or

337
00:16:48.800 --> 00:16:51.600
<00:16:48.800>somewhere <00:16:49.033>else. <00:16:49.266>You <00:16:49.500>can <00:16:49.733>easily <00:16:49.966>use <00:16:50.199>that.

338
00:16:54.200 --> 00:16:56.400
<00:16:54.200>So <00:16:54.480>far <00:16:54.760>about <00:16:55.040>the <00:16:55.320>type <00:16:55.600>system.

339
00:16:58.800 --> 00:17:01.900
<00:16:58.800>And <00:16:58.974>this <00:16:59.150>is <00:16:59.324>only <00:16:59.500>a <00:16:59.675>very <00:16:59.849>short <00:17:00.025>introduction <00:17:00.199>that's

340
00:17:01.900 --> 00:17:04.100
<00:17:01.900>way <00:17:02.250>more. <00:17:02.600>But <00:17:02.949>I <00:17:03.300>think

341
00:17:04.100 --> 00:17:07.400
<00:17:04.099>that <00:17:04.216>are <00:17:04.333>then <00:17:04.449>the <00:17:04.566>nice <00:17:04.683>things <00:17:04.800>which <00:17:04.916>a <00:17:05.033>little <00:17:05.149>bit <00:17:05.266>different <00:17:05.383>to <00:17:05.500>other

342
00:17:07.400 --> 00:17:07.600
languages.

343
00:17:10.200 --> 00:17:13.300
<00:17:10.200>What's <00:17:10.340>also <00:17:10.480>very <00:17:10.620>important <00:17:10.760>I <00:17:10.900>think <00:17:11.040>is <00:17:11.180>asynchronous <00:17:11.319>programming <00:17:11.460>because <00:17:11.600>that's

344
00:17:13.300 --> 00:17:16.500
<00:17:13.300>something <00:17:13.440>we <00:17:13.579>normally <00:17:13.720>want <00:17:13.859>to <00:17:14.000>have <00:17:14.139>always <00:17:14.280>in <00:17:14.419>our <00:17:14.560>new <00:17:14.700>yeah

345
00:17:16.500 --> 00:17:19.600
<00:17:16.500>Frameworks <00:17:16.733>or <00:17:16.966>a <00:17:17.200>new <00:17:17.433>programs. <00:17:17.666>They <00:17:17.900>use

346
00:17:19.600 --> 00:17:22.600
<00:17:19.599>this <00:17:19.833>typical <00:17:20.066>async <00:17:20.300>wage <00:17:20.533>and <00:17:20.766>future <00:17:21.000>and

347
00:17:22.600 --> 00:17:25.400
<00:17:22.599>streams <00:17:22.949>for <00:17:23.300>as <00:17:23.649>encourage <00:17:24.000>programming,

348
00:17:25.400 --> 00:17:29.400
<00:17:25.400>but <00:17:25.600>they <00:17:25.800>also <00:17:26.000>use <00:17:26.200>so <00:17:26.400>called <00:17:26.600>isolates. <00:17:26.800>Yeah,

349
00:17:28.400 --> 00:17:31.100
<00:17:28.400>which <00:17:28.750>is <00:17:29.100>a <00:17:29.450>kind <00:17:29.800>of

350
00:17:31.100 --> 00:17:34.700
<00:17:31.100>threat. <00:17:31.300>But <00:17:31.500>the <00:17:31.699>nice <00:17:31.899>thing <00:17:32.100>is <00:17:32.300>they <00:17:32.500>don't

351
00:17:34.700 --> 00:17:37.200
<00:17:34.700>share <00:17:34.900>the <00:17:35.100>memory <00:17:35.300>Heap <00:17:35.500>so <00:17:35.700>you <00:17:35.900>don't <00:17:36.100>have

352
00:17:37.200 --> 00:17:40.600
<00:17:37.200>to <00:17:37.433>think <00:17:37.666>about <00:17:37.900>locks <00:17:38.133>mutexes. <00:17:38.366>Yeah, <00:17:38.600>which

353
00:17:40.600 --> 00:17:44.200
<00:17:40.600>is <00:17:41.066>always <00:17:41.533>very <00:17:42.000>handsome.

354
00:17:45.200 --> 00:17:48.200
<00:17:45.200>So <00:17:45.340>you <00:17:45.480>have <00:17:45.620>an <00:17:45.760>isolate <00:17:45.900>it's <00:17:46.040>way <00:17:46.180>easier <00:17:46.320>to <00:17:46.460>spread <00:17:46.600>it.

355
00:17:48.200 --> 00:17:51.200
<00:17:48.200>You <00:17:48.307>don't <00:17:48.415>have <00:17:48.523>to <00:17:48.630>think <00:17:48.738>about <00:17:48.846>the <00:17:48.953>memory. <00:17:49.061>Yeah, <00:17:49.169>you <00:17:49.276>don't <00:17:49.384>have <00:17:49.492>to <00:17:49.600>think

356
00:17:51.200 --> 00:17:54.100
<00:17:51.200>about <00:17:51.355>locks <00:17:51.511>mutexes. <00:17:51.666>You <00:17:51.822>just <00:17:51.977>use <00:17:52.133>it <00:17:52.288>and <00:17:52.444>it <00:17:52.600>works

357
00:17:54.100 --> 00:17:57.500
<00:17:54.100>nicely <00:17:54.240>and <00:17:54.379>you <00:17:54.520>can <00:17:54.659>use <00:17:54.800>all <00:17:54.939>the <00:17:55.080>cause <00:17:55.219>of <00:17:55.360>your <00:17:55.500>processes

358
00:17:57.500 --> 00:18:00.700
<00:17:57.500>and <00:17:57.655>now <00:17:57.811>it <00:17:57.966>is <00:17:58.122>most <00:17:58.277>of <00:17:58.433>our <00:17:58.588>processes. <00:17:58.744>We <00:17:58.900>use

359
00:18:00.700 --> 00:18:03.500
<00:18:00.700>on <00:18:00.933>our <00:18:01.166>desktops <00:18:01.400>or <00:18:01.633>mobile <00:18:01.866>phones. <00:18:02.100>They

360
00:18:03.500 --> 00:18:04.600
<00:18:03.500>have <00:18:03.747>more <00:18:03.995>than <00:18:04.242>one <00:18:04.490>call.

361
00:18:05.500 --> 00:18:05.800
Yeah.

362
00:18:06.700 --> 00:18:09.300
<00:18:06.700>And <00:18:06.840>also <00:18:06.980>here <00:18:07.120>we <00:18:07.260>want <00:18:07.400>to <00:18:07.540>have <00:18:07.680>a <00:18:07.820>short <00:18:07.960>look <00:18:08.100>how

363
00:18:09.300 --> 00:18:09.800
<00:18:09.300>this <00:18:09.524>looks <00:18:09.750>like.

364
00:18:12.700 --> 00:18:12.700
Um

365
00:18:13.800 --> 00:18:16.800
<00:18:13.800>I <00:18:14.033>use <00:18:14.266>a <00:18:14.500>very <00:18:14.733>basic <00:18:14.966>example. <00:18:15.200>We

366
00:18:16.800 --> 00:18:19.200
<00:18:16.800>want <00:18:16.955>to <00:18:17.111>read <00:18:17.266>some <00:18:17.422>data <00:18:17.577>from <00:18:17.733>a <00:18:17.888>file <00:18:18.044>and <00:18:18.200>that's

367
00:18:19.200 --> 00:18:22.000
<00:18:19.200>it. <00:18:19.340>And <00:18:19.480>the <00:18:19.620>first <00:18:19.760>thing <00:18:19.900>we <00:18:20.040>want <00:18:20.180>to <00:18:20.320>have <00:18:20.460>a <00:18:20.600>look

368
00:18:22.600 --> 00:18:24.300
<00:18:22.600>how <00:18:22.800>it <00:18:23.000>looks <00:18:23.199>when <00:18:23.399>you <00:18:23.600>use <00:18:23.800>it <00:18:24.000>sync.

369
00:18:25.600 --> 00:18:28.900
<00:18:25.600>So <00:18:25.800>here <00:18:26.000>we <00:18:26.199>have <00:18:26.399>read <00:18:26.600>sync. <00:18:26.800>We <00:18:27.000>read

370
00:18:28.900 --> 00:18:30.900
<00:18:28.900>a <00:18:29.075>file <00:18:29.250>and <00:18:29.425>sync. <00:18:29.600>That's <00:18:29.775>our <00:18:29.950>models <00:18:30.125>our <00:18:30.300>main.

371
00:18:31.700 --> 00:18:34.300
<00:18:31.700>Thing <00:18:31.933>we <00:18:32.166>want <00:18:32.400>to <00:18:32.633>do. <00:18:32.866>We <00:18:33.100>may

372
00:18:34.300 --> 00:18:37.500
<00:18:34.300>be <00:18:34.427>decode <00:18:34.554>the <00:18:34.681>Json <00:18:34.809>afterwards <00:18:34.936>and <00:18:35.063>then <00:18:35.190>print <00:18:35.318>it <00:18:35.445>out. <00:18:35.572>But <00:18:35.700>the

373
00:18:37.500 --> 00:18:40.200
<00:18:37.500>read <00:18:37.675>file <00:18:37.850>thing <00:18:38.025>is <00:18:38.200>the <00:18:38.375>most <00:18:38.550>thing <00:18:38.725>what <00:18:38.900>do

374
00:18:40.200 --> 00:18:43.300
<00:18:40.200>I <00:18:40.327>do? <00:18:40.454>I <00:18:40.581>open <00:18:40.709>the <00:18:40.836>file <00:18:40.963>now <00:18:41.090>and <00:18:41.218>I <00:18:41.345>do <00:18:41.472>a <00:18:41.600>read

375
00:18:43.300 --> 00:18:46.400
<00:18:43.300>s <00:18:43.533>string <00:18:43.766>sync <00:18:44.000>that's <00:18:44.233>already <00:18:44.466>provided <00:18:44.700>by

376
00:18:46.400 --> 00:18:49.200
<00:18:46.400>the <00:18:46.540>framework <00:18:46.680>by <00:18:46.820>the <00:18:46.960>dot <00:18:47.100>framework. <00:18:47.240>They <00:18:47.380>provide <00:18:47.520>all <00:18:47.660>these <00:18:47.800>things

377
00:18:49.200 --> 00:18:52.000
<00:18:49.200>and <00:18:49.480>that's <00:18:49.760>it. <00:18:50.040>So <00:18:50.320>very <00:18:50.600>straightforward.

378
00:18:53.100 --> 00:18:56.400
<00:18:53.100>How <00:18:53.216>does <00:18:53.333>this <00:18:53.449>look <00:18:53.566>like <00:18:53.683>when <00:18:53.800>you <00:18:53.916>want <00:18:54.033>to <00:18:54.149>use <00:18:54.266>it <00:18:54.383>as <00:18:54.500>an

379
00:18:56.400 --> 00:18:56.900
<00:18:56.400>async <00:18:56.850>program?

380
00:18:57.500 --> 00:19:00.500
<00:18:57.500>And <00:18:57.655>here <00:18:57.811>it <00:18:57.966>looks <00:18:58.122>very <00:18:58.277>similar, <00:18:58.433>but <00:18:58.588>you <00:18:58.744>see <00:18:58.900>some

381
00:19:00.500 --> 00:19:03.900
<00:19:00.500>differences. <00:19:00.733>We <00:19:00.966>have <00:19:01.200>no <00:19:01.433>Futures <00:19:01.666>and <00:19:01.900>async.

382
00:19:04.700 --> 00:19:06.500
<00:19:04.700>So <00:19:05.050>we <00:19:05.400>have <00:19:05.750>these <00:19:06.100>async.

383
00:19:07.200 --> 00:19:10.400
<00:19:07.200>And <00:19:07.316>if <00:19:07.433>we <00:19:07.550>want <00:19:07.666>to <00:19:07.783>have <00:19:07.900>an <00:19:08.016>await <00:19:08.133>inside <00:19:08.250>a <00:19:08.366>function, <00:19:08.483>we <00:19:08.600>need

384
00:19:10.400 --> 00:19:13.500
<00:19:10.400>an <00:19:10.527>async <00:19:10.654>and <00:19:10.781>we <00:19:10.909>have <00:19:11.036>if <00:19:11.163>we <00:19:11.290>have <00:19:11.418>an <00:19:11.545>async <00:19:11.672>we <00:19:11.800>will

385
00:19:13.500 --> 00:19:16.300
<00:19:13.500>provide <00:19:13.780>a <00:19:14.060>future. <00:19:14.340>So <00:19:14.620>a <00:19:14.900>future

386
00:19:16.300 --> 00:19:19.400
<00:19:16.300>is <00:19:16.427>more <00:19:16.554>less <00:19:16.681>a <00:19:16.809>value <00:19:16.936>which <00:19:17.063>we <00:19:17.190>do <00:19:17.318>not <00:19:17.445>know <00:19:17.572>when <00:19:17.700>it

387
00:19:19.400 --> 00:19:22.400
<00:19:19.400>will <00:19:19.575>be <00:19:19.750>there, <00:19:19.925>huh? <00:19:20.100>It <00:19:20.275>will <00:19:20.450>become <00:19:20.625>somewhere <00:19:20.800>because

388
00:19:22.400 --> 00:19:24.700
<00:19:22.400>we <00:19:22.633>don't <00:19:22.866>know <00:19:23.100>how <00:19:23.333>long <00:19:23.566>this <00:19:23.800>await.

389
00:19:25.400 --> 00:19:26.300
<00:19:25.400>Takes <00:19:26.210>time.

390
00:19:27.600 --> 00:19:30.500
<00:19:27.600>So <00:19:27.716>in <00:19:27.833>this <00:19:27.949>case, <00:19:28.066>it's <00:19:28.183>a <00:19:28.300>future <00:19:28.416>void <00:19:28.533>because <00:19:28.649>it <00:19:28.766>doesn't <00:19:28.883>return <00:19:29.000>anything.

391
00:19:30.500 --> 00:19:33.600
<00:19:30.500>But <00:19:30.675>we <00:19:30.850>see <00:19:31.025>here <00:19:31.200>our <00:19:31.375>read <00:19:31.550>file <00:19:31.725>async. <00:19:31.900>It

392
00:19:33.600 --> 00:19:36.700
<00:19:33.600>has <00:19:33.755>a <00:19:33.911>future <00:19:34.066>string. <00:19:34.222>So <00:19:34.377>it <00:19:34.533>will <00:19:34.688>bring <00:19:34.844>back <00:19:35.000>some

393
00:19:36.700 --> 00:19:39.100
<00:19:36.700>string <00:19:37.050>to <00:19:37.400>a <00:19:37.750>different <00:19:38.100>time.

394
00:19:40.800 --> 00:19:44.100
<00:19:40.800>And <00:19:41.033>we <00:19:41.266>have <00:19:41.500>this <00:19:41.733>a <00:19:41.966>async <00:19:42.200>keyboard

395
00:19:43.100 --> 00:19:46.600
<00:19:43.100>here. <00:19:43.255>And <00:19:43.411>then <00:19:43.566>we <00:19:43.722>also <00:19:43.877>can <00:19:44.033>use <00:19:44.188>the <00:19:44.344>await <00:19:44.500>here

396
00:19:46.600 --> 00:19:49.600
<00:19:46.600>for <00:19:46.833>the <00:19:47.066>file <00:19:47.300>read <00:19:47.533>async <00:19:47.766>and <00:19:48.000>that's

397
00:19:49.600 --> 00:19:52.400
<00:19:49.600>more <00:19:49.774>less <00:19:49.949>it. <00:19:50.125>I <00:19:50.300>think <00:19:50.475>it's <00:19:50.649>very <00:19:50.824>familiar <00:19:51.000>to

398
00:19:52.400 --> 00:19:56.200
<00:19:52.400>other <00:19:52.575>languages. <00:19:52.750>They <00:19:52.925>use <00:19:53.100>a <00:19:53.275>very <00:19:53.450>similar <00:19:53.625>style. <00:19:53.800>So

399
00:19:55.200 --> 00:19:57.900
<00:19:55.200>this <00:19:55.550>is <00:19:55.900>I <00:19:56.250>guess <00:19:56.600>straightforward.

400
00:19:59.900 --> 00:20:02.800
<00:19:59.900>And <00:20:00.027>now <00:20:00.154>we <00:20:00.281>want <00:20:00.409>to <00:20:00.536>also <00:20:00.663>do <00:20:00.790>this <00:20:00.918>with <00:20:01.045>an <00:20:01.172>isolate <00:20:01.300>because

401
00:20:02.800 --> 00:20:06.100
<00:20:02.800>I <00:20:02.927>said, <00:20:03.054>okay. <00:20:03.181>We <00:20:03.309>also <00:20:03.436>can <00:20:03.563>spread <00:20:03.690>us <00:20:03.818>on <00:20:03.945>multiple <00:20:04.072>processes <00:20:04.200>and

402
00:20:05.100 --> 00:20:08.800
<00:20:05.100>in <00:20:05.449>isolated <00:20:05.800>also, <00:20:06.149>it's <00:20:06.500>quite

403
00:20:08.800 --> 00:20:11.100
<00:20:08.800>easy. <00:20:09.033>Yeah, <00:20:09.266>you <00:20:09.500>just <00:20:09.733>have <00:20:09.966>to <00:20:10.200>know

404
00:20:11.100 --> 00:20:11.500
<00:20:11.100>what <00:20:11.280>to <00:20:11.460>do.

405
00:20:12.200 --> 00:20:15.600
<00:20:12.200>So <00:20:12.355>more <00:20:12.511>less <00:20:12.666>we <00:20:12.822>do <00:20:12.977>the <00:20:13.133>same <00:20:13.288>but <00:20:13.444>to <00:20:13.600>more

406
00:20:15.600 --> 00:20:18.300
<00:20:15.600>or <00:20:15.727>less <00:20:15.854>interact <00:20:15.981>with <00:20:16.109>an <00:20:16.236>isolot <00:20:16.363>because <00:20:16.490>we <00:20:16.618>don't <00:20:16.745>have <00:20:16.872>a <00:20:17.000>shared

407
00:20:18.300 --> 00:20:21.300
<00:20:18.300>memory <00:20:18.455>anymore. <00:20:18.611>We <00:20:18.766>need <00:20:18.922>a <00:20:19.077>kind <00:20:19.233>of <00:20:19.388>a <00:20:19.544>port <00:20:19.700>where

408
00:20:21.300 --> 00:20:25.300
<00:20:21.300>we <00:20:21.475>can <00:20:21.649>more <00:20:21.825>or <00:20:22.000>less <00:20:22.175>match <00:20:22.350>exchange <00:20:22.524>messages <00:20:22.700>values.

409
00:20:26.200 --> 00:20:29.200
<00:20:26.200>And <00:20:26.316>then <00:20:26.433>I <00:20:26.550>spawn <00:20:26.666>the <00:20:26.783>isolate <00:20:26.900>and <00:20:27.016>say <00:20:27.133>okay <00:20:27.250>in <00:20:27.366>the <00:20:27.483>isolate. <00:20:27.600>I

410
00:20:29.200 --> 00:20:33.100
<00:20:29.200>want <00:20:29.375>to <00:20:29.550>do <00:20:29.725>the <00:20:29.900>read <00:20:30.075>file <00:20:30.250>async <00:20:30.425>and <00:20:30.600>here's

411
00:20:32.100 --> 00:20:36.000
<00:20:32.100>the <00:20:32.300>part <00:20:32.500>where <00:20:32.699>we <00:20:32.899>can <00:20:33.100>communicate <00:20:33.300>that's <00:20:33.500>it,

412
00:20:35.000 --> 00:20:36.800
huh?

413
00:20:38.200 --> 00:20:41.400
<00:20:38.200>Inside <00:20:38.327>my <00:20:38.454>read <00:20:38.581>file <00:20:38.709>is <00:20:38.836>async. <00:20:38.963>It <00:20:39.090>looks <00:20:39.218>very <00:20:39.345>similar <00:20:39.472>as <00:20:39.600>before

414
00:20:41.400 --> 00:20:45.100
<00:20:41.400>but <00:20:41.540>at <00:20:41.680>the <00:20:41.820>end <00:20:41.960>I <00:20:42.100>need <00:20:42.240>to <00:20:42.380>say <00:20:42.520>okay. <00:20:42.660>Now <00:20:42.800>you're

415
00:20:44.100 --> 00:20:47.400
<00:20:44.100>running <00:20:44.300>on <00:20:44.500>an <00:20:44.699>isolate. <00:20:44.899>So <00:20:45.100>the <00:20:45.300>isolate <00:20:45.500>please

416
00:20:47.400 --> 00:20:50.800
<00:20:47.400>afterwards <00:20:47.633>should <00:20:47.866>be <00:20:48.100>exited <00:20:48.333>and <00:20:48.566>please <00:20:48.800>provide

417
00:20:50.800 --> 00:20:53.500
<00:20:50.800>the <00:20:51.033>contents <00:20:51.266>on <00:20:51.500>the <00:20:51.733>part <00:20:51.966>now <00:20:52.200>so

418
00:20:53.500 --> 00:20:56.500
<00:20:53.500>that <00:20:53.655>you <00:20:53.811>can <00:20:53.966>give <00:20:54.122>it <00:20:54.277>back <00:20:54.433>to <00:20:54.588>the <00:20:54.744>main <00:20:54.900>isolate.

419
00:20:57.600 --> 00:21:00.800
<00:20:57.600>And <00:20:57.727>then <00:20:57.854>I <00:20:57.981>just <00:20:58.109>have <00:20:58.236>a <00:20:58.363>look <00:20:58.490>on <00:20:58.618>the <00:20:58.745>port <00:20:58.872>and <00:20:59.000>read

420
00:21:00.800 --> 00:21:03.600
<00:21:00.800>out <00:21:01.000>the <00:21:01.200>values <00:21:01.399>which <00:21:01.600>are <00:21:01.800>more <00:21:02.000>as <00:21:02.200>sent

421
00:21:03.600 --> 00:21:06.100
<00:21:03.600>to <00:21:03.707>that <00:21:03.815>port <00:21:03.923>in <00:21:04.030>this <00:21:04.138>case. <00:21:04.246>It's <00:21:04.353>only <00:21:04.461>one <00:21:04.569>so <00:21:04.676>I <00:21:04.784>use <00:21:04.892>the <00:21:05.000>first

422
00:21:06.100 --> 00:21:06.300
one.

423
00:21:07.300 --> 00:21:10.900
<00:21:07.300>And <00:21:07.580>that's <00:21:07.860>it. <00:21:08.139>So <00:21:08.419>very <00:21:08.700>straightforward.

424
00:21:13.700 --> 00:21:16.400
<00:21:13.700>And <00:21:13.855>that's <00:21:14.011>it. <00:21:14.166>And <00:21:14.322>that's <00:21:14.477>how <00:21:14.633>you <00:21:14.788>can <00:21:14.944>easily <00:21:15.100>use

425
00:21:16.400 --> 00:21:20.900
<00:21:16.400>more <00:21:16.575>or <00:21:16.750>less <00:21:16.925>multiple <00:21:17.100>course <00:21:17.275>on <00:21:17.450>an <00:21:17.625>multi-core <00:21:17.800>system

426
00:21:20.900 --> 00:21:23.400
<00:21:20.900>and <00:21:21.100>also <00:21:21.300>the <00:21:21.500>main <00:21:21.700>which <00:21:21.900>is <00:21:22.100>running <00:21:22.300>in

427
00:21:23.400 --> 00:21:26.500
<00:21:23.400>dot. <00:21:23.555>It's <00:21:23.711>always <00:21:23.866>one <00:21:24.022>isolate <00:21:24.177>and <00:21:24.333>from <00:21:24.488>one <00:21:24.644>isolate. <00:21:24.800>You

428
00:21:26.500 --> 00:21:28.700
<00:21:26.500>can <00:21:26.675>spread <00:21:26.850>as <00:21:27.025>many <00:21:27.200>isolates <00:21:27.375>you <00:21:27.550>want <00:21:27.725>to <00:21:27.900>have

429
00:21:30.600 --> 00:21:33.500
<00:21:30.600>It's <00:21:30.800>also <00:21:31.000>this <00:21:31.199>quite <00:21:31.399>a <00:21:31.600>rough <00:21:31.800>for <00:21:32.000>the

430
00:21:33.500 --> 00:21:34.800
<00:21:33.500>asynchronous <00:21:34.670>programming.

431
00:21:36.700 --> 00:21:39.800
<00:21:36.700>The <00:21:36.900>next <00:21:37.100>thing <00:21:37.300>is <00:21:37.500>packages <00:21:37.700>because <00:21:37.900>most <00:21:38.100>of

432
00:21:39.800 --> 00:21:42.700
<00:21:39.800>the <00:21:39.916>time <00:21:40.033>we <00:21:40.149>do <00:21:40.266>want <00:21:40.383>to <00:21:40.500>do <00:21:40.616>not <00:21:40.733>want <00:21:40.850>to <00:21:40.966>implement <00:21:41.083>everything <00:21:41.200>by

433
00:21:42.700 --> 00:21:45.000
<00:21:42.700>ourself, <00:21:42.933>but <00:21:43.166>we <00:21:43.400>want <00:21:43.633>to <00:21:43.866>use <00:21:44.100>packages.

434
00:21:45.700 --> 00:21:49.000
<00:21:45.700>And <00:21:45.875>here <00:21:46.050>we <00:21:46.225>more <00:21:46.400>or <00:21:46.575>less <00:21:46.750>have <00:21:46.925>these <00:21:47.100>pop

435
00:21:48.500 --> 00:21:51.100
<00:21:48.500>def <00:21:48.733>website, <00:21:48.966>which <00:21:49.200>is <00:21:49.433>more <00:21:49.666>or <00:21:49.900>less

436
00:21:51.100 --> 00:21:54.900
<00:21:51.100>npm <00:21:51.300>for <00:21:51.500>the <00:21:51.699>web <00:21:51.899>Developers <00:21:52.100>for <00:21:52.300>Dart <00:21:52.500>where

437
00:21:54.900 --> 00:21:57.100
<00:21:54.900>you <00:21:55.100>can <00:21:55.300>provide <00:21:55.500>packages <00:21:55.700>for <00:21:55.900>others <00:21:56.100>and <00:21:56.300>you

438
00:21:57.100 --> 00:22:01.300
<00:21:57.100>can <00:21:57.274>search <00:21:57.449>packages <00:21:57.625>you <00:21:57.800>want <00:21:57.975>to <00:21:58.149>have <00:21:58.324>I <00:21:58.500>already

439
00:22:00.300 --> 00:22:04.000
<00:22:00.300>opened <00:22:00.580>for <00:22:00.860>example <00:22:01.139>the <00:22:01.419>HTTP <00:22:01.700>package

440
00:22:03.400 --> 00:22:06.900
<00:22:03.400>which <00:22:03.600>is <00:22:03.800>from <00:22:04.000>the <00:22:04.200>dart <00:22:04.400>developers <00:22:04.600>and <00:22:04.800>above

441
00:22:06.900 --> 00:22:09.100
<00:22:06.900>you <00:22:07.040>already <00:22:07.180>see <00:22:07.320>okay <00:22:07.460>on <00:22:07.600>which <00:22:07.740>platforms <00:22:07.880>you <00:22:08.020>can <00:22:08.160>use <00:22:08.300>it

442
00:22:09.100 --> 00:22:12.300
<00:22:09.100>and <00:22:09.255>you <00:22:09.411>see <00:22:09.566>okay <00:22:09.722>they <00:22:09.877>support. <00:22:10.033>All <00:22:10.188>right, <00:22:10.344>you <00:22:10.500>can

443
00:22:12.300 --> 00:22:15.400
<00:22:12.300>see <00:22:12.427>okay. <00:22:12.554>It's <00:22:12.681>also <00:22:12.809>possible <00:22:12.936>to <00:22:13.063>use <00:22:13.190>in <00:22:13.318>Dart <00:22:13.445>and <00:22:13.572>then <00:22:13.700>flutter

444
00:22:15.400 --> 00:22:18.100
<00:22:15.400>some <00:22:15.600>packages <00:22:15.800>are <00:22:16.000>only <00:22:16.200>only <00:22:16.400>four <00:22:16.600>dot <00:22:16.800>or

445
00:22:18.100 --> 00:22:21.200
<00:22:18.100>only <00:22:18.240>for <00:22:18.379>flutter. <00:22:18.520>So <00:22:18.659>you <00:22:18.800>have <00:22:18.939>to <00:22:19.080>decide <00:22:19.219>but <00:22:19.360>more <00:22:19.500>or

446
00:22:21.200 --> 00:22:24.600
<00:22:21.200>less <00:22:21.327>you <00:22:21.454>can <00:22:21.581>hear <00:22:21.709>search <00:22:21.836>for <00:22:21.963>everything. <00:22:22.090>So <00:22:22.218>for <00:22:22.345>example, <00:22:22.472>we <00:22:22.600>want

447
00:22:24.600 --> 00:22:24.700
<00:22:24.600>to <00:22:24.690>have

448
00:22:26.200 --> 00:22:29.300
<00:22:26.200>Encryption <00:22:26.433>I <00:22:26.666>search <00:22:26.900>for <00:22:27.133>encryption <00:22:27.366>and <00:22:27.600>then

449
00:22:29.300 --> 00:22:33.800
<00:22:29.300>you <00:22:29.475>yeah <00:22:29.649>already <00:22:29.825>see <00:22:30.000>a <00:22:30.175>lot <00:22:30.350>of <00:22:30.524>packages <00:22:30.700>which

450
00:22:33.800 --> 00:22:36.600
<00:22:33.800>deal <00:22:33.975>with <00:22:34.149>encryption <00:22:34.325>and <00:22:34.500>you <00:22:34.675>have <00:22:34.850>to <00:22:35.024>choose <00:22:35.200>small

451
00:22:36.600 --> 00:22:39.400
<00:22:36.600>as <00:22:36.699>the <00:22:36.800>best <00:22:36.899>one. <00:22:37.000>And <00:22:37.100>that's <00:22:37.199>always <00:22:37.300>the <00:22:37.399>hardest <00:22:37.500>one <00:22:37.600>when <00:22:37.699>it <00:22:37.800>comes <00:22:37.899>to <00:22:38.000>package

452
00:22:39.400 --> 00:22:42.200
<00:22:39.400>management. <00:22:39.575>Yeah <00:22:39.750>choose <00:22:39.925>the <00:22:40.100>right <00:22:40.275>one, <00:22:40.450>which <00:22:40.625>is <00:22:40.800>good

453
00:22:42.200 --> 00:22:42.300
<00:22:42.200>for <00:22:42.290>you.

454
00:22:43.900 --> 00:22:46.500
<00:22:43.900>But <00:22:44.075>that's <00:22:44.250>the <00:22:44.425>same <00:22:44.600>thing. <00:22:44.775>You <00:22:44.950>can <00:22:45.125>easily <00:22:45.300>post

455
00:22:46.500 --> 00:22:49.200
<00:22:46.500>also <00:22:46.675>packages <00:22:46.850>there. <00:22:47.025>But <00:22:47.200>keep <00:22:47.375>in <00:22:47.550>mind <00:22:47.725>when <00:22:47.900>you

456
00:22:49.200 --> 00:22:52.800
<00:22:49.200>public <00:22:49.375>One <00:22:49.550>packages, <00:22:49.725>it <00:22:49.900>will <00:22:50.075>stay <00:22:50.250>there <00:22:50.425>forever. <00:22:50.600>There

457
00:22:52.800 --> 00:22:55.200
<00:22:52.800>are <00:22:53.033>only <00:22:53.266>a <00:22:53.500>small <00:22:53.733>possibilities <00:22:53.966>where <00:22:54.200>you

458
00:22:55.200 --> 00:22:58.500
<00:22:55.200>can <00:22:55.355>get <00:22:55.511>it <00:22:55.666>away <00:22:55.822>again, <00:22:55.977>but <00:22:56.133>in <00:22:56.288>most <00:22:56.444>cases <00:22:56.600>when

459
00:22:58.500 --> 00:23:01.200
<00:22:58.500>you <00:22:58.700>publish <00:22:58.900>it <00:22:59.100>will <00:22:59.300>be <00:22:59.500>stay <00:22:59.700>there <00:22:59.900>forever.

460
00:23:06.300 --> 00:23:09.500
<00:23:06.300>Now <00:23:06.580>one <00:23:06.860>last <00:23:07.139>thing <00:23:07.419>because <00:23:07.700>we

461
00:23:09.500 --> 00:23:12.500
<00:23:09.500>already <00:23:09.675>running <00:23:09.850>quite <00:23:10.025>fast <00:23:10.200>out <00:23:10.375>of <00:23:10.550>time <00:23:10.725>are <00:23:10.900>the

462
00:23:12.500 --> 00:23:15.400
<00:23:12.500>dev <00:23:12.655>tools. <00:23:12.811>I <00:23:12.966>already <00:23:13.122>said <00:23:13.277>okay <00:23:13.433>the <00:23:13.588>hot <00:23:13.744>really <00:23:13.900>out

463
00:23:15.400 --> 00:23:18.900
<00:23:15.400>is <00:23:15.516>quite <00:23:15.633>nice. <00:23:15.750>But <00:23:15.866>also <00:23:15.983>we <00:23:16.100>have <00:23:16.216>a <00:23:16.333>debugger <00:23:16.450>logging <00:23:16.566>view <00:23:16.683>app <00:23:16.800>size

464
00:23:18.900 --> 00:23:22.200
<00:23:18.900>tools <00:23:19.133>CP <00:23:19.366>profiler <00:23:19.600>memory <00:23:19.833>view <00:23:20.066>analyze <00:23:20.300>a

465
00:23:22.200 --> 00:23:25.400
<00:23:22.200>format <00:23:22.400>and <00:23:22.600>and <00:23:22.800>many <00:23:23.000>many <00:23:23.200>more <00:23:23.400>and <00:23:23.600>that's

466
00:23:25.400 --> 00:23:27.800
<00:23:25.400>something <00:23:25.633>quite <00:23:25.866>nice <00:23:26.100>and <00:23:26.333>you <00:23:26.566>also <00:23:26.800>see

467
00:23:29.800 --> 00:23:32.700
<00:23:29.800>something <00:23:29.975>like <00:23:30.149>that. <00:23:30.325>So <00:23:30.500>the <00:23:30.675>documentation <00:23:30.850>and <00:23:31.024>integration <00:23:31.200>in

468
00:23:32.700 --> 00:23:35.500
<00:23:32.700>the <00:23:32.855>IDE, <00:23:33.011>for <00:23:33.166>example, <00:23:33.322>the <00:23:33.477>vs <00:23:33.633>code <00:23:33.788>is <00:23:33.944>really <00:23:34.100>really

469
00:23:35.500 --> 00:23:35.800
nice.

470
00:23:37.400 --> 00:23:40.900
<00:23:37.400>And <00:23:37.540>there <00:23:37.680>you <00:23:37.820>see <00:23:37.960>that <00:23:38.100>it's <00:23:38.240>really <00:23:38.380>done <00:23:38.520>from <00:23:38.660>Developers <00:23:38.800>for

471
00:23:40.900 --> 00:23:41.200
Developers.

472
00:23:42.500 --> 00:23:45.200
<00:23:42.500>And <00:23:42.733>I <00:23:42.966>created <00:23:43.200>a <00:23:43.433>very <00:23:43.666>small <00:23:43.900>script.

473
00:23:46.200 --> 00:23:49.500
<00:23:46.200>Just <00:23:46.375>let <00:23:46.550>run <00:23:46.725>that <00:23:46.900>and <00:23:47.075>this <00:23:47.250>is <00:23:47.425>smallest <00:23:47.600>just

474
00:23:49.500 --> 00:23:52.300
<00:23:49.500>an <00:23:49.675>HGB <00:23:49.850>server <00:23:50.025>which <00:23:50.200>opens <00:23:50.375>support <00:23:50.550>and <00:23:50.725>you <00:23:50.900>can

475
00:23:52.300 --> 00:23:55.300
<00:23:52.300>request <00:23:52.533>URLs <00:23:52.766>and <00:23:53.000>it <00:23:53.233>just <00:23:53.466>responds <00:23:53.700>to

476
00:23:55.300 --> 00:23:56.300
<00:23:55.300>something. <00:23:55.750>That's <00:23:56.200>it.

477
00:23:57.200 --> 00:23:58.000
<00:23:57.200>And <00:23:57.380>if <00:23:57.560>I <00:23:57.740>run <00:23:57.920>that

478
00:23:59.400 --> 00:24:02.300
<00:23:59.400>it <00:23:59.575>will <00:23:59.750>compile <00:23:59.925>it <00:24:00.100>will <00:24:00.275>say <00:24:00.450>hello <00:24:00.625>world <00:24:00.800>and

479
00:24:02.300 --> 00:24:05.600
<00:24:02.300>also <00:24:02.475>okay <00:24:02.649>here <00:24:02.825>I'm <00:24:03.000>serving <00:24:03.175>at <00:24:03.350>localhost <00:24:03.524>8080 <00:24:03.700>so

480
00:24:05.600 --> 00:24:08.100
<00:24:05.600>also <00:24:05.800>prints <00:24:06.000>out <00:24:06.199>some <00:24:06.399>stuff <00:24:06.600>and <00:24:06.800>if <00:24:07.000>I

481
00:24:08.100 --> 00:24:08.300
<00:24:08.100>go <00:24:08.280>there

482
00:24:09.100 --> 00:24:11.100
<00:24:09.100>Maybe <00:24:09.274>have <00:24:09.449>to <00:24:09.625>make <00:24:09.800>this <00:24:09.975>a <00:24:10.149>little <00:24:10.324>bit <00:24:10.500>bigger.

483
00:24:11.800 --> 00:24:14.400
<00:24:11.800>It <00:24:12.000>just <00:24:12.200>says <00:24:12.399>okay <00:24:12.600>request <00:24:12.800>for <00:24:13.000>because <00:24:13.200>I

484
00:24:14.400 --> 00:24:16.600
<00:24:14.400>didn't <00:24:14.633>provide <00:24:14.866>anything <00:24:15.100>if <00:24:15.333>I <00:24:15.566>say, <00:24:15.800>okay.

485
00:24:18.100 --> 00:24:21.600
<00:24:18.100>We <00:24:18.300>are <00:24:18.500>deafs <00:24:18.699>and <00:24:18.899>it's <00:24:19.100>okay <00:24:19.300>request <00:24:19.500>for

486
00:24:21.600 --> 00:24:23.600
<00:24:21.600>Via <00:24:21.879>devs. <00:24:22.159>That's <00:24:22.439>it <00:24:22.719>very <00:24:23.000>straightforward.

487
00:24:24.200 --> 00:24:27.500
<00:24:24.200>What <00:24:24.316>I <00:24:24.433>said <00:24:24.550>wanted <00:24:24.666>to <00:24:24.783>show <00:24:24.900>you <00:24:25.016>here <00:24:25.133>is <00:24:25.250>if <00:24:25.366>I <00:24:25.483>now <00:24:25.600>remove

488
00:24:27.500 --> 00:24:30.000
<00:24:27.500>for <00:24:27.780>example, <00:24:28.060>the <00:24:28.340>four <00:24:28.620>hit <00:24:28.900>save.

489
00:24:31.100 --> 00:24:35.400
<00:24:31.100>And <00:24:31.333>request <00:24:31.566>again. <00:24:31.800>It's <00:24:32.033>there <00:24:32.266>without <00:24:32.500>recompiling

490
00:24:34.400 --> 00:24:37.400
<00:24:34.400>now <00:24:34.750>and <00:24:35.100>that's <00:24:35.450>the <00:24:35.800>hot

491
00:24:37.400 --> 00:24:40.100
<00:24:37.400>reload <00:24:37.555>where <00:24:37.711>I <00:24:37.866>think <00:24:38.022>okay <00:24:38.177>that <00:24:38.333>gives <00:24:38.488>a <00:24:38.644>lot <00:24:38.800>of

492
00:24:40.100 --> 00:24:41.000
<00:24:40.100>benefit <00:24:40.504>for <00:24:40.910>us.

493
00:24:42.100 --> 00:24:46.100
<00:24:42.100>As <00:24:42.227>a <00:24:42.354>side <00:24:42.481>we <00:24:42.609>also <00:24:42.736>can <00:24:42.863>hit <00:24:42.990>a <00:24:43.118>break <00:24:43.245>point <00:24:43.372>and <00:24:43.500>do

494
00:24:45.100 --> 00:24:46.600
<00:24:45.100>the <00:24:45.774>stuff <00:24:46.449>again.

495
00:24:47.500 --> 00:24:50.300
<00:24:47.500>Oh, <00:24:47.700>that <00:24:47.900>was <00:24:48.100>the <00:24:48.300>wrong <00:24:48.500>one <00:24:48.700>here. <00:24:48.900>We

496
00:24:50.300 --> 00:24:50.400
<00:24:50.300>need <00:24:50.345>to <00:24:50.390>go.

497
00:24:52.600 --> 00:24:55.900
<00:24:52.600>I <00:24:52.774>have <00:24:52.949>my <00:24:53.125>debug. <00:24:53.300>I <00:24:53.475>have <00:24:53.649>my <00:24:53.824>locals <00:24:54.000>Watchers

498
00:24:55.900 --> 00:24:58.200
<00:24:55.900>call <00:24:56.133>SEC <00:24:56.366>everything <00:24:56.600>what <00:24:56.833>you <00:24:57.066>also <00:24:57.300>know

499
00:24:58.200 --> 00:25:01.400
<00:24:58.200>from <00:24:58.400>other <00:24:58.600>languages. <00:24:58.800>So <00:24:59.000>all <00:24:59.200>the <00:24:59.400>things <00:24:59.600>are

500
00:25:01.400 --> 00:25:01.700
there.

501
00:25:08.300 --> 00:25:08.500
so

502
00:25:10.100 --> 00:25:11.000
<00:25:10.100>and <00:25:10.370>that <00:25:10.639>was <00:25:10.910>really

503
00:25:12.400 --> 00:25:15.700
<00:25:12.400>quite <00:25:12.555>a <00:25:12.711>fast <00:25:12.866>because <00:25:13.022>there's <00:25:13.177>way <00:25:13.333>way <00:25:13.488>way <00:25:13.644>more. <00:25:13.800>Normally

504
00:25:15.700 --> 00:25:19.500
<00:25:15.700>I <00:25:15.875>also <00:25:16.050>would <00:25:16.225>like <00:25:16.400>to <00:25:16.575>talk <00:25:16.750>about <00:25:16.925>interoperability <00:25:17.100>scripting

505
00:25:18.500 --> 00:25:21.700
<00:25:18.500>because <00:25:18.733>you <00:25:18.966>can <00:25:19.200>also <00:25:19.433>use <00:25:19.666>start <00:25:19.900>as

506
00:25:21.700 --> 00:25:24.100
<00:25:21.700>a <00:25:21.980>scripting <00:25:22.260>possibilities <00:25:22.540>because <00:25:22.820>I'm <00:25:23.100>not

507
00:25:24.100 --> 00:25:27.700
<00:25:24.100>a <00:25:24.207>big <00:25:24.315>fan <00:25:24.423>of <00:25:24.530>all <00:25:24.638>these <00:25:24.746>best <00:25:24.853>scripts <00:25:24.961>and <00:25:25.069>all <00:25:25.176>things <00:25:25.284>you <00:25:25.392>can <00:25:25.500>you

508
00:25:27.700 --> 00:25:32.200
<00:25:27.700>start <00:25:27.875>for <00:25:28.050>that <00:25:28.225>which <00:25:28.400>is <00:25:28.575>very <00:25:28.750>nicer <00:25:28.925>Constructors <00:25:29.100>type

509
00:25:32.200 --> 00:25:35.400
<00:25:32.200>test <00:25:32.400>testing <00:25:32.600>is <00:25:32.800>supported <00:25:33.000>and <00:25:33.200>that's <00:25:33.400>very <00:25:33.600>helpful

510
00:25:35.400 --> 00:25:39.500
<00:25:35.400>also <00:25:35.527>for <00:25:35.654>us <00:25:35.781>because <00:25:35.909>we <00:25:36.036>work <00:25:36.163>a <00:25:36.290>lot <00:25:36.418>of <00:25:36.545>in <00:25:36.672>critical <00:25:36.800>software

511
00:25:38.500 --> 00:25:41.300
<00:25:38.500>areas. <00:25:38.966>So <00:25:39.433>testing <00:25:39.900>is

512
00:25:41.300 --> 00:25:42.300
<00:25:41.300>very <00:25:41.750>very <00:25:42.200>important.

513
00:25:43.800 --> 00:25:46.500
<00:25:43.800>Some <00:25:44.033>Wallace, <00:25:44.266>that <00:25:44.500>would <00:25:44.733>be <00:25:44.966>for <00:25:45.200>my

514
00:25:46.500 --> 00:25:49.000
<00:25:46.500>side. <00:25:46.675>I <00:25:46.850>try <00:25:47.025>to <00:25:47.200>be <00:25:47.375>in <00:25:47.550>time. <00:25:47.725>I <00:25:47.900>think

515
00:25:49.400 --> 00:25:52.800
<00:25:49.400>we <00:25:49.527>maybe <00:25:49.654>have <00:25:49.781>a <00:25:49.909>little <00:25:50.036>bit <00:25:50.163>time <00:25:50.290>for <00:25:50.418>questions. <00:25:50.545>Otherwise, <00:25:50.672>feel <00:25:50.800>free

516
00:25:52.800 --> 00:25:55.200
<00:25:52.800>to <00:25:53.000>meet <00:25:53.200>me <00:25:53.399>afterwards <00:25:53.600>message <00:25:53.800>me <00:25:54.000>on <00:25:54.200>Twitter

517
00:25:55.200 --> 00:25:56.100
<00:25:55.200>LinkedIn <00:25:56.010>Instagram.

518
00:26:07.800 --> 00:26:08.600
<00:26:07.800>microphone <00:26:08.159>is <00:26:08.520>still

519
00:26:11.300 --> 00:26:14.100
<00:26:11.300>so <00:26:11.475>I <00:26:11.649>will <00:26:11.825>ask <00:26:12.000>you <00:26:12.175>can <00:26:12.350>reply <00:26:12.524>otherwise, <00:26:12.700>I

520
00:26:14.100 --> 00:26:17.200
<00:26:14.100>would <00:26:14.216>okay. <00:26:14.333>So <00:26:14.449>we <00:26:14.566>have <00:26:14.683>a <00:26:14.800>few <00:26:14.916>questions <00:26:15.033>what <00:26:15.149>we <00:26:15.266>don't <00:26:15.383>have <00:26:15.500>time

521
00:26:17.200 --> 00:26:20.700
<00:26:17.200>for <00:26:17.355>everyone <00:26:17.511>everything. <00:26:17.666>So <00:26:17.822>I <00:26:17.977>will <00:26:18.133>ask <00:26:18.288>you <00:26:18.444>what <00:26:18.600>happens

522
00:26:20.700 --> 00:26:24.100
<00:26:20.700>when <00:26:20.980>a <00:26:21.260>class <00:26:21.540>uses <00:26:21.820>a <00:26:22.100>mixing.

523
00:26:25.100 --> 00:26:29.300
<00:26:25.100>And <00:26:25.274>multiple <00:26:25.449>mixing <00:26:25.625>that <00:26:25.800>implements <00:26:25.975>the <00:26:26.149>same <00:26:26.324>method <00:26:26.500>signature.

524
00:26:28.300 --> 00:26:31.300
<00:26:28.300>Oh, <00:26:28.500>that's <00:26:28.700>a <00:26:28.899>very <00:26:29.100>good <00:26:29.300>question. <00:26:29.500>I've <00:26:29.700>never

525
00:26:31.300 --> 00:26:31.900
<00:26:31.300>tried <00:26:31.570>it <00:26:31.840>out.

526
00:26:32.900 --> 00:26:35.300
<00:26:32.900>We <00:26:33.075>should <00:26:33.250>try <00:26:33.425>it <00:26:33.600>out. <00:26:33.775>I <00:26:33.950>I <00:26:34.125>would <00:26:34.300>guess

527
00:26:35.300 --> 00:26:38.600
<00:26:35.300>the <00:26:35.580>compiler <00:26:35.860>would <00:26:36.139>complain <00:26:36.419>but <00:26:36.700>that's

528
00:26:38.600 --> 00:26:41.200
<00:26:38.600>a <00:26:38.755>very <00:26:38.911>good <00:26:39.066>question. <00:26:39.222>I've <00:26:39.377>never <00:26:39.533>came <00:26:39.688>in <00:26:39.844>this <00:26:40.000>option.

529
00:26:42.200 --> 00:26:45.800
<00:26:42.200>It <00:26:42.400>was <00:26:42.600>upvoted. <00:26:42.800>So <00:26:43.000>special <00:26:43.200>people. <00:26:43.400>I <00:26:43.600>will

530
00:26:45.800 --> 00:26:46.100
<00:26:45.800>try <00:26:45.935>it <00:26:46.070>out.

531
00:26:47.900 --> 00:26:51.100
<00:26:47.900>Okay, <00:26:48.180>what <00:26:48.460>are <00:26:48.740>some <00:26:49.020>real <00:26:49.300>world

532
00:26:50.100 --> 00:26:53.400
<00:26:50.100>use <00:26:50.566>cases <00:26:51.033>other <00:26:51.500>than

533
00:26:53.400 --> 00:26:56.400
<00:26:53.400>flutter <00:26:53.555>other <00:26:53.711>than <00:26:53.866>flutter. <00:26:54.022>I <00:26:54.177>use <00:26:54.333>it. <00:26:54.488>For <00:26:54.644>example, <00:26:54.800>a

534
00:26:56.400 --> 00:26:59.500
<00:26:56.400>lot <00:26:56.500>of <00:26:56.600>for <00:26:56.700>command <00:26:56.800>line <00:26:56.900>tools. <00:26:57.000>For <00:26:57.100>example, <00:26:57.200>I <00:26:57.300>have <00:26:57.400>two <00:26:57.500>packages <00:26:57.600>on <00:26:57.700>on <00:26:57.800>Pub

535
00:26:59.500 --> 00:27:02.300
<00:26:59.500>deaf. <00:26:59.733>It's <00:26:59.966>called <00:27:00.200>publisher <00:27:00.433>and <00:27:00.666>I <00:27:00.900>use

536
00:27:02.300 --> 00:27:05.700
<00:27:02.300>it <00:27:02.500>for <00:27:02.700>publishing <00:27:02.899>our <00:27:03.100>apps <00:27:03.300>on <00:27:03.500>IOS <00:27:03.700>and

537
00:27:05.700 --> 00:27:08.800
<00:27:05.700>Android <00:27:05.840>stores. <00:27:05.980>So <00:27:06.120>I <00:27:06.260>don't <00:27:06.400>have <00:27:06.540>to <00:27:06.680>do <00:27:06.820>this <00:27:06.960>manually <00:27:07.100>or

538
00:27:08.800 --> 00:27:11.200
<00:27:08.800>using <00:27:09.033>other <00:27:09.266>tools <00:27:09.500>which <00:27:09.733>are <00:27:09.966>written <00:27:10.200>in

539
00:27:11.200 --> 00:27:14.400
<00:27:11.200>very <00:27:11.375>strange <00:27:11.550>languages <00:27:11.725>and <00:27:11.900>we <00:27:12.075>have <00:27:12.250>to <00:27:12.425>install <00:27:12.600>a

540
00:27:14.400 --> 00:27:18.000
<00:27:14.400>lot <00:27:14.575>of <00:27:14.750>stuff <00:27:14.925>star <00:27:15.100>is <00:27:15.275>already <00:27:15.450>installed. <00:27:15.625>But <00:27:15.800>I

541
00:27:18.300 --> 00:27:21.400
<00:27:18.300>also <00:27:18.399>as <00:27:18.500>I <00:27:18.600>said <00:27:18.700>before <00:27:18.800>we <00:27:18.899>use <00:27:19.000>it <00:27:19.100>as <00:27:19.200>scripting <00:27:19.300>languages, <00:27:19.399>so <00:27:19.500>we <00:27:19.600>don't <00:27:19.700>use

542
00:27:21.400 --> 00:27:24.100
<00:27:21.400>bash <00:27:21.600>scripts <00:27:21.800>anymore. <00:27:22.000>We <00:27:22.200>use <00:27:22.400>star <00:27:22.600>as <00:27:22.800>our

543
00:27:24.100 --> 00:27:26.400
<00:27:24.100>scripting <00:27:24.449>languages <00:27:24.800>for <00:27:25.149>moreless <00:27:25.500>everything.

544
00:27:27.500 --> 00:27:30.700
<00:27:27.500>Thank <00:27:27.700>you. <00:27:27.900>And <00:27:28.100>one <00:27:28.300>last <00:27:28.500>question <00:27:28.700>is <00:27:28.900>what

545
00:27:30.700 --> 00:27:33.100
<00:27:30.700>is <00:27:30.933>the <00:27:31.166>difference <00:27:31.400>between <00:27:31.633>Dart <00:27:31.866>VM <00:27:32.100>and

546
00:27:33.100 --> 00:27:34.000
jvm?

547
00:27:34.500 --> 00:27:39.600
<00:27:34.500>Oh, <00:27:34.700>the <00:27:34.900>difference <00:27:35.100>is <00:27:35.300>performance <00:27:35.500>performance <00:27:35.700>performance <00:27:35.900>Xavier

548
00:27:37.600 --> 00:27:40.300
<00:27:37.600>m <00:27:38.300>is <00:27:39.000>way

549
00:27:40.300 --> 00:27:43.800
<00:27:40.300>slower <00:27:40.649>way <00:27:41.000>bigger <00:27:41.350>and <00:27:41.700>we

550
00:27:43.800 --> 00:27:46.300
<00:27:43.800>start <00:27:44.000>VM. <00:27:44.200>It's <00:27:44.399>way <00:27:44.600>smaller. <00:27:44.800>And <00:27:45.000>you <00:27:45.200>also

551
00:27:46.300 --> 00:27:49.400
<00:27:46.300>when <00:27:46.475>you <00:27:46.649>compile <00:27:46.825>your <00:27:47.000>dot <00:27:47.175>script <00:27:47.350>the <00:27:47.524>dot <00:27:47.700>VM

552
00:27:49.400 --> 00:27:52.700
<00:27:49.400>is <00:27:49.680>inside <00:27:49.960>your <00:27:50.240>compilation <00:27:50.520>output. <00:27:50.800>So

553
00:27:52.700 --> 00:27:55.400
<00:27:52.700>you <00:27:52.900>don't <00:27:53.100>have <00:27:53.300>to <00:27:53.500>install <00:27:53.700>that <00:27:53.900>VM <00:27:54.100>on

554
00:27:55.400 --> 00:27:58.700
<00:27:55.400>a <00:27:55.555>on <00:27:55.711>a <00:27:55.866>machine <00:27:56.022>like <00:27:56.177>with <00:27:56.333>the <00:27:56.488>jvm <00:27:56.644>you <00:27:56.800>first

555
00:27:58.700 --> 00:28:02.700
<00:27:58.700>have <00:27:58.855>to <00:27:59.011>install <00:27:59.166>and <00:27:59.322>then <00:27:59.477>run <00:27:59.633>your <00:27:59.788>Java <00:27:59.944>programs <00:28:00.100>that

556
00:28:01.700 --> 00:28:04.400
<00:28:01.700>we <00:28:01.933>m <00:28:02.166>is <00:28:02.400>shipped <00:28:02.633>with <00:28:02.866>the <00:28:03.100>program.

557
00:28:04.400 --> 00:28:07.400
<00:28:04.400>It's <00:28:04.680>faster. <00:28:04.960>It's <00:28:05.240>smaller. <00:28:05.520>That's <00:28:05.800>it.

558
00:28:07.400 --> 00:28:10.400
<00:28:07.400>Thank <00:28:07.555>you <00:28:07.711>very <00:28:07.866>much. <00:28:08.022>Thank <00:28:08.177>you <00:28:08.333>very <00:28:08.488>much. <00:28:08.644>Thank <00:28:08.800>you

559
00:28:10.400 --> 00:28:12.500
<00:28:10.400>very <00:28:10.600>much <00:28:10.800>for <00:28:11.000>joining <00:28:11.200>the <00:28:11.400>session <00:28:11.600>our <00:28:11.800>next.