WEBVTT

1
00:00:20.695 --> 00:00:24.995
<00:00:20.695>So <00:00:20.895>today's <00:00:21.095>talk, <00:00:21.295>um, <00:00:21.495>is <00:00:21.695>about <00:00:21.895>Java <00:00:22.095>15

2
00:00:25.055 --> 00:00:26.915
<00:00:25.055>and <00:00:25.405>beyond <00:00:25.755>my <00:00:26.105>favorite <00:00:26.455>features.

3
00:00:27.385 --> 00:00:31.435
<00:00:27.385>It's <00:00:27.525>just <00:00:27.665>the <00:00:27.805>selection <00:00:27.945>of <00:00:28.085>things, <00:00:28.225>um, <00:00:28.365>that <00:00:28.505>I <00:00:28.645>think, <00:00:28.785>um,

4
00:00:31.655 --> 00:00:32.835
<00:00:31.655>you <00:00:31.920>should <00:00:32.186>be <00:00:32.451>aware <00:00:32.717>of.

5
00:00:33.415 --> 00:00:37.195
<00:00:33.415>Um, <00:00:33.695>let <00:00:33.975>me <00:00:34.254>briefly <00:00:34.535>introduce <00:00:34.815>myself.

6
00:00:37.515 --> 00:00:39.155
<00:00:37.515>I <00:00:37.748>was <00:00:37.981>born <00:00:38.215>a <00:00:38.448>long <00:00:38.681>time <00:00:38.915>ago.

7
00:00:39.655 --> 00:00:41.995
<00:00:39.655>Uh, <00:00:39.888>then <00:00:40.121>I <00:00:40.355>studied <00:00:40.588>computer <00:00:40.821>science <00:00:41.055>in

8
00:00:42.455 --> 00:00:43.595
<00:00:42.455>the <00:00:42.797>northern <00:00:43.138>of <00:00:43.481>Germany.

9
00:00:44.375 --> 00:00:47.835
<00:00:44.375>Um, <00:00:44.575>after <00:00:44.775>that <00:00:44.975>I <00:00:45.175>worked <00:00:45.375>in <00:00:45.575>various, <00:00:45.775>um,

10
00:00:48.595 --> 00:00:51.675
<00:00:48.595>companies <00:00:48.795>in <00:00:48.995>various <00:00:49.195>roles <00:00:49.394>like <00:00:49.595>senior <00:00:49.795>software <00:00:49.995>engineer,

11
00:00:52.155 --> 00:00:55.795
<00:00:52.155>software <00:00:52.310>architect, <00:00:52.466>uh, <00:00:52.621>team <00:00:52.777>lead <00:00:52.932>and <00:00:53.088>CTO <00:00:53.243>and <00:00:53.399>so <00:00:53.555>on.

12
00:00:56.215 --> 00:01:01.075
<00:00:56.215>Um, <00:00:56.415>and <00:00:56.615>currently <00:00:56.815>I'm <00:00:57.015>an <00:00:57.215>independent, <00:00:57.415>uh, <00:00:57.615>consultant,

13
00:01:01.335 --> 00:01:02.395
<00:01:01.335>author <00:01:01.812>and <00:01:02.289>trainer.

14
00:01:03.015 --> 00:01:07.595
<00:01:03.015>Um, <00:01:03.190>this <00:01:03.365>is <00:01:03.540>why <00:01:03.715>I'm <00:01:03.890>regularly <00:01:04.065>speaking <00:01:04.239>at <00:01:04.415>conferences.

15
00:01:08.015 --> 00:01:12.395
<00:01:08.015>Um, <00:01:08.170>yeah, <00:01:08.326>this <00:01:08.481>time, <00:01:08.637>um, <00:01:08.792>first <00:01:08.948>that <00:01:09.103>we <00:01:09.259>are <00:01:09.415>developers.

16
00:01:12.455 --> 00:01:14.955
<00:01:12.455>I'm <00:01:12.655>glad <00:01:12.855>to <00:01:13.054>be <00:01:13.255>here <00:01:13.455>and <00:01:13.655>to <00:01:13.855>join.

17
00:01:15.655 --> 00:01:19.235
<00:01:15.655>Um, <00:01:15.810>yeah, <00:01:15.966>you <00:01:16.121>see <00:01:16.277>I'm <00:01:16.432>writing <00:01:16.588>a <00:01:16.743>lot <00:01:16.899>of <00:01:17.055>books.

18
00:01:19.455 --> 00:01:21.315
<00:01:19.455>Um, <00:01:19.735>don't <00:01:20.015>try <00:01:20.295>to <00:01:20.575>write <00:01:20.855>books.

19
00:01:21.455 --> 00:01:25.275
<00:01:21.455>Uh, <00:01:21.610>you're <00:01:21.766>getting, <00:01:21.921>um, <00:01:22.077>yeah, <00:01:22.232>you <00:01:22.388>will <00:01:22.543>not <00:01:22.699>lose <00:01:22.855>weight.

20
00:01:25.455 --> 00:01:28.795
<00:01:25.455>You <00:01:25.630>will, <00:01:25.804>um, <00:01:25.980>get <00:01:26.155>fat, <00:01:26.330>so <00:01:26.505>don't <00:01:26.679>do <00:01:26.855>that.

21
00:01:29.175 --> 00:01:30.515
<00:01:29.175>Um, <00:01:30.381>okay.

22
00:01:30.805 --> 00:01:34.395
<00:01:30.805>Let's <00:01:31.005>have <00:01:31.205>a <00:01:31.405>look <00:01:31.605>at <00:01:31.805>what <00:01:32.005>happens <00:01:32.205>to,

23
00:01:34.975 --> 00:01:37.595
<00:01:34.975>or <00:01:35.149>what, <00:01:35.324>uh, <00:01:35.500>is <00:01:35.675>the <00:01:35.850>contents <00:01:36.024>of <00:01:36.199>this <00:01:36.375>presentation.

24
00:01:38.095 --> 00:01:41.435
<00:01:38.095>Um, <00:01:38.328>I <00:01:38.561>subdivided <00:01:38.795>this <00:01:39.028>into <00:01:39.261>two <00:01:39.495>parts.

25
00:01:41.615 --> 00:01:43.515
<00:01:41.615>Uh, <00:01:41.895>the <00:01:42.175>first <00:01:42.455>is <00:01:42.735>the <00:01:43.015>present.

26
00:01:44.095 --> 00:01:48.595
<00:01:44.095>Um, <00:01:44.270>here <00:01:44.445>we'll <00:01:44.620>go <00:01:44.795>through, <00:01:44.970>uh, <00:01:45.145>some <00:01:45.320>important <00:01:45.495>innovations,

27
00:01:48.895 --> 00:01:52.515
<00:01:48.895>um, <00:01:49.070>which <00:01:49.245>are <00:01:49.420>coming <00:01:49.595>up <00:01:49.770>to, <00:01:49.945>uh, <00:01:50.120>Java <00:01:50.295>15

28
00:01:52.855 --> 00:01:55.915
<00:01:52.854>and, <00:01:53.029>uh, <00:01:53.204>which <00:01:53.380>are <00:01:53.554>included <00:01:53.729>in <00:01:53.904>some <00:01:54.079>earlier <00:01:54.255>versions.

29
00:01:56.375 --> 00:01:59.875
<00:01:56.375>Um, <00:01:56.608>then, <00:01:56.841>then <00:01:57.075>I <00:01:57.308>think <00:01:57.541>it's <00:01:57.775>interesting

30
00:01:59.895 --> 00:02:03.515
<00:01:59.895>to <00:02:00.022>have <00:02:00.149>an <00:02:00.276>outlook <00:02:00.404>on <00:02:00.531>what <00:02:00.658>will <00:02:00.785>happen <00:02:00.913>in <00:02:01.040>the <00:02:01.167>near <00:02:01.295>future

31
00:02:03.515 --> 00:02:08.395
<00:02:03.515>because, <00:02:03.670>um, <00:02:03.826>Java <00:02:03.981>15 <00:02:04.137>just <00:02:04.292>arrived <00:02:04.448>in, <00:02:04.603>uh, <00:02:04.759>last <00:02:04.915>September,

32
00:02:08.535 --> 00:02:12.555
<00:02:08.535>but, <00:02:08.674>um, <00:02:08.815>Java <00:02:08.954>16 <00:02:09.095>will <00:02:09.234>come <00:02:09.375>in <00:02:09.514>March, <00:02:09.655>and <00:02:09.794>uh, <00:02:09.935>then

33
00:02:12.885 --> 00:02:17.515
<00:02:12.885>after <00:02:13.060>that <00:02:13.234>Java <00:02:13.410>17 <00:02:13.584>will <00:02:13.760>emerge <00:02:13.935>in, <00:02:14.109>uh, <00:02:14.285>September,

34
00:02:18.135 --> 00:02:21.635
<00:02:18.135>and <00:02:18.274>it's <00:02:18.415>planned <00:02:18.554>as <00:02:18.695>the <00:02:18.834>next, <00:02:18.975>uh, <00:02:19.114>long <00:02:19.255>term <00:02:19.394>support <00:02:19.535>release.

35
00:02:21.775 --> 00:02:25.955
<00:02:21.775>So <00:02:21.915>perhaps, <00:02:22.055>um, <00:02:22.195>nice <00:02:22.335>to <00:02:22.475>know, <00:02:22.615>uh, <00:02:22.755>what <00:02:22.895>we <00:02:23.035>should <00:02:23.175>expect.

36
00:02:27.845 --> 00:02:29.705
<00:02:27.845>So <00:02:28.125>for, <00:02:28.405>uh, <00:02:28.685>the <00:02:28.965>first <00:02:29.245>part,

37
00:02:29.705 --> 00:02:31.745
<00:02:29.704>what <00:02:29.904>is <00:02:30.105>the <00:02:30.304>contents <00:02:30.505>of <00:02:30.704>the <00:02:30.904>first <00:02:31.105>part?

38
00:02:31.885 --> 00:02:36.425
<00:02:31.885>Um, <00:02:32.024>we <00:02:32.165>will <00:02:32.304>look <00:02:32.445>at, <00:02:32.584>um, <00:02:32.725>several <00:02:32.864>improvements <00:02:33.005>in <00:02:33.144>the <00:02:33.285>syntax.

39
00:02:36.605 --> 00:02:39.705
<00:02:36.605>Um, <00:02:36.780>first <00:02:36.954>we <00:02:37.130>will <00:02:37.304>have <00:02:37.480>a <00:02:37.655>look <00:02:37.829>at <00:02:38.005>switch.

40
00:02:39.885 --> 00:02:44.825
<00:02:39.885>Um, <00:02:40.040>switch <00:02:40.196>is <00:02:40.351>old <00:02:40.507>and <00:02:40.662>a <00:02:40.818>bit, <00:02:40.973>yeah, <00:02:41.129>um, <00:02:41.285>clumsy,

41
00:02:44.925 --> 00:02:48.825
<00:02:44.925>and <00:02:45.065>we <00:02:45.205>will <00:02:45.345>see <00:02:45.485>how <00:02:45.625>elegant <00:02:45.765>solutions <00:02:45.905>can <00:02:46.045>get <00:02:46.185>right <00:02:46.325>now.

42
00:02:49.485 --> 00:02:54.065
<00:02:49.485>Um, <00:02:49.660>then <00:02:49.835>every <00:02:50.010>Java <00:02:50.185>developers, <00:02:50.360>um, <00:02:50.535>know <00:02:50.710>these, <00:02:50.885>um,

43
00:02:54.585 --> 00:02:55.825
<00:02:54.585>n <00:02:55.143>point <00:02:55.701>exceptions.

44
00:02:55.925 --> 00:02:59.685
<00:02:55.925>And <00:02:56.158>yeah, <00:02:56.391>um, <00:02:56.625>the <00:02:56.858>messages <00:02:57.091>get, <00:02:57.325>um,

45
00:02:59.875 --> 00:03:02.325
<00:02:59.875>more <00:03:00.108>informative <00:03:00.341>right <00:03:00.575>now <00:03:00.808>if <00:03:01.041>you <00:03:01.275>use

46
00:03:02.325 --> 00:03:03.725
<00:03:02.325>special <00:03:03.584>parameterization.

47
00:03:04.345 --> 00:03:08.805
<00:03:04.345>Um, <00:03:04.545>then, <00:03:04.745>um, <00:03:04.945>having <00:03:05.145>the <00:03:05.345>possibility <00:03:05.545>to <00:03:05.745>write

48
00:03:09.525 --> 00:03:13.445
<00:03:09.525>multiple <00:03:09.700>lines <00:03:09.875>of <00:03:10.050>text <00:03:10.225>in <00:03:10.400>one <00:03:10.575>string, <00:03:10.750>uh, <00:03:10.925>known

49
00:03:13.465 --> 00:03:15.365
<00:03:13.465>as <00:03:13.698>text <00:03:13.931>blocks <00:03:14.165>is <00:03:14.398>the <00:03:14.631>new <00:03:14.865>feature.

50
00:03:15.595 --> 00:03:16.965
<00:03:15.595>It's <00:03:16.211>really <00:03:16.828>nice.

51
00:03:17.705 --> 00:03:21.765
<00:03:17.704>Um, <00:03:17.904>and <00:03:18.105>then <00:03:18.304>two, <00:03:18.505>um, <00:03:18.704>nice <00:03:18.904>things, <00:03:19.105>um,

52
00:03:22.415 --> 00:03:24.245
<00:03:22.415>which <00:03:22.695>are <00:03:22.975>right <00:03:23.255>now <00:03:23.535>in <00:03:23.815>preview.

53
00:03:25.025 --> 00:03:26.645
<00:03:25.025>Um, <00:03:25.491>these <00:03:25.958>are <00:03:26.425>records.

54
00:03:27.025 --> 00:03:30.285
<00:03:27.025>Um, <00:03:27.225>they <00:03:27.425>allow <00:03:27.625>us <00:03:27.825>to <00:03:28.025>define <00:03:28.225>small <00:03:28.425>classes,

55
00:03:30.475 --> 00:03:32.165
<00:03:30.475>immutable <00:03:31.174>classes, <00:03:31.875>um,

56
00:03:32.705 --> 00:03:36.725
<00:03:32.704>and <00:03:32.880>just <00:03:33.054>a <00:03:33.230>few, <00:03:33.404>um, <00:03:33.579>yeah, <00:03:33.755>lines <00:03:33.929>of <00:03:34.105>code.

57
00:03:36.945 --> 00:03:38.485
<00:03:36.945>Um, <00:03:37.291>we <00:03:37.638>will <00:03:37.984>see <00:03:38.331>this.

58
00:03:38.485 --> 00:03:40.645
<00:03:38.485>They <00:03:38.765>are <00:03:39.045>very <00:03:39.325>nice <00:03:39.605>and <00:03:39.885>handy

59
00:03:41.305 --> 00:03:45.085
<00:03:41.305>and <00:03:41.460>using <00:03:41.616>instance <00:03:41.771>of <00:03:41.927>is <00:03:42.082>sometimes <00:03:42.238>a <00:03:42.393>bit <00:03:42.549>camera <00:03:42.705>tone,

60
00:03:45.425 --> 00:03:47.765
<00:03:45.425>but <00:03:45.705>um, <00:03:45.985>yeah, <00:03:46.265>it <00:03:46.545>gets <00:03:46.825>improved

61
00:03:47.945 --> 00:03:50.045
<00:03:47.945>and, <00:03:48.144>uh, <00:03:48.345>will <00:03:48.545>be <00:03:48.745>improved <00:03:48.945>in <00:03:49.144>the <00:03:49.345>future.

62
00:03:51.105 --> 00:03:53.085
<00:03:51.105>So <00:03:51.385>yeah, <00:03:51.665>let's <00:03:51.945>go <00:03:52.225>through <00:03:52.505>these.

63
00:03:54.275 --> 00:03:57.095
<00:03:54.275>Ah, <00:03:54.508>first <00:03:54.741>of <00:03:54.975>all, <00:03:55.208>just <00:03:55.441>an <00:03:55.675>overview,

64
00:03:57.125 --> 00:03:59.575
<00:03:57.125>what <00:03:57.405>was <00:03:57.685>included <00:03:57.965>in <00:03:58.245>Java <00:03:58.525>15.

65
00:04:00.115 --> 00:04:01.935
<00:04:00.115>We <00:04:00.395>see <00:04:00.675>a <00:04:00.955>lot <00:04:01.235>of <00:04:01.515>things,

66
00:04:02.195 --> 00:04:05.775
<00:04:02.195>but <00:04:02.370>the, <00:04:02.545>um, <00:04:02.720>green <00:04:02.894>ones <00:04:03.070>we <00:04:03.245>are <00:04:03.420>going <00:04:03.595>through.

67
00:04:06.275 --> 00:04:10.135
<00:04:06.275>Um, <00:04:06.415>as <00:04:06.555>I <00:04:06.695>mentioned, <00:04:06.835>um, <00:04:06.975>some <00:04:07.115>of <00:04:07.255>them <00:04:07.395>are <00:04:07.535>developed <00:04:07.675>earlier,

68
00:04:10.515 --> 00:04:13.095
<00:04:10.515>so <00:04:10.795>are <00:04:11.075>released <00:04:11.355>earlier, <00:04:11.635>switch <00:04:11.915>expressions

69
00:04:13.195 --> 00:04:14.695
<00:04:13.195>and <00:04:13.644>N <00:04:14.095>point <00:04:14.545>exception.

70
00:04:15.155 --> 00:04:18.395
<00:04:15.155>Um, <00:04:15.355>they <00:04:15.555>are <00:04:15.755>included <00:04:15.955>in <00:04:16.154>Jin <00:04:16.355>Java <00:04:16.555>14,

71
00:04:18.415 --> 00:04:20.435
<00:04:18.415>but <00:04:18.648>also <00:04:18.881>of <00:04:19.115>course <00:04:19.348>in <00:04:19.581>Java <00:04:19.815>15.

72
00:04:21.295 --> 00:04:23.435
<00:04:21.295>So <00:04:21.575>let's <00:04:21.855>go <00:04:22.135>through <00:04:22.415>these <00:04:22.695>enhancements.

73
00:04:24.255 --> 00:04:29.115
<00:04:24.255>Um, <00:04:24.371>when <00:04:24.488>we <00:04:24.605>look <00:04:24.721>back, <00:04:24.838>um, <00:04:24.955>in <00:04:25.071>the <00:04:25.188>early <00:04:25.305>days <00:04:25.421>of <00:04:25.538>Java, <00:04:25.655>um,

74
00:04:29.545 --> 00:04:31.995
<00:04:29.545>when <00:04:29.825>I'm <00:04:30.105>a <00:04:30.385>young, <00:04:30.665>young <00:04:30.945>developer

75
00:04:32.215 --> 00:04:35.395
<00:04:32.215>and <00:04:32.370>I <00:04:32.526>started, <00:04:32.681>I <00:04:32.837>started <00:04:32.992>with <00:04:33.148>c <00:04:33.303>plus <00:04:33.459>plus, <00:04:33.615>um,

76
00:04:36.175 --> 00:04:40.915
<00:04:36.175>and <00:04:36.315>the <00:04:36.455>Java <00:04:36.595>was <00:04:36.735>a <00:04:36.875>newbie <00:04:37.015>newcomer <00:04:37.155>at, <00:04:37.295>uh, <00:04:37.435>these <00:04:37.575>days,

77
00:04:41.135 --> 00:04:45.595
<00:04:41.135>not <00:04:41.275>an, <00:04:41.414>um, <00:04:41.555>yeah, <00:04:41.695>a <00:04:41.835>language <00:04:41.974>like, <00:04:42.115>uh, <00:04:42.255>it <00:04:42.395>is <00:04:42.534>today.

78
00:04:45.775 --> 00:04:50.115
<00:04:45.775>And, <00:04:45.974>um, <00:04:46.174>what <00:04:46.375>sun <00:04:46.575>at <00:04:46.775>that <00:04:46.974>time, <00:04:47.174>uh,

79
00:04:50.185 --> 00:04:54.915
<00:04:50.185>what <00:04:50.325>I <00:04:50.465>wanted <00:04:50.605>is <00:04:50.745>to <00:04:50.885>make <00:04:51.025>it <00:04:51.165>more <00:04:51.305>convenient <00:04:51.445>to, <00:04:51.585>um,

80
00:04:54.985 --> 00:04:58.275
<00:04:54.985>come <00:04:55.185>from <00:04:55.385>c <00:04:55.585>plus <00:04:55.785>plus <00:04:55.985>to, <00:04:56.185>um, <00:04:56.385>Java.

81
00:04:58.895 --> 00:05:01.835
<00:04:58.895>So <00:04:59.070>there <00:04:59.245>are <00:04:59.419>some <00:04:59.594>compromises <00:04:59.770>in <00:04:59.945>the <00:05:00.120>language <00:05:00.294>design,

82
00:05:01.935 --> 00:05:04.555
<00:05:01.935>so <00:05:02.135>they <00:05:02.335>stuck <00:05:02.535>to <00:05:02.735>the <00:05:02.935>old <00:05:03.135>switch <00:05:03.335>case.

83
00:05:04.815 --> 00:05:08.195
<00:05:04.815>Um, <00:05:05.048>and <00:05:05.281>we <00:05:05.515>have <00:05:05.748>these, <00:05:05.981>uh, <00:05:06.215>break

84
00:05:08.295 --> 00:05:13.075
<00:05:08.295>and <00:05:08.450>fall <00:05:08.606>through <00:05:08.761>all <00:05:08.917>these <00:05:09.072>things, <00:05:09.228>um, <00:05:09.383>which <00:05:09.539>can <00:05:09.695>yeah,

85
00:05:13.415 --> 00:05:15.515
<00:05:13.415>easily <00:05:14.115>be <00:05:14.815>misunderstood,

86
00:05:15.655 --> 00:05:19.635
<00:05:15.655>and <00:05:15.810>we <00:05:15.966>all <00:05:16.121>know <00:05:16.277>that <00:05:16.432>they <00:05:16.588>are, <00:05:16.743>um, <00:05:16.899>error <00:05:17.054>prone

87
00:05:19.635 --> 00:05:21.195
<00:05:19.635>and <00:05:19.914>that <00:05:20.195>we <00:05:20.474>can <00:05:20.755>make <00:05:21.034>mistakes.

88
00:05:21.295 --> 00:05:24.995
<00:05:21.295>And, <00:05:21.435>um, <00:05:21.575>we <00:05:21.715>will <00:05:21.855>see <00:05:21.995>this, <00:05:22.135>uh, <00:05:22.275>with, <00:05:22.415>uh, <00:05:22.555>examples, <00:05:22.695>uh,

89
00:05:25.015 --> 00:05:26.155
<00:05:25.015>in <00:05:25.357>a <00:05:25.698>few <00:05:26.041>seconds.

90
00:05:27.095 --> 00:05:31.375
<00:05:27.095>Um, <00:05:27.222>and <00:05:27.349>yeah, <00:05:27.476>of <00:05:27.604>course <00:05:27.731>you <00:05:27.858>are <00:05:27.985>a <00:05:28.113>bit <00:05:28.240>limited, <00:05:28.367>um, <00:05:28.495>how

91
00:05:31.375 --> 00:05:33.375
<00:05:31.375>to <00:05:31.841>specify, <00:05:32.308>um, <00:05:32.775>values

92
00:05:34.195 --> 00:05:36.895
<00:05:34.195>and, <00:05:34.474>um, <00:05:34.755>it <00:05:35.034>was <00:05:35.315>really <00:05:35.594>time

93
00:05:37.045 --> 00:05:39.935
<00:05:37.045>that <00:05:37.245>we <00:05:37.445>see <00:05:37.645>an <00:05:37.845>improvement <00:05:38.045>in, <00:05:38.245>uh, <00:05:38.445>switch.

94
00:05:40.115 --> 00:05:42.535
<00:05:40.115>And, <00:05:40.395>um, <00:05:40.675>let's <00:05:40.955>look <00:05:41.235>back <00:05:41.515>why.

95
00:05:42.995 --> 00:05:47.175
<00:05:42.995>So <00:05:43.150>just <00:05:43.306>the <00:05:43.461>simple <00:05:43.617>mapping <00:05:43.772>of <00:05:43.928>weekdays <00:05:44.083>to <00:05:44.239>the <00:05:44.395>lengths,

96
00:05:47.175 --> 00:05:49.935
<00:05:47.175>and <00:05:47.375>we <00:05:47.575>have <00:05:47.775>these <00:05:47.975>weekdays, <00:05:48.175>we <00:05:48.375>have, <00:05:48.575>um,

97
00:05:50.725 --> 00:05:54.895
<00:05:50.725>then <00:05:50.852>all <00:05:50.979>these <00:05:51.106>cases <00:05:51.234>you <00:05:51.361>see, <00:05:51.488>we <00:05:51.615>have <00:05:51.743>to, <00:05:51.870>um, <00:05:51.997>write <00:05:52.125>them,

98
00:05:55.195 --> 00:05:56.975
<00:05:55.195>uh, <00:05:55.661>below <00:05:56.128>each <00:05:56.594>other.

99
00:05:57.475 --> 00:05:58.925
<00:05:57.475>They, <00:05:57.801>we <00:05:58.127>need <00:05:58.453>these <00:05:58.780>breaks.

100
00:05:59.265 --> 00:06:01.365
<00:05:59.265>If <00:05:59.440>we <00:05:59.615>leave <00:05:59.789>it <00:05:59.965>out, <00:06:00.140>we <00:06:00.315>will <00:06:00.490>see <00:06:00.664>this.

101
00:06:01.395 --> 00:06:04.885
<00:06:01.395>Then <00:06:01.550>we <00:06:01.706>have <00:06:01.861>a <00:06:02.017>fall <00:06:02.172>through, <00:06:02.328>which <00:06:02.483>may <00:06:02.639>be <00:06:02.794>intended,

102
00:06:04.985 --> 00:06:06.565
<00:06:04.985>but <00:06:05.335>often <00:06:05.685>it's <00:06:06.035>not <00:06:06.385>intended.

103
00:06:07.675 --> 00:06:11.485
<00:06:07.675>It's <00:06:07.850>not <00:06:08.025>that <00:06:08.200>bad, <00:06:08.375>but <00:06:08.550>it's <00:06:08.725>not <00:06:08.900>so <00:06:09.075>precise.

104
00:06:11.755 --> 00:06:15.485
<00:06:11.755>It's, <00:06:11.988>um, <00:06:12.221>yeah, <00:06:12.455>it's <00:06:12.688>not <00:06:12.921>that <00:06:13.155>elegant.

105
00:06:16.505 --> 00:06:19.035
<00:06:16.505>So <00:06:16.971>what <00:06:17.438>about <00:06:17.905>this,

106
00:06:20.215 --> 00:06:24.835
<00:06:20.215>if <00:06:20.354>you <00:06:20.494>use <00:06:20.635>Java <00:06:20.775>15, <00:06:20.914>um, <00:06:21.054>you <00:06:21.195>can <00:06:21.335>use <00:06:21.474>this, <00:06:21.614>um,

107
00:06:24.975 --> 00:06:28.715
<00:06:24.975>switch <00:06:25.208>case, <00:06:25.441>which <00:06:25.675>allows <00:06:25.908>you <00:06:26.141>to, <00:06:26.375>um,

108
00:06:29.685 --> 00:06:32.775
<00:06:29.685>have <00:06:29.885>a <00:06:30.085>comma <00:06:30.285>separated, <00:06:30.485>um, <00:06:30.685>list <00:06:30.885>of <00:06:31.085>values.

109
00:06:33.325 --> 00:06:36.015
<00:06:33.325>Then <00:06:33.525>you <00:06:33.724>have <00:06:33.925>this <00:06:34.125>arrow <00:06:34.325>with, <00:06:34.525>you <00:06:34.724>know,

110
00:06:36.125 --> 00:06:37.495
<00:06:36.125>from <00:06:36.741>Lambda <00:06:37.358>expressions,

111
00:06:37.915 --> 00:06:39.895
<00:06:37.915>and <00:06:38.148>then <00:06:38.381>you <00:06:38.615>can <00:06:38.848>have <00:06:39.081>this <00:06:39.315>assignment.

112
00:06:40.595 --> 00:06:43.815
<00:06:40.595>Uh, <00:06:40.770>it's <00:06:40.945>a <00:06:41.120>lot <00:06:41.295>shorter, <00:06:41.470>it's <00:06:41.645>a <00:06:41.820>lot <00:06:41.995>clearer.

113
00:06:44.595 --> 00:06:47.935
<00:06:44.595>Um, <00:06:44.735>and <00:06:44.875>what <00:06:45.015>you <00:06:45.155>see, <00:06:45.295>you <00:06:45.435>don't <00:06:45.575>see <00:06:45.715>a <00:06:45.855>break <00:06:45.995>here.

114
00:06:47.995 --> 00:06:52.255
<00:06:47.995>And <00:06:48.150>that's, <00:06:48.306>um, <00:06:48.461>good <00:06:48.617>because, <00:06:48.772>um, <00:06:48.928>there's <00:06:49.083>no <00:06:49.239>false <00:06:49.395>rules.

115
00:06:52.675 --> 00:06:55.255
<00:06:52.675>So <00:06:52.955>you <00:06:53.235>will <00:06:53.515>not <00:06:53.795>execute <00:06:54.075>code.

116
00:06:55.315 --> 00:07:00.225
<00:06:55.315>You, <00:06:55.455>uh, <00:06:55.594>not, <00:06:55.735>uh, <00:06:55.875>wanted <00:06:56.015>to <00:06:56.155>execute, <00:06:56.295>but <00:06:56.435>it's <00:06:56.575>even <00:06:56.715>better.

117
00:07:00.805 --> 00:07:05.635
<00:07:00.805>You <00:07:01.038>can <00:07:01.271>get <00:07:01.505>rid <00:07:01.738>of <00:07:01.971>this <00:07:02.205>variable.

118
00:07:06.735 --> 00:07:10.035
<00:07:06.735>You <00:07:06.910>just <00:07:07.085>can <00:07:07.260>return <00:07:07.435>a <00:07:07.610>value <00:07:07.785>from <00:07:07.960>the <00:07:08.135>switch

119
00:07:10.495 --> 00:07:11.835
<00:07:10.495>and <00:07:10.796>then <00:07:11.098>you <00:07:11.399>can, <00:07:11.700>uh,

120
00:07:11.885 --> 00:07:15.635
<00:07:11.885>write <00:07:12.060>it <00:07:12.235>down <00:07:12.409>in <00:07:12.585>a <00:07:12.760>very <00:07:12.935>short, <00:07:13.110>concise <00:07:13.284>way.

121
00:07:16.235 --> 00:07:20.755
<00:07:16.235>I <00:07:16.390>really <00:07:16.546>love, <00:07:16.701>um, <00:07:16.857>how <00:07:17.012>they, <00:07:17.168>uh, <00:07:17.323>modified <00:07:17.479>the <00:07:17.635>syntax.

122
00:07:21.065 --> 00:07:24.875
<00:07:21.065>It's <00:07:21.298>very, <00:07:21.531>um, <00:07:21.765>short, <00:07:21.998>elegant <00:07:22.231>and <00:07:22.465>nice

123
00:07:25.775 --> 00:07:26.915
<00:07:25.775>and <00:07:26.288>even <00:07:26.801>better.

124
00:07:27.175 --> 00:07:31.555
<00:07:27.175>It <00:07:27.330>avoids <00:07:27.486>all <00:07:27.641>these <00:07:27.797>pitfalls. <00:07:27.952>And, <00:07:28.108>um, <00:07:28.263>let's <00:07:28.419>look <00:07:28.575>back.

125
00:07:31.735 --> 00:07:35.715
<00:07:31.735>Um, <00:07:31.935>these <00:07:32.135>pitfalls <00:07:32.335>in <00:07:32.535>this <00:07:32.735>old <00:07:32.935>switch, <00:07:33.135>um,

126
00:07:36.975 --> 00:07:40.395
<00:07:36.975>we <00:07:37.208>see <00:07:37.441>here, <00:07:37.675>um, <00:07:37.908>a <00:07:38.141>not, <00:07:38.375>um,

127
00:07:41.675 --> 00:07:45.315
<00:07:41.675>complete <00:07:41.850>implementation <00:07:42.025>of, <00:07:42.200>um, <00:07:42.375>a <00:07:42.550>mapping <00:07:42.725>from, <00:07:42.900>uh, <00:07:43.075>months

128
00:07:45.455 --> 00:07:46.675
<00:07:45.455>to <00:07:46.004>its <00:07:46.553>name.

129
00:07:47.015 --> 00:07:51.315
<00:07:47.015>Um, <00:07:47.155>and <00:07:47.294>we <00:07:47.435>see, <00:07:47.575>okay, <00:07:47.715>uh, <00:07:47.854>only <00:07:47.995>the <00:07:48.135>case <00:07:48.275>is <00:07:48.414>January,

130
00:07:51.715 --> 00:07:53.355
<00:07:51.715>February, <00:07:51.995>March <00:07:52.275>and <00:07:52.555>July <00:07:52.835>are <00:07:53.115>covered.

131
00:07:53.975 --> 00:07:57.955
<00:07:53.975>Um, <00:07:54.255>and <00:07:54.535>there's <00:07:54.815>a <00:07:55.095>default, <00:07:55.375>um,

132
00:07:58.815 --> 00:08:01.515
<00:07:58.815>in <00:07:59.015>between <00:07:59.215>and <00:07:59.415>a <00:07:59.615>default <00:07:59.815>in <00:08:00.015>the <00:08:00.215>middle

133
00:08:01.515 --> 00:08:05.595
<00:08:01.515>of <00:08:01.655>all <00:08:01.794>these <00:08:01.935>cases <00:08:02.075>is <00:08:02.215>in <00:08:02.354>the <00:08:02.495>old, <00:08:02.635>uh, <00:08:02.775>thing <00:08:02.914>bad

134
00:08:05.595 --> 00:08:09.035
<00:08:05.595>because <00:08:05.875>you <00:08:06.155>often <00:08:06.435>don't <00:08:06.715>see <00:08:06.995>this.

135
00:08:09.255 --> 00:08:14.035
<00:08:09.255>And <00:08:09.371>what <00:08:09.488>you <00:08:09.605>see <00:08:09.721>here <00:08:09.838>again, <00:08:09.955>is, <00:08:10.071>um, <00:08:10.188>you <00:08:10.305>have <00:08:10.421>a <00:08:10.538>hidden <00:08:10.655>fall

136
00:08:14.035 --> 00:08:17.955
<00:08:14.035>through <00:08:14.190>if <00:08:14.346>you <00:08:14.501>have <00:08:14.657>something, <00:08:14.812>um, <00:08:14.968>what <00:08:15.123>is <00:08:15.279>not, <00:08:15.435>um,

137
00:08:18.145 --> 00:08:22.235
<00:08:18.145>general <00:08:18.320>March, <00:08:18.495>uh, <00:08:18.669>July, <00:08:18.844>then <00:08:19.020>you <00:08:19.195>are <00:08:19.370>getting, <00:08:19.544>um,

138
00:08:22.295 --> 00:08:26.595
<00:08:22.295>to <00:08:22.435>the <00:08:22.575>default <00:08:22.715>you <00:08:22.855>are <00:08:22.995>mapping, <00:08:23.135>um, <00:08:23.275>is, <00:08:23.415>uh, <00:08:23.555>not <00:08:23.695>available,

139
00:08:27.135 --> 00:08:28.755
<00:08:27.135>but <00:08:27.368>then <00:08:27.601>you <00:08:27.835>have <00:08:28.068>this <00:08:28.301>fall <00:08:28.534>through

140
00:08:28.755 --> 00:08:32.195
<00:08:28.755>and <00:08:28.930>then <00:08:29.105>you, <00:08:29.280>uh, <00:08:29.455>this, <00:08:29.630>um, <00:08:29.805>results <00:08:29.980>in <00:08:30.155>February.

141
00:08:32.615 --> 00:08:35.515
<00:08:32.615>So <00:08:32.848>this <00:08:33.081>is <00:08:33.315>not <00:08:33.548>what <00:08:33.781>you <00:08:34.015>expect.

142
00:08:35.695 --> 00:08:38.315
<00:08:35.695>And, <00:08:35.895>um, <00:08:36.095>it's <00:08:36.295>so <00:08:36.495>easy <00:08:36.695>to <00:08:36.895>make <00:08:37.095>mistakes

143
00:08:38.455 --> 00:08:41.395
<00:08:38.455>and <00:08:38.688>if <00:08:38.921>someone <00:08:39.155>is <00:08:39.388>adding <00:08:39.621>new <00:08:39.855>cases

144
00:08:41.735 --> 00:08:44.995
<00:08:41.735>and <00:08:41.909>he <00:08:42.085>is <00:08:42.260>adding <00:08:42.435>them <00:08:42.610>at <00:08:42.784>the <00:08:42.960>wrong <00:08:43.135>position,

145
00:08:44.995 --> 00:08:47.955
<00:08:44.995>then <00:08:45.345>it's <00:08:45.695>getting, <00:08:46.045>um, <00:08:46.395>confusing.

146
00:08:48.175 --> 00:08:53.155
<00:08:48.175>So, <00:08:48.330>um, <00:08:48.486>again, <00:08:48.641>it's <00:08:48.797>a <00:08:48.952>lot <00:08:49.108>clearer <00:08:49.263>with <00:08:49.419>Java <00:08:49.574>15.

147
00:08:53.615 --> 00:08:56.485
<00:08:53.615>Um, <00:08:53.790>we <00:08:53.965>are <00:08:54.140>able, <00:08:54.315>because <00:08:54.490>we <00:08:54.665>can <00:08:54.840>return <00:08:55.015>value,

148
00:08:56.625 --> 00:09:00.485
<00:08:56.625>we <00:08:56.825>can <00:08:57.025>just <00:08:57.225>write <00:08:57.425>return <00:08:57.625>switch, <00:08:57.825>we <00:08:58.025>can

149
00:09:01.635 --> 00:09:03.175
<00:09:01.635>put <00:09:01.981>on <00:09:02.328>all <00:09:02.674>our <00:09:03.021>cases

150
00:09:03.475 --> 00:09:07.175
<00:09:03.475>and <00:09:03.630>we <00:09:03.786>can <00:09:03.941>even <00:09:04.097>mix <00:09:04.252>the <00:09:04.408>cases <00:09:04.563>in <00:09:04.719>the <00:09:04.875>default

151
00:09:07.485 --> 00:09:09.255
<00:09:07.485>because <00:09:07.835>there's <00:09:08.185>no <00:09:08.535>fall <00:09:08.885>through.

152
00:09:09.395 --> 00:09:13.415
<00:09:09.395>We <00:09:09.535>don't <00:09:09.675>have, <00:09:09.814>um, <00:09:09.954>the <00:09:10.095>problem, <00:09:10.235>we <00:09:10.375>get <00:09:10.515>the <00:09:10.655>correct <00:09:10.795>mapping.

153
00:09:13.515 --> 00:09:18.265
<00:09:13.515>If <00:09:13.642>we <00:09:13.769>have <00:09:13.896>April, <00:09:14.024>we <00:09:14.151>get <00:09:14.278>this <00:09:14.405>not <00:09:14.533>available <00:09:14.660>still, <00:09:14.787>it <00:09:14.915>is,

154
00:09:18.445 --> 00:09:22.345
<00:09:18.445>um, <00:09:18.620>feasible <00:09:18.795>to <00:09:18.970>do <00:09:19.145>the <00:09:19.320>default <00:09:19.495>as <00:09:19.670>the <00:09:19.845>last,

155
00:09:22.925 --> 00:09:26.985
<00:09:22.925>but <00:09:23.125>um, <00:09:23.324>it <00:09:23.525>has <00:09:23.724>no <00:09:23.925>negative <00:09:24.125>impact, <00:09:24.324>um,

156
00:09:27.815 --> 00:09:29.945
<00:09:27.815>besides <00:09:28.515>readability, <00:09:29.215>um,

157
00:09:30.285 --> 00:09:33.305
<00:09:30.285>but <00:09:30.564>not, <00:09:30.844>uh, <00:09:31.125>concerning <00:09:31.405>program <00:09:31.685>stability.

158
00:09:35.115 --> 00:09:39.525
<00:09:35.115>Another <00:09:35.270>thing <00:09:35.426>is <00:09:35.581>if <00:09:35.737>you <00:09:35.892>have <00:09:36.048>something <00:09:36.203>like <00:09:36.359>this <00:09:36.515>code,

159
00:09:39.525 --> 00:09:43.285
<00:09:39.525>sometimes <00:09:39.680>you <00:09:39.836>like <00:09:39.991>to <00:09:40.147>have <00:09:40.302>a <00:09:40.458>special <00:09:40.613>handling <00:09:40.769>of <00:09:40.925>one

160
00:09:43.285 --> 00:09:46.045
<00:09:43.285>of <00:09:43.518>the <00:09:43.751>cases, <00:09:43.985>um, <00:09:44.218>this <00:09:44.451>is <00:09:44.685>possible.

161
00:09:47.155 --> 00:09:51.535
<00:09:47.155>You <00:09:47.295>can <00:09:47.435>say, <00:09:47.574>okay, <00:09:47.714>for <00:09:47.855>Monday, <00:09:47.995>Friday, <00:09:48.135>Sunday, <00:09:48.275>I <00:09:48.415>want <00:09:48.555>to,

162
00:09:51.875 --> 00:09:54.455
<00:09:51.875>uh, <00:09:52.075>do <00:09:52.275>a <00:09:52.475>special <00:09:52.675>handling <00:09:52.875>for <00:09:53.075>Sundays, <00:09:53.275>um,

163
00:09:54.595 --> 00:09:56.815
<00:09:54.595>and <00:09:54.945>print <00:09:55.295>out <00:09:55.645>Sundays, <00:09:55.995>Sunday.

164
00:09:57.435 --> 00:10:00.575
<00:09:57.435>But <00:09:57.574>then <00:09:57.714>you <00:09:57.854>have <00:09:57.994>the <00:09:58.135>problem <00:09:58.275>how <00:09:58.415>to <00:09:58.555>return <00:09:58.694>this <00:09:58.834>value.

165
00:10:01.115 --> 00:10:04.215
<00:10:01.115>So <00:10:01.270>there's <00:10:01.426>a <00:10:01.581>new <00:10:01.737>keyword <00:10:01.892>which <00:10:02.048>is, <00:10:02.203>uh, <00:10:02.359>called <00:10:02.515>yield,

166
00:10:04.595 --> 00:10:06.535
<00:10:04.595>and <00:10:04.828>then <00:10:05.061>you <00:10:05.295>write <00:10:05.528>it <00:10:05.761>as <00:10:05.995>follows.

167
00:10:09.725 --> 00:10:12.815
<00:10:09.725>Then <00:10:09.900>we <00:10:10.075>are <00:10:10.250>coming <00:10:10.425>to <00:10:10.600>the <00:10:10.775>N <00:10:10.950>point <00:10:11.125>exceptions.

168
00:10:16.565 --> 00:10:20.825
<00:10:16.565>Nearly <00:10:16.765>every <00:10:16.965>Java <00:10:17.165>programmer <00:10:17.365>knows <00:10:17.565>N <00:10:17.765>point <00:10:17.965>exceptions,

169
00:10:20.845 --> 00:10:23.745
<00:10:20.845>and <00:10:21.125>normally <00:10:21.405>they <00:10:21.685>are <00:10:21.965>nothing <00:10:22.245>good.

170
00:10:24.125 --> 00:10:25.865
<00:10:24.125>So <00:10:24.475>how <00:10:24.825>do <00:10:25.175>they <00:10:25.525>happen?

171
00:10:26.095 --> 00:10:30.785
<00:10:26.095>Yeah, <00:10:26.235>it's <00:10:26.375>of <00:10:26.515>course <00:10:26.655>not <00:10:26.795>always <00:10:26.935>that <00:10:27.075>easy <00:10:27.215>as <00:10:27.355>in <00:10:27.495>this

172
00:10:31.295 --> 00:10:34.465
<00:10:31.295>code <00:10:31.495>snippet <00:10:31.694>you <00:10:31.895>have, <00:10:32.094>um, <00:10:32.295>a <00:10:32.495>variable <00:10:32.694>A

173
00:10:34.565 --> 00:10:36.785
<00:10:34.565>and <00:10:34.845>this <00:10:35.125>is <00:10:35.405>a <00:10:35.685>sign <00:10:35.965>nu

174
00:10:36.885 --> 00:10:39.225
<00:10:36.885>and <00:10:37.085>you <00:10:37.285>are <00:10:37.485>accessing <00:10:37.685>something <00:10:37.885>like <00:10:38.085>the <00:10:38.285>value,

175
00:10:39.365 --> 00:10:42.065
<00:10:39.365>and <00:10:39.540>of <00:10:39.715>course <00:10:39.890>you <00:10:40.065>get <00:10:40.240>the <00:10:40.415>null <00:10:40.590>point <00:10:40.765>exception,

176
00:10:42.485 --> 00:10:46.665
<00:10:42.485>but <00:10:42.660>even <00:10:42.835>there, <00:10:43.010>this <00:10:43.185>message <00:10:43.360>is <00:10:43.535>not <00:10:43.710>that, <00:10:43.885>um,

177
00:10:47.215 --> 00:10:50.105
<00:10:47.215>informative <00:10:47.390>because <00:10:47.565>you <00:10:47.740>have <00:10:47.915>to <00:10:48.090>match <00:10:48.265>the <00:10:48.440>slide <00:10:48.615>number

178
00:10:50.175 --> 00:10:52.585
<00:10:50.175>with <00:10:50.375>the <00:10:50.574>slide <00:10:50.775>number <00:10:50.974>in <00:10:51.175>the <00:10:51.375>source <00:10:51.574>code.

179
00:10:53.365 --> 00:10:56.385
<00:10:53.365>If <00:10:53.565>you <00:10:53.765>switch <00:10:53.965>on <00:10:54.165>the <00:10:54.365>show <00:10:54.565>code <00:10:54.765>details

180
00:10:56.405 --> 00:10:57.665
<00:10:56.405>and <00:10:56.972>exception <00:10:57.539>messages.

181
00:10:58.325 --> 00:11:03.265
<00:10:58.325>Um, <00:10:58.675>then <00:10:59.025>let <00:10:59.375>me <00:10:59.725>move

182
00:11:03.265 --> 00:11:08.185
<00:11:03.265>this <00:11:03.465>a <00:11:03.665>bit, <00:11:03.865>then <00:11:04.064>you <00:11:04.265>see <00:11:04.465>that, <00:11:04.665>um,

183
00:11:09.125 --> 00:11:12.345
<00:11:09.125>we <00:11:09.405>get, <00:11:09.685>uh, <00:11:09.965>much <00:11:10.245>nicer, <00:11:10.525>uh,

184
00:11:12.415 --> 00:11:16.585
<00:11:12.415>message <00:11:12.589>cannot <00:11:12.765>assign <00:11:12.939>field <00:11:13.115>value <00:11:13.290>because <00:11:13.464>a <00:11:13.640>is <00:11:13.814>null.

185
00:11:17.085 --> 00:11:20.785
<00:11:17.085>Um, <00:11:17.365>this <00:11:17.645>is, <00:11:17.925>um, <00:11:18.205>very <00:11:18.485>informative.

186
00:11:20.845 --> 00:11:24.905
<00:11:20.845>You <00:11:20.985>are <00:11:21.125>um, <00:11:21.265>really <00:11:21.405>get <00:11:21.545>to <00:11:21.685>know <00:11:21.825>what <00:11:21.965>uh, <00:11:22.105>goes <00:11:22.245>wrong.

187
00:11:25.765 --> 00:11:27.465
<00:11:25.765>Um, <00:11:27.165>and

188
00:11:27.485 --> 00:11:31.065
<00:11:27.485>of <00:11:27.640>course <00:11:27.796>a <00:11:27.951>source <00:11:28.107>code <00:11:28.262>is <00:11:28.418>not <00:11:28.573>always <00:11:28.729>that <00:11:28.885>easy.

189
00:11:31.325 --> 00:11:35.945
<00:11:31.325>Co <00:11:31.480>source <00:11:31.636>code <00:11:31.791>is <00:11:31.947>like, <00:11:32.102>um, <00:11:32.258>this <00:11:32.413>or <00:11:32.569>like <00:11:32.725>that,

190
00:11:36.165 --> 00:11:40.985
<00:11:36.165>or <00:11:36.320>even <00:11:36.476>in <00:11:36.631>the <00:11:36.787>in <00:11:36.942>practices, <00:11:37.098>um, <00:11:37.253>even <00:11:37.409>more <00:11:37.564>complicated,

191
00:11:41.015 --> 00:11:42.105
<00:11:41.015>what <00:11:41.260>do <00:11:41.505>we <00:11:41.750>have <00:11:41.996>here?

192
00:11:42.105 --> 00:11:45.425
<00:11:42.105>We <00:11:42.305>have <00:11:42.505>a <00:11:42.705>string <00:11:42.905>array, <00:11:43.105>which <00:11:43.305>is <00:11:43.505>initialized

193
00:11:45.575 --> 00:11:47.745
<00:11:45.575>with <00:11:45.808>another <00:11:46.041>values, <00:11:46.275>not <00:11:46.508>a <00:11:46.741>good <00:11:46.975>idea,

194
00:11:47.805 --> 00:11:52.465
<00:11:47.805>but <00:11:47.944>a <00:11:48.084>good <00:11:48.224>idea <00:11:48.364>to, <00:11:48.505>um, <00:11:48.645>show <00:11:48.785>the, <00:11:48.925>um, <00:11:49.064>new <00:11:49.204>feature.

195
00:11:52.885 --> 00:11:54.565
<00:11:52.885>So <00:11:53.118>what <00:11:53.351>do <00:11:53.585>are <00:11:53.818>we <00:11:54.051>doing <00:11:54.285>here?

196
00:11:54.665 --> 00:11:58.565
<00:11:54.665>We <00:11:54.792>are <00:11:54.919>existing <00:11:55.046>this <00:11:55.174>index <00:11:55.301>two, <00:11:55.428>which <00:11:55.555>is <00:11:55.683>of <00:11:55.810>course <00:11:55.937>a <00:11:56.064>null,

197
00:11:58.905 --> 00:12:00.925
<00:11:58.905>and <00:11:59.138>then <00:11:59.371>we <00:11:59.605>call <00:11:59.838>last <00:12:00.071>index <00:12:00.305>off.

198
00:12:01.585 --> 00:12:06.155
<00:12:01.585>Um, <00:12:01.712>and <00:12:01.839>then <00:12:01.966>we <00:12:02.094>see, <00:12:02.221>okay, <00:12:02.348>last <00:12:02.475>index <00:12:02.603>off <00:12:02.730>can't <00:12:02.857>be <00:12:02.985>called

199
00:12:06.155 --> 00:12:08.715
<00:12:06.155>because <00:12:06.355>string <00:12:06.555>area, <00:12:06.755>uh, <00:12:06.954>position <00:12:07.155>two <00:12:07.355>is <00:12:07.555>null,

200
00:12:09.455 --> 00:12:14.355
<00:12:09.455>or <00:12:09.610>if <00:12:09.766>we <00:12:09.921>want <00:12:10.077>to <00:12:10.232>add, <00:12:10.388>uh, <00:12:10.543>a <00:12:10.699>three <00:12:10.855>to

201
00:12:15.025 --> 00:12:17.875
<00:12:15.025>another <00:12:15.305>value, <00:12:15.584>then <00:12:15.865>we <00:12:16.145>see, <00:12:16.425>oh,

202
00:12:18.305 --> 00:12:21.355
<00:12:18.305>this <00:12:18.655>gets <00:12:19.005>problems <00:12:19.354>doing <00:12:19.704>unboxing.

203
00:12:21.655 --> 00:12:26.515
<00:12:21.655>Um, <00:12:21.795>and <00:12:21.935>then <00:12:22.074>we <00:12:22.214>see, <00:12:22.355>ah, <00:12:22.495>um, <00:12:22.635>value <00:12:22.775>is <00:12:22.915>now, <00:12:23.055>uh,

204
00:12:26.515 --> 00:12:31.195
<00:12:26.515>this <00:12:26.655>is <00:12:26.795>not <00:12:26.935>working <00:12:27.074>and <00:12:27.215>this, <00:12:27.355>which <00:12:27.495>may <00:12:27.635>be <00:12:27.775>helpful, <00:12:27.915>um,

205
00:12:31.585 --> 00:12:35.035
<00:12:31.585>when <00:12:31.760>you <00:12:31.935>are <00:12:32.110>in <00:12:32.285>a <00:12:32.460>testing <00:12:32.635>debugging, <00:12:32.810>um, <00:12:32.985>phase

206
00:12:35.215 --> 00:12:39.595
<00:12:35.215>and, <00:12:35.448>um, <00:12:35.681>you <00:12:35.915>are, <00:12:36.148>um, <00:12:36.381>not <00:12:36.615>able

207
00:12:39.695 --> 00:12:42.075
<00:12:39.695>to <00:12:39.975>catch, <00:12:40.255>um, <00:12:40.535>the <00:12:40.815>error <00:12:41.095>otherwise.

208
00:12:43.015 --> 00:12:46.595
<00:12:43.015>Um, <00:12:43.215>okay, <00:12:43.415>let's <00:12:43.615>move <00:12:43.814>over <00:12:44.015>to <00:12:44.215>text <00:12:44.415>blocks.

209
00:12:46.895 --> 00:12:50.435
<00:12:46.895>Um, <00:12:47.245>fantastic <00:12:47.595>feature. <00:12:47.944>Very <00:12:48.295>nice.

210
00:12:51.055 --> 00:12:54.195
<00:12:51.055>Um, <00:12:51.405>we <00:12:51.755>waited <00:12:52.104>so <00:12:52.454>long

211
00:12:54.455 --> 00:12:56.275
<00:12:54.455>for <00:12:55.155>multi-line <00:12:55.855>strings.

212
00:12:56.575 --> 00:13:00.395
<00:12:56.575>Um, <00:12:56.808>if <00:12:57.041>we <00:12:57.275>don't <00:12:57.508>have <00:12:57.741>multi-line <00:12:57.975>strings

213
00:13:00.615 --> 00:13:03.155
<00:13:00.615>as <00:13:00.815>we <00:13:01.015>see <00:13:01.215>this <00:13:01.415>in <00:13:01.615>the <00:13:01.815>example <00:13:02.015>below

214
00:13:03.535 --> 00:13:07.715
<00:13:03.535>and <00:13:03.709>we <00:13:03.885>want <00:13:04.060>to, <00:13:04.235>uh, <00:13:04.410>include <00:13:04.584>multi-line <00:13:04.760>of <00:13:04.935>text,

215
00:13:08.185 --> 00:13:12.555
<00:13:08.185>then <00:13:08.340>we <00:13:08.496>have <00:13:08.651>to <00:13:08.807>add <00:13:08.962>all <00:13:09.118>these, <00:13:09.273>um, <00:13:09.429>yeah, <00:13:09.584>line,

216
00:13:12.815 --> 00:13:13.915
<00:13:12.815>uh, <00:13:13.805>separators.

217
00:13:14.375 --> 00:13:17.515
<00:13:14.375>And <00:13:14.655>it <00:13:14.935>is, <00:13:15.215>um, <00:13:15.495>so <00:13:15.775>annoying

218
00:13:17.655 --> 00:13:20.155
<00:13:17.655>to <00:13:17.935>have <00:13:18.214>all <00:13:18.495>these <00:13:18.775>escape <00:13:19.055>sequences.

219
00:13:20.535 --> 00:13:22.155
<00:13:20.535>And <00:13:20.768>if <00:13:21.001>you <00:13:21.235>look <00:13:21.468>at <00:13:21.701>this, <00:13:21.935>um,

220
00:13:22.655 --> 00:13:24.795
<00:13:22.655>or <00:13:22.829>if <00:13:23.005>you <00:13:23.180>imagine <00:13:23.355>this <00:13:23.530>is <00:13:23.704>a <00:13:23.880>bit <00:13:24.055>longer

221
00:13:24.935 --> 00:13:29.435
<00:13:24.935>and <00:13:25.074>a <00:13:25.214>bit <00:13:25.354>more <00:13:25.494>complex, <00:13:25.635>then <00:13:25.775>it's <00:13:25.915>getting <00:13:26.055>hard <00:13:26.194>to <00:13:26.334>read.

222
00:13:29.735 --> 00:13:34.595
<00:13:29.735>So <00:13:29.875>why <00:13:30.015>don't <00:13:30.155>write <00:13:30.295>it <00:13:30.435>as <00:13:30.575>you <00:13:30.715>like <00:13:30.855>to <00:13:30.995>write <00:13:31.135>it.

223
00:13:34.935 --> 00:13:39.485
<00:13:34.935>Um, <00:13:35.214>just, <00:13:35.494>um, <00:13:35.775>this <00:13:36.055>multi-line <00:13:36.334>text,

224
00:13:39.945 --> 00:13:44.325
<00:13:39.945>um, <00:13:40.295>and <00:13:40.645>no, <00:13:40.995>um, <00:13:41.345>escaping

225
00:13:44.865 --> 00:13:49.205
<00:13:44.865>no <00:13:45.020>line <00:13:45.176>breaks, <00:13:45.331>um, <00:13:45.487>what <00:13:45.642>you <00:13:45.798>need <00:13:45.953>are <00:13:46.109>these, <00:13:46.265>um,

226
00:13:49.815 --> 00:13:54.275
<00:13:49.815>three, <00:13:50.515>um, <00:13:51.215>um,

227
00:13:59.495 --> 00:14:04.055
<00:13:59.495>yeah, <00:13:59.728>um, <00:13:59.961>you <00:14:00.195>have <00:14:00.428>these, <00:14:00.661>uh, <00:14:00.895>three,

228
00:14:04.715 --> 00:14:09.565
<00:14:04.715>um, <00:14:05.065>do <00:14:05.415>you <00:14:05.765>know <00:14:06.115>someone,

229
00:14:10.615 --> 00:14:15.035
<00:14:10.615>sorry, <00:14:10.848>um, <00:14:11.081>I'm, <00:14:11.315>I <00:14:11.548>have <00:14:11.781>a, <00:14:12.015>um,

230
00:14:15.365 --> 00:14:16.435
<00:14:15.365>small <00:14:16.328>blackout,

231
00:14:16.455 --> 00:14:20.955
<00:14:16.455>but, <00:14:16.630>um, <00:14:16.805>so, <00:14:16.980>um, <00:14:17.155>what <00:14:17.330>you <00:14:17.505>see, <00:14:17.680>you <00:14:17.855>um,

232
00:14:21.165 --> 00:14:22.835
<00:14:21.165>don't <00:14:21.631>need <00:14:22.098>this <00:14:22.564>escaping

233
00:14:23.135 --> 00:14:26.635
<00:14:23.135>and <00:14:23.335>you <00:14:23.535>can <00:14:23.735>even, <00:14:23.935>uh, <00:14:24.135>use <00:14:24.335>the <00:14:24.535>backslash

234
00:14:26.855 --> 00:14:28.515
<00:14:26.855>and <00:14:27.321>it's <00:14:27.788>very <00:14:28.255>easy.

235
00:14:29.135 --> 00:14:33.275
<00:14:29.135>Um, <00:14:29.335>so, <00:14:29.535>um, <00:14:29.735>if <00:14:29.935>you <00:14:30.135>look <00:14:30.335>at, <00:14:30.535>um,

236
00:14:33.995 --> 00:14:38.595
<00:14:33.995>HDML <00:14:34.150>code, <00:14:34.306>you <00:14:34.461>see, <00:14:34.617>uh, <00:14:34.772>you <00:14:34.928>can <00:14:35.083>see <00:14:35.239>the <00:14:35.395>indentation,

237
00:14:38.695 --> 00:14:40.795
<00:14:38.695>you <00:14:38.928>don't <00:14:39.161>need <00:14:39.395>these, <00:14:39.628>uh, <00:14:39.861>line <00:14:40.095>breaks.

238
00:14:41.255 --> 00:14:45.955
<00:14:41.255>Um, <00:14:41.455>yeah, <00:14:41.655>it <00:14:41.855>is <00:14:42.055>very <00:14:42.255>easy <00:14:42.455>to <00:14:42.655>use

239
00:14:46.255 --> 00:14:50.235
<00:14:46.255>and <00:14:46.455>you <00:14:46.655>can <00:14:46.855>even, <00:14:47.055>uh, <00:14:47.255>have <00:14:47.455>placeholders <00:14:47.655>there.

240
00:14:50.535 --> 00:14:54.525
<00:14:50.535>And, <00:14:50.768>um, <00:14:51.001>then, <00:14:51.235>um, <00:14:51.468>put <00:14:51.701>in, <00:14:51.935>uh,

241
00:14:54.525 --> 00:14:56.405
<00:14:54.525>values <00:14:54.875>from <00:14:55.225>an <00:14:55.574>object <00:14:55.925>area.

242
00:14:57.225 --> 00:15:01.125
<00:14:57.225>And <00:14:57.400>the <00:14:57.575>best <00:14:57.750>is <00:14:57.925>if <00:14:58.100>you <00:14:58.275>have <00:14:58.450>to <00:14:58.625>process

243
00:15:01.805 --> 00:15:04.605
<00:15:01.805>J <00:15:02.038>data, <00:15:02.271>you <00:15:02.505>are <00:15:02.738>able <00:15:02.971>to, <00:15:03.204>um,

244
00:15:04.635 --> 00:15:08.605
<00:15:04.635>fill <00:15:04.868>in <00:15:05.101>all <00:15:05.335>your <00:15:05.568>Jason, <00:15:05.801>um, <00:15:06.035>just

245
00:15:08.785 --> 00:15:12.605
<00:15:08.785>as <00:15:08.940>you <00:15:09.096>know <00:15:09.251>it, <00:15:09.407>you <00:15:09.562>just <00:15:09.718>write <00:15:09.873>your <00:15:10.029>JS <00:15:10.185>document.

246
00:15:13.225 --> 00:15:16.955
<00:15:13.225>Um, <00:15:13.505>and <00:15:13.785>that's <00:15:14.065>a <00:15:14.345>pretty <00:15:14.625>cool

247
00:15:17.535 --> 00:15:19.075
<00:15:17.535>new <00:15:17.997>feature <00:15:18.459>of <00:15:18.921>Java.

248
00:15:21.045 --> 00:15:25.295
<00:15:21.045>So <00:15:21.745>the <00:15:22.444>next

249
00:15:25.355 --> 00:15:26.815
<00:15:25.355>one, <00:15:25.793>um, <00:15:26.231>is <00:15:26.669>records.

250
00:15:27.005 --> 00:15:31.215
<00:15:27.005>Records. <00:15:27.205>Um, <00:15:27.405>yeah, <00:15:27.605>it's <00:15:27.805>a <00:15:28.005>nice <00:15:28.205>cool <00:15:28.405>feature.

251
00:15:32.035 --> 00:15:35.965
<00:15:32.035>Um, <00:15:32.501>and <00:15:32.968>do <00:15:33.435>you

252
00:15:36.725 --> 00:15:40.605
<00:15:36.725>remember <00:15:36.865>if <00:15:37.005>you <00:15:37.145>want <00:15:37.285>to <00:15:37.425>write <00:15:37.565>these <00:15:37.705>data <00:15:37.845>or <00:15:37.985>transfer <00:15:38.125>objects

253
00:15:40.625 --> 00:15:44.525
<00:15:40.625>or <00:15:40.765>you <00:15:40.905>have <00:15:41.045>to <00:15:41.185>define <00:15:41.325>all <00:15:41.465>your <00:15:41.605>data <00:15:41.745>transfer <00:15:41.885>objects, <00:15:42.025>uh,

254
00:15:44.545 --> 00:15:48.965
<00:15:44.545>if <00:15:44.719>you <00:15:44.895>are <00:15:45.069>going <00:15:45.245>from <00:15:45.420>one, <00:15:45.594>um, <00:15:45.770>yeah, <00:15:45.944>level

255
00:15:49.105 --> 00:15:53.205
<00:15:49.105>of <00:15:49.245>your <00:15:49.385>application <00:15:49.525>to <00:15:49.665>another <00:15:49.805>and, <00:15:49.945>um, <00:15:50.085>one <00:15:50.225>tier <00:15:50.365>to <00:15:50.505>another,

256
00:15:53.665 --> 00:15:56.765
<00:15:53.665>and <00:15:53.898>yeah, <00:15:54.131>always <00:15:54.365>you <00:15:54.598>have <00:15:54.831>to, <00:15:55.064>uh,

257
00:15:56.785 --> 00:15:58.925
<00:15:56.785>define <00:15:57.251>data <00:15:57.718>transfer <00:15:58.185>objects

258
00:15:58.925 --> 00:16:01.725
<00:15:58.925>and <00:15:59.080>you <00:15:59.236>have <00:15:59.391>to <00:15:59.547>write <00:15:59.702>all <00:15:59.858>these <00:16:00.013>scatters <00:16:00.169>and <00:16:00.324>setters.

259
00:16:02.185 --> 00:16:03.925
<00:16:02.185>Um, <00:16:02.535>wouldn't <00:16:02.885>it <00:16:03.234>be <00:16:03.584>nice

260
00:16:03.985 --> 00:16:08.925
<00:16:03.985>and <00:16:04.140>cool <00:16:04.296>to <00:16:04.451>just <00:16:04.607>write, <00:16:04.762>um, <00:16:04.918>yeah, <00:16:05.073>what <00:16:05.229>is <00:16:05.385>necessary,

261
00:16:08.995 --> 00:16:10.685
<00:16:08.995>what <00:16:09.345>is, <00:16:09.695>uh, <00:16:10.045>really <00:16:10.395>needed?

262
00:16:10.905 --> 00:16:12.445
<00:16:10.905>And <00:16:11.367>this <00:16:11.829>is <00:16:12.291>possible.

263
00:16:12.705 --> 00:16:17.005
<00:16:12.705>Um, <00:16:12.860>we <00:16:13.016>have <00:16:13.171>this <00:16:13.327>enhancement, <00:16:13.482>um, <00:16:13.638>this <00:16:13.793>is <00:16:13.949>called <00:16:14.105>record,

264
00:16:17.225 --> 00:16:19.325
<00:16:17.225>and <00:16:17.458>what <00:16:17.691>you <00:16:17.925>just <00:16:18.158>write <00:16:18.391>is <00:16:18.625>record.

265
00:16:19.985 --> 00:16:23.285
<00:16:19.985>Uh, <00:16:20.335>you <00:16:20.685>put <00:16:21.035>in, <00:16:21.385>um,

266
00:16:23.755 --> 00:16:28.365
<00:16:23.755>some <00:16:23.955>parameters <00:16:24.155>which <00:16:24.355>are, <00:16:24.555>um, <00:16:24.755>refer, <00:16:24.955>referring, <00:16:25.155>um,

267
00:16:28.425 --> 00:16:30.325
<00:16:28.425>the <00:16:28.775>attributes, <00:16:29.125>and <00:16:29.474>that's <00:16:29.824>all.

268
00:16:30.745 --> 00:16:34.885
<00:16:30.745>And <00:16:30.920>we <00:16:31.095>will <00:16:31.270>see <00:16:31.445>what, <00:16:31.620>um, <00:16:31.795>uh, <00:16:31.970>um, <00:16:32.145>yeah,

269
00:16:35.595 --> 00:16:38.565
<00:16:35.595>what <00:16:35.750>you, <00:16:35.906>you <00:16:36.061>can <00:16:36.217>expect <00:16:36.372>on <00:16:36.528>the, <00:16:36.683>um, <00:16:36.839>the <00:16:36.995>hood.

270
00:16:38.985 --> 00:16:42.845
<00:16:38.985>Um, <00:16:39.218>they <00:16:39.451>define <00:16:39.685>just <00:16:39.918>the <00:16:40.151>simple <00:16:40.385>class,

271
00:16:42.845 --> 00:16:46.525
<00:16:42.845>having <00:16:43.078>two <00:16:43.311>data <00:16:43.545>members, <00:16:43.778>ex <00:16:44.011>and <00:16:44.245>epsilon

272
00:16:46.665 --> 00:16:49.045
<00:16:46.665>and, <00:16:47.015>um, <00:16:47.365>it's <00:16:47.714>very <00:16:48.064>compact.

273
00:16:49.585 --> 00:16:54.445
<00:16:49.585>Um, <00:16:49.760>and <00:16:49.935>the <00:16:50.110>interesting <00:16:50.285>thing, <00:16:50.460>um, <00:16:50.635>if <00:16:50.810>you <00:16:50.985>know

274
00:16:54.515 --> 00:16:58.165
<00:16:54.515>that <00:16:54.715>these, <00:16:54.915>um, <00:16:55.115>attributes <00:16:55.314>is <00:16:55.515>very <00:16:55.715>able, <00:16:55.915>uh,

275
00:16:58.165 --> 00:17:01.925
<00:16:58.165>will <00:16:58.305>not <00:16:58.444>change, <00:16:58.584>then <00:16:58.724>you <00:16:58.865>are <00:16:59.005>able <00:16:59.145>to <00:16:59.285>generate <00:16:59.425>a <00:16:59.564>class

276
00:17:02.195 --> 00:17:03.525
<00:17:02.195>with <00:17:02.793>excess <00:17:03.391>methods.

277
00:17:04.025 --> 00:17:07.805
<00:17:04.025>You <00:17:04.200>can, <00:17:04.375>uh, <00:17:04.550>derive <00:17:04.725>equals <00:17:04.900>and <00:17:05.075>hash <00:17:05.250>code, <00:17:05.425>um,

278
00:17:08.105 --> 00:17:11.925
<00:17:08.105>and <00:17:08.245>they <00:17:08.385>are <00:17:08.525>adhering <00:17:08.665>to <00:17:08.805>the <00:17:08.944>contract, <00:17:09.085>um, <00:17:09.224>which <00:17:09.365>is <00:17:09.505>not

279
00:17:11.925 --> 00:17:15.605
<00:17:11.925>that <00:17:12.065>easy <00:17:12.204>if <00:17:12.345>you, <00:17:12.484>um, <00:17:12.625>write <00:17:12.764>all <00:17:12.905>this <00:17:13.044>on <00:17:13.185>your <00:17:13.325>own.

280
00:17:15.665 --> 00:17:18.445
<00:17:15.665>And, <00:17:15.805>uh, <00:17:15.944>if <00:17:16.085>you <00:17:16.224>have <00:17:16.365>set <00:17:16.504>methods, <00:17:16.645>uh, <00:17:16.784>then <00:17:16.925>it's <00:17:17.065>getting

281
00:17:19.155 --> 00:17:22.725
<00:17:19.155>even <00:17:19.388>harder <00:17:19.621>to, <00:17:19.855>um, <00:17:20.088>do <00:17:20.321>this <00:17:20.555>consistently.

282
00:17:23.385 --> 00:17:25.725
<00:17:23.385>So <00:17:23.585>let's <00:17:23.785>have <00:17:23.984>a <00:17:24.185>look <00:17:24.385>at <00:17:24.585>an <00:17:24.785>example.

283
00:17:25.825 --> 00:17:28.845
<00:17:25.825>You <00:17:26.025>have <00:17:26.225>this <00:17:26.425>point, <00:17:26.625>you <00:17:26.825>have <00:17:27.025>two <00:17:27.225>coordinates.

284
00:17:28.985 --> 00:17:31.525
<00:17:28.985>Um, <00:17:29.264>you <00:17:29.544>have <00:17:29.824>these <00:17:30.104>six <00:17:30.385>methods,

285
00:17:32.225 --> 00:17:36.795
<00:17:32.225>but <00:17:32.380>what's <00:17:32.536>happening <00:17:32.691>on <00:17:32.847>the, <00:17:33.002>the <00:17:33.158>hood, <00:17:33.313>there's <00:17:33.469>this <00:17:33.625>tool,

286
00:17:37.215 --> 00:17:39.475
<00:17:37.215>um, <00:17:37.495>build <00:17:37.774>in <00:17:38.054>into, <00:17:38.334>um, <00:17:38.615>Java.

287
00:17:39.475 --> 00:17:43.795
<00:17:39.475>It's <00:17:39.630>called <00:17:39.786>Java <00:17:39.941>P, <00:17:40.097>which <00:17:40.252>shows <00:17:40.408>you <00:17:40.563>the <00:17:40.719>by <00:17:40.875>code

288
00:17:44.015 --> 00:17:45.395
<00:17:44.015>of <00:17:44.325>a <00:17:44.636>class <00:17:44.946>or <00:17:45.257>record.

289
00:17:46.055 --> 00:17:48.955
<00:17:46.055>So <00:17:46.230>if <00:17:46.405>you <00:17:46.580>do <00:17:46.755>this, <00:17:46.930>you <00:17:47.105>see <00:17:47.280>that, <00:17:47.455>um,

290
00:17:49.275 --> 00:17:52.045
<00:17:49.275>this <00:17:49.625>is <00:17:49.975>compiled <00:17:50.325>into, <00:17:50.675>um,

291
00:17:53.085 --> 00:17:55.725
<00:17:53.085>a <00:17:53.318>class <00:17:53.551>which <00:17:53.785>extends <00:17:54.018>Java <00:17:54.251>lung <00:17:54.485>record,

292
00:17:57.255 --> 00:18:01.045
<00:17:57.255>which <00:17:57.410>has <00:17:57.566>a <00:17:57.721>constructor, <00:17:57.877>which <00:17:58.032>has <00:17:58.188>these <00:17:58.343>methods, <00:17:58.499>which <00:17:58.655>has

293
00:18:01.045 --> 00:18:02.685
<00:18:01.045>to <00:18:01.325>string <00:18:01.605>hash <00:18:01.885>code <00:18:02.165>and <00:18:02.445>equals.

294
00:18:04.385 --> 00:18:08.405
<00:18:04.385>If <00:18:04.540>you <00:18:04.696>want <00:18:04.851>to <00:18:05.007>achieve <00:18:05.162>the <00:18:05.318>same <00:18:05.473>thing <00:18:05.629>shown <00:18:05.785>here

295
00:18:09.065 --> 00:18:13.315
<00:18:09.065>on <00:18:09.220>your <00:18:09.376>own, <00:18:09.531>you <00:18:09.687>have <00:18:09.842>to <00:18:09.998>write <00:18:10.153>something <00:18:10.309>like <00:18:10.465>this.

296
00:18:13.415 --> 00:18:17.405
<00:18:13.415>You <00:18:13.570>have <00:18:13.726>to <00:18:13.881>define <00:18:14.037>a <00:18:14.192>class <00:18:14.348>to <00:18:14.503>define <00:18:14.659>finer <00:18:14.815>attributes,

297
00:18:17.505 --> 00:18:20.605
<00:18:17.505>the <00:18:17.855>constructor <00:18:18.205>and <00:18:18.555>equals <00:18:18.905>method,

298
00:18:21.015 --> 00:18:25.165
<00:18:21.015>which <00:18:21.155>is <00:18:21.295>doing <00:18:21.435>all <00:18:21.575>the <00:18:21.715>necessary <00:18:21.855>checks, <00:18:21.995>uh, <00:18:22.135>a <00:18:22.275>hash <00:18:22.415>code

299
00:18:25.905 --> 00:18:30.445
<00:18:25.905>and <00:18:26.045>to <00:18:26.185>string, <00:18:26.325>and <00:18:26.465>of <00:18:26.605>course, <00:18:26.745>uh, <00:18:26.885>these <00:18:27.024>two <00:18:27.165>methods, <00:18:27.305>um,

300
00:18:31.115 --> 00:18:32.445
<00:18:31.115>accessing <00:18:31.713>the <00:18:32.312>variables.

301
00:18:32.465 --> 00:18:35.685
<00:18:32.465>But <00:18:32.605>what <00:18:32.745>you <00:18:32.885>see <00:18:33.024>is <00:18:33.165>this <00:18:33.304>is <00:18:33.445>a <00:18:33.584>lot <00:18:33.725>of <00:18:33.865>code,

302
00:18:35.865 --> 00:18:40.045
<00:18:35.865>and <00:18:36.040>I <00:18:36.215>know <00:18:36.390>a <00:18:36.565>lot <00:18:36.740>of, <00:18:36.915>um, <00:18:37.090>dts, <00:18:37.265>which

303
00:18:40.625 --> 00:18:43.965
<00:18:40.625>do <00:18:40.741>not <00:18:40.858>have <00:18:40.975>an <00:18:41.091>equals <00:18:41.208>or <00:18:41.325>do <00:18:41.441>not <00:18:41.558>have <00:18:41.675>an <00:18:41.791>hash <00:18:41.908>code <00:18:42.025>method,

304
00:18:44.385 --> 00:18:48.125
<00:18:44.385>and <00:18:44.585>this, <00:18:44.785>um, <00:18:44.985>always <00:18:45.185>causes <00:18:45.385>problems <00:18:45.585>later <00:18:45.785>on.

305
00:18:50.345 --> 00:18:53.325
<00:18:50.345>So <00:18:50.500>the <00:18:50.656>cool <00:18:50.811>thing <00:18:50.967>is <00:18:51.122>that <00:18:51.278>you <00:18:51.433>can <00:18:51.589>use <00:18:51.745>these,

306
00:18:53.545 --> 00:18:55.485
<00:18:53.545>um, <00:18:54.245>in <00:18:54.945>combination.

307
00:18:55.625 --> 00:19:00.365
<00:18:55.625>You <00:18:55.800>can <00:18:55.975>define, <00:18:56.150>uh, <00:18:56.325>other <00:18:56.500>records, <00:18:56.675>um, <00:18:56.850>on <00:18:57.025>base

308
00:19:00.425 --> 00:19:02.645
<00:19:00.425>of <00:19:00.774>your <00:19:01.125>already <00:19:01.475>defined <00:19:01.825>records.

309
00:19:03.105 --> 00:19:07.285
<00:19:03.105>You <00:19:03.385>can, <00:19:03.665>um, <00:19:03.945>also <00:19:04.225>define <00:19:04.505>special

310
00:19:07.965 --> 00:19:10.805
<00:19:07.965>constructors <00:19:08.245>in, <00:19:08.524>um, <00:19:08.804>these, <00:19:09.084>uh, <00:19:09.365>records.

311
00:19:11.625 --> 00:19:14.765
<00:19:11.625>Um, <00:19:11.825>this <00:19:12.025>is <00:19:12.225>pretty <00:19:12.425>cool <00:19:12.625>and <00:19:12.825>pretty <00:19:13.025>straightforward.

312
00:19:15.545 --> 00:19:20.055
<00:19:15.545>Um, <00:19:15.720>the <00:19:15.895>good <00:19:16.070>thing <00:19:16.245>is <00:19:16.420>you <00:19:16.595>can, <00:19:16.770>um, <00:19:16.945>easily

313
00:19:20.715 --> 00:19:22.495
<00:19:20.715>use <00:19:21.064>records <00:19:21.415>as <00:19:21.764>return <00:19:22.115>types.

314
00:19:22.955 --> 00:19:24.375
<00:19:22.955>Um, <00:19:23.594>a <00:19:24.233>lot

315
00:19:24.395 --> 00:19:28.735
<00:19:24.395>of <00:19:24.535>times <00:19:24.675>in <00:19:24.815>practice <00:19:24.955>you <00:19:25.095>need <00:19:25.235>something <00:19:25.375>like <00:19:25.514>an <00:19:25.655>return <00:19:25.795>code

316
00:19:28.795 --> 00:19:31.615
<00:19:28.795>and, <00:19:28.970>and <00:19:29.145>additional <00:19:29.320>information, <00:19:29.495>or <00:19:29.670>you <00:19:29.845>have <00:19:30.020>a <00:19:30.195>code

317
00:19:31.675 --> 00:19:33.375
<00:19:31.675>and <00:19:31.908>you <00:19:32.141>have <00:19:32.375>a <00:19:32.608>list <00:19:32.841>of <00:19:33.075>values.

318
00:19:34.235 --> 00:19:38.415
<00:19:34.235>Um, <00:19:34.362>and <00:19:34.489>if <00:19:34.616>you <00:19:34.744>want <00:19:34.871>to <00:19:34.998>return <00:19:35.125>this, <00:19:35.253>this <00:19:35.380>is <00:19:35.507>not <00:19:35.635>the

319
00:19:38.445 --> 00:19:42.735
<00:19:38.445>that <00:19:38.572>easy <00:19:38.699>In <00:19:38.826>Java, <00:19:38.954>you <00:19:39.081>can, <00:19:39.208>uh, <00:19:39.335>write <00:19:39.463>your <00:19:39.590>own <00:19:39.717>pair <00:19:39.845>classes

320
00:19:42.995 --> 00:19:44.135
<00:19:42.995>or <00:19:43.337>your <00:19:43.678>own <00:19:44.021>classes,

321
00:19:44.635 --> 00:19:47.335
<00:19:44.635>but, <00:19:44.915>um, <00:19:45.195>it's <00:19:45.475>a <00:19:45.754>lot <00:19:46.035>easier

322
00:19:47.995 --> 00:19:49.775
<00:19:47.995>to <00:19:48.344>just <00:19:48.695>write <00:19:49.044>a <00:19:49.395>record.

323
00:19:50.475 --> 00:19:53.455
<00:19:50.475>Um, <00:19:50.675>and <00:19:50.875>then <00:19:51.074>you <00:19:51.274>can, <00:19:51.475>um, <00:19:51.675>use <00:19:51.875>this

324
00:19:53.475 --> 00:19:55.375
<00:19:53.475>to <00:19:53.941>return <00:19:54.408>multiple <00:19:54.875>values.

325
00:19:56.285 --> 00:19:57.495
<00:19:56.285>Another <00:19:56.829>idea <00:19:57.373>is

326
00:19:58.985 --> 00:20:00.425
<00:19:58.985>whenever <00:19:59.244>you <00:19:59.503>have <00:19:59.762>a <00:20:00.021>map, <00:20:00.281>um,

327
00:20:00.455 --> 00:20:03.505
<00:20:00.455>sometimes <00:20:00.655>you <00:20:00.855>need <00:20:01.054>something <00:20:01.254>like <00:20:01.455>a <00:20:01.655>compound <00:20:01.855>key.

328
00:20:03.565 --> 00:20:05.745
<00:20:03.565>You <00:20:03.740>have <00:20:03.915>something <00:20:04.090>like <00:20:04.265>a <00:20:04.440>name <00:20:04.615>and <00:20:04.790>an <00:20:04.965>age,

329
00:20:06.325 --> 00:20:09.705
<00:20:06.325>and, <00:20:06.525>um, <00:20:06.725>these <00:20:06.925>boats, <00:20:07.125>um, <00:20:07.325>are <00:20:07.525>the <00:20:07.725>key.

330
00:20:10.245 --> 00:20:13.225
<00:20:10.245>And, <00:20:10.400>um, <00:20:10.556>of <00:20:10.711>course, <00:20:10.867>again, <00:20:11.022>you <00:20:11.178>can <00:20:11.333>use <00:20:11.489>a <00:20:11.645>record

331
00:20:13.685 --> 00:20:17.505
<00:20:13.685>to <00:20:13.885>define <00:20:14.085>something <00:20:14.284>like <00:20:14.485>a <00:20:14.685>compound <00:20:14.885>key, <00:20:15.085>so

332
00:20:19.215 --> 00:20:21.435
<00:20:19.215>to <00:20:19.564>get <00:20:19.915>a <00:20:20.264>better <00:20:20.615>understanding.

333
00:20:21.935 --> 00:20:25.155
<00:20:21.935>So, <00:20:22.110>um, <00:20:22.284>a <00:20:22.460>lot <00:20:22.635>of <00:20:22.810>times, <00:20:22.985>um, <00:20:23.159>you <00:20:23.335>see,

334
00:20:25.375 --> 00:20:29.035
<00:20:25.375>or <00:20:25.655>sometimes <00:20:25.935>you <00:20:26.215>see, <00:20:26.495>um, <00:20:26.775>definitions

335
00:20:29.135 --> 00:20:30.795
<00:20:29.135>of <00:20:29.601>pairs <00:20:30.068>like <00:20:30.535>this.

336
00:20:31.375 --> 00:20:33.995
<00:20:31.375>Um, <00:20:31.575>you <00:20:31.775>have <00:20:31.975>two <00:20:32.175>variables <00:20:32.375>of <00:20:32.575>type <00:20:32.775>T.

337
00:20:34.095 --> 00:20:35.515
<00:20:34.095>You <00:20:34.521>have <00:20:34.947>this <00:20:35.373>constructor

338
00:20:36.135 --> 00:20:37.875
<00:20:36.135>and <00:20:36.368>perhaps <00:20:36.601>you <00:20:36.835>have <00:20:37.068>this <00:20:37.301>two <00:20:37.535>string.

339
00:20:38.535 --> 00:20:41.275
<00:20:38.535>Um, <00:20:38.768>what's <00:20:39.001>wrong <00:20:39.235>about <00:20:39.468>this <00:20:39.701>self-made <00:20:39.935>pair?

340
00:20:41.735 --> 00:20:45.155
<00:20:41.735>If <00:20:41.890>you <00:20:42.046>are <00:20:42.201>in <00:20:42.357>a <00:20:42.512>very, <00:20:42.668>very, <00:20:42.823>um, <00:20:42.979>local <00:20:43.135>scope

341
00:20:45.255 --> 00:20:48.125
<00:20:45.255>and <00:20:45.410>you <00:20:45.566>know <00:20:45.721>that <00:20:45.877>you <00:20:46.032>will <00:20:46.188>just <00:20:46.343>use <00:20:46.499>it, <00:20:46.655>uh,

342
00:20:48.185 --> 00:20:50.205
<00:20:48.185>as <00:20:48.418>a <00:20:48.651>return <00:20:48.885>value, <00:20:49.118>perhaps <00:20:49.351>it's <00:20:49.585>okay,

343
00:20:50.545 --> 00:20:54.005
<00:20:50.545>but <00:20:50.661>we <00:20:50.778>don't <00:20:50.895>have <00:20:51.011>an <00:20:51.128>equals <00:20:51.245>and <00:20:51.361>we <00:20:51.478>don't <00:20:51.595>have <00:20:51.711>a <00:20:51.828>hash <00:20:51.945>code.

344
00:20:54.145 --> 00:20:57.965
<00:20:54.145>If <00:20:54.272>we <00:20:54.399>use <00:20:54.526>this, <00:20:54.654>um, <00:20:54.781>in <00:20:54.908>a <00:20:55.035>collection, <00:20:55.163>we <00:20:55.290>want <00:20:55.417>to <00:20:55.545>search

345
00:20:58.025 --> 00:21:01.845
<00:20:58.025>for <00:20:58.132>it, <00:20:58.240>or <00:20:58.348>we <00:20:58.455>use <00:20:58.563>this <00:20:58.671>in <00:20:58.778>a <00:20:58.886>hash <00:20:58.994>map, <00:20:59.101>then <00:20:59.209>we <00:20:59.317>get <00:20:59.425>problems.

346
00:21:02.265 --> 00:21:06.725
<00:21:02.265>So, <00:21:02.615>um, <00:21:02.965>using <00:21:03.315>record <00:21:03.665>again,

347
00:21:07.025 --> 00:21:08.845
<00:21:07.025>um, <00:21:07.491>saves <00:21:07.958>your <00:21:08.425>day.

348
00:21:09.265 --> 00:21:13.565
<00:21:09.265>Um, <00:21:09.420>and <00:21:09.576>you <00:21:09.731>see <00:21:09.887>you <00:21:10.042>can <00:21:10.198>use <00:21:10.353>it <00:21:10.509>even <00:21:10.665>for

349
00:21:14.145 --> 00:21:15.645
<00:21:14.145>pri <00:21:14.820>primitive <00:21:15.495>types.

350
00:21:15.945 --> 00:21:17.125
<00:21:15.945>That's, <00:21:16.476>uh, <00:21:17.007>nice.

351
00:21:17.185 --> 00:21:19.525
<00:21:17.185>You <00:21:17.418>can <00:21:17.651>mix <00:21:17.885>reference <00:21:18.118>and <00:21:18.351>primitive <00:21:18.585>types,

352
00:21:19.945 --> 00:21:22.285
<00:21:19.945>and <00:21:20.225>you <00:21:20.504>can <00:21:20.784>even <00:21:21.064>use <00:21:21.345>generics.

353
00:21:22.505 --> 00:21:27.205
<00:21:22.505>Um, <00:21:22.738>so <00:21:22.971>imagine <00:21:23.205>you <00:21:23.438>want <00:21:23.671>to <00:21:23.905>return,

354
00:21:27.505 --> 00:21:31.245
<00:21:27.505>uh, <00:21:27.705>your <00:21:27.905>top, <00:21:28.105>uh, <00:21:28.305>three <00:21:28.505>favorite <00:21:28.705>pieces, <00:21:28.905>um,

355
00:21:31.675 --> 00:21:34.885
<00:21:31.675>then <00:21:31.850>you <00:21:32.024>can <00:21:32.200>create <00:21:32.375>something <00:21:32.550>like <00:21:32.725>top <00:21:32.899>three <00:21:33.075>favorites.

356
00:21:35.385 --> 00:21:39.705
<00:21:35.385>Um, <00:21:35.665>to <00:21:35.945>summarize, <00:21:36.225>it's <00:21:36.504>really <00:21:36.785>short,

357
00:21:40.015 --> 00:21:43.945
<00:21:40.015>it's <00:21:40.248>really <00:21:40.481>clear, <00:21:40.715>it's <00:21:40.948>very, <00:21:41.181>very <00:21:41.415>useful

358
00:21:44.365 --> 00:21:47.385
<00:21:44.365>for <00:21:44.598>all <00:21:44.831>these <00:21:45.065>situations <00:21:45.298>where <00:21:45.531>you <00:21:45.765>have

359
00:21:47.485 --> 00:21:50.225
<00:21:47.485>to <00:21:47.764>define <00:21:48.044>something <00:21:48.324>like <00:21:48.604>PS <00:21:48.885>two.

360
00:21:51.005 --> 00:21:54.785
<00:21:51.005>Um, <00:21:51.238>and <00:21:51.471>yeah, <00:21:51.705>the <00:21:51.938>cool <00:21:52.171>thing <00:21:52.405>is

361
00:21:55.375 --> 00:21:59.985
<00:21:55.375>that <00:21:55.575>equals <00:21:55.775>and <00:21:55.975>hash <00:21:56.175>code <00:21:56.375>are <00:21:56.575>automatically <00:21:56.775>generated

362
00:22:00.085 --> 00:22:01.145
<00:22:00.085>and <00:22:00.403>that <00:22:00.721>they're <00:22:01.039>correct.

363
00:22:02.385 --> 00:22:07.255
<00:22:02.385>So, <00:22:02.735>but <00:22:03.085>if <00:22:03.435>we <00:22:03.785>see

364
00:22:07.255 --> 00:22:11.495
<00:22:07.255>this, <00:22:07.371>if <00:22:07.488>we <00:22:07.605>want <00:22:07.721>to <00:22:07.838>use <00:22:07.955>it, <00:22:08.071>um, <00:22:08.188>there <00:22:08.305>may <00:22:08.421>be <00:22:08.538>special <00:22:08.655>cases.

365
00:22:11.875 --> 00:22:16.855
<00:22:11.875>And, <00:22:12.015>um, <00:22:12.155>something, <00:22:12.295>what <00:22:12.435>I <00:22:12.575>haven't <00:22:12.715>showed <00:22:12.855>right <00:22:12.995>now <00:22:13.135>is, <00:22:13.275>um,

366
00:22:17.215 --> 00:22:18.335
<00:22:17.215>checking <00:22:17.719>for <00:22:18.223>validity.

367
00:22:18.795 --> 00:22:21.295
<00:22:18.795>So <00:22:19.028>what <00:22:19.261>I <00:22:19.495>do, <00:22:19.728>I <00:22:19.961>mean, <00:22:20.195>um,

368
00:22:21.645 --> 00:22:24.815
<00:22:21.645>imagine <00:22:21.820>you <00:22:21.995>have <00:22:22.170>something <00:22:22.345>like <00:22:22.520>a <00:22:22.695>closed <00:22:22.870>interval, <00:22:23.045>um,

369
00:22:24.815 --> 00:22:27.375
<00:22:24.815>which <00:22:25.048>is, <00:22:25.281>uh, <00:22:25.515>a <00:22:25.748>mass <00:22:25.981>something, <00:22:26.215>um,

370
00:22:28.545 --> 00:22:30.495
<00:22:28.545>which <00:22:28.745>has <00:22:28.945>the <00:22:29.145>lower <00:22:29.345>and <00:22:29.545>the <00:22:29.745>upper <00:22:29.945>bound.

371
00:22:30.995 --> 00:22:35.415
<00:22:30.995>Um, <00:22:31.169>so <00:22:31.344>if <00:22:31.520>you <00:22:31.695>define <00:22:31.870>something <00:22:32.044>like <00:22:32.219>this, <00:22:32.395>um,

372
00:22:35.995 --> 00:22:40.775
<00:22:35.995>uh, <00:22:36.195>it's, <00:22:36.395>um, <00:22:36.594>desirable <00:22:36.794>that <00:22:36.995>lower <00:22:37.195>is <00:22:37.395>not,

373
00:22:40.915 --> 00:22:42.095
<00:22:40.915>um, <00:22:41.269>higher <00:22:41.623>than <00:22:41.977>upper.

374
00:22:42.435 --> 00:22:46.695
<00:22:42.435>So, <00:22:42.562>um, <00:22:42.689>you <00:22:42.816>can <00:22:42.944>write <00:22:43.071>this <00:22:43.198>down, <00:22:43.325>you <00:22:43.453>can <00:22:43.580>have <00:22:43.707>this <00:22:43.835>check,

375
00:22:47.155 --> 00:22:50.695
<00:22:47.155>you <00:22:47.355>can <00:22:47.555>have, <00:22:47.754>uh, <00:22:47.955>an, <00:22:48.155>uh, <00:22:48.355>error <00:22:48.555>message,

376
00:22:50.915 --> 00:22:52.615
<00:22:50.915>and <00:22:51.148>then <00:22:51.381>you <00:22:51.615>can <00:22:51.848>have <00:22:52.081>this <00:22:52.315>assignment.

377
00:22:53.485 --> 00:22:55.295
<00:22:53.485>This <00:22:53.951>is <00:22:54.418>okay, <00:22:54.885>um,

378
00:22:55.635 --> 00:22:59.855
<00:22:55.635>but <00:22:55.790>we <00:22:55.946>have <00:22:56.101>these <00:22:56.257>nice <00:22:56.412>record <00:22:56.568>just <00:22:56.723>having <00:22:56.879>these <00:22:57.035>two

379
00:23:00.345 --> 00:23:04.935
<00:23:00.345>attributes <00:23:00.500>and, <00:23:00.656>um, <00:23:00.811>this <00:23:00.967>is <00:23:01.122>a <00:23:01.278>little <00:23:01.433>too <00:23:01.589>much <00:23:01.745>code

380
00:23:04.935 --> 00:23:07.615
<00:23:04.935>to <00:23:05.110>write <00:23:05.284>and <00:23:05.460>this <00:23:05.635>is <00:23:05.810>why <00:23:05.985>there's <00:23:06.159>a <00:23:06.335>shortcut.

381
00:23:08.075 --> 00:23:10.295
<00:23:08.075>Um, <00:23:08.355>it's <00:23:08.635>a <00:23:08.915>kind <00:23:09.195>of <00:23:09.475>magic.

382
00:23:11.135 --> 00:23:13.335
<00:23:11.135>I <00:23:11.335>am <00:23:11.535>going, <00:23:11.735>oops, <00:23:11.935>sorry, <00:23:12.135>I'm <00:23:12.335>going <00:23:12.535>back.

383
00:23:13.635 --> 00:23:16.215
<00:23:13.635>Um, <00:23:14.101>what <00:23:14.568>is <00:23:15.035>removed

384
00:23:17.195 --> 00:23:18.775
<00:23:17.195>is <00:23:17.661>you <00:23:18.128>don't <00:23:18.595>have

385
00:23:18.775 --> 00:23:21.615
<00:23:18.775>to <00:23:18.975>put <00:23:19.175>in <00:23:19.375>the <00:23:19.575>arguments <00:23:19.775>in <00:23:19.975>the <00:23:20.175>construction.

386
00:23:21.635 --> 00:23:24.935
<00:23:21.635>You <00:23:21.835>don't <00:23:22.035>have <00:23:22.235>to, <00:23:22.435>um, <00:23:22.635>do <00:23:22.835>the <00:23:23.035>assignments

387
00:23:25.035 --> 00:23:28.135
<00:23:25.035>and <00:23:25.210>you <00:23:25.385>see <00:23:25.560>you <00:23:25.735>have <00:23:25.910>a <00:23:26.085>very <00:23:26.260>short, <00:23:26.435>um,

388
00:23:29.565 --> 00:23:31.975
<00:23:29.565>variant <00:23:29.915>of <00:23:30.265>this, <00:23:30.615>um, <00:23:30.965>definition.

389
00:23:32.515 --> 00:23:36.295
<00:23:32.515>Um, <00:23:32.715>and <00:23:32.915>you <00:23:33.115>just <00:23:33.315>have <00:23:33.515>to, <00:23:33.715>um, <00:23:33.915>know

390
00:23:36.405 --> 00:23:38.175
<00:23:36.405>what <00:23:36.685>you <00:23:36.965>really <00:23:37.245>want <00:23:37.524>to <00:23:37.805>express.

391
00:23:38.435 --> 00:23:42.375
<00:23:38.435>So <00:23:38.562>you <00:23:38.689>have <00:23:38.816>a <00:23:38.944>close <00:23:39.071>interval, <00:23:39.198>you <00:23:39.325>have <00:23:39.453>this, <00:23:39.580>um, <00:23:39.707>check <00:23:39.835>for,

392
00:23:42.875 --> 00:23:46.605
<00:23:42.875>um, <00:23:43.050>lower, <00:23:43.225>should <00:23:43.400>not <00:23:43.575>be, <00:23:43.750>um, <00:23:43.925>bigger <00:23:44.100>than <00:23:44.275>upper,

393
00:23:47.145 --> 00:23:51.205
<00:23:47.145>and <00:23:47.320>that's <00:23:47.495>all, <00:23:47.670>and <00:23:47.845>it's <00:23:48.020>equivalent <00:23:48.195>to <00:23:48.370>this, <00:23:48.545>uh,

394
00:23:51.305 --> 00:23:53.485
<00:23:51.305>but, <00:23:51.771>um, <00:23:52.238>much <00:23:52.705>nicer.

395
00:23:55.885 --> 00:23:56.985
<00:23:55.885>So <00:23:56.215>the <00:23:56.544>last <00:23:56.875>question.

396
00:23:57.285 --> 00:24:00.545
<00:23:57.285>Um, <00:23:57.485>can <00:23:57.685>we <00:23:57.885>combine <00:23:58.085>all <00:23:58.285>these <00:23:58.485>cool <00:23:58.685>features?

397
00:24:00.925 --> 00:24:01.985
<00:24:00.925>And <00:24:01.163>the <00:24:01.402>answer <00:24:01.640>is <00:24:01.879>yes.

398
00:24:02.325 --> 00:24:06.305
<00:24:02.325>We <00:24:02.465>can <00:24:02.605>have <00:24:02.745>something <00:24:02.885>like <00:24:03.025>in <00:24:03.165>record <00:24:03.305>multi <00:24:03.445>types, <00:24:03.585>which <00:24:03.725>has

399
00:24:06.865 --> 00:24:10.985
<00:24:06.865>a <00:24:06.992>lot <00:24:07.119>of <00:24:07.246>types, <00:24:07.374>um, <00:24:07.501>defining <00:24:07.628>a <00:24:07.755>map <00:24:07.883>and <00:24:08.010>an <00:24:08.137>additional <00:24:08.265>info.

400
00:24:11.485 --> 00:24:16.225
<00:24:11.485>We <00:24:11.659>can <00:24:11.834>even <00:24:12.010>have <00:24:12.185>own <00:24:12.360>methods <00:24:12.534>in <00:24:12.709>our <00:24:12.885>records,

401
00:24:17.165 --> 00:24:21.825
<00:24:17.165>um, <00:24:17.365>and <00:24:17.565>we <00:24:17.764>can <00:24:17.965>do, <00:24:18.165>um, <00:24:18.365>strange <00:24:18.565>things,

402
00:24:22.165 --> 00:24:26.665
<00:24:22.165>but <00:24:22.320>funny <00:24:22.476>for <00:24:22.631>this <00:24:22.787>presentation, <00:24:22.942>we <00:24:23.098>have, <00:24:23.253>um, <00:24:23.409>a <00:24:23.565>list

403
00:24:26.665 --> 00:24:29.505
<00:24:26.665>with <00:24:26.945>restriction, <00:24:27.225>which <00:24:27.504>is <00:24:27.784>size <00:24:28.065>restricted.

404
00:24:29.605 --> 00:24:32.785
<00:24:29.605>We <00:24:29.721>can <00:24:29.838>say <00:24:29.955>we <00:24:30.071>have <00:24:30.188>the <00:24:30.305>values <00:24:30.421>and <00:24:30.538>we <00:24:30.655>have <00:24:30.771>a <00:24:30.888>max <00:24:31.005>size,

405
00:24:33.445 --> 00:24:36.785
<00:24:33.445>and <00:24:33.620>if <00:24:33.794>the <00:24:33.970>size <00:24:34.145>of <00:24:34.320>the <00:24:34.495>values <00:24:34.669>is, <00:24:34.845>uh,

406
00:24:36.785 --> 00:24:40.865
<00:24:36.785>bigger <00:24:36.912>than <00:24:37.039>this <00:24:37.166>max <00:24:37.294>size, <00:24:37.421>um, <00:24:37.548>we <00:24:37.675>can <00:24:37.803>say <00:24:37.930>too <00:24:38.057>many <00:24:38.185>entries.

407
00:24:40.965 --> 00:24:45.305
<00:24:40.965>And <00:24:41.139>yeah, <00:24:41.314>that's <00:24:41.490>pretty <00:24:41.665>cool. <00:24:41.840>Um, <00:24:42.014>I <00:24:42.189>love <00:24:42.365>records.

408
00:24:45.865 --> 00:24:50.025
<00:24:45.865>I <00:24:46.040>think, <00:24:46.215>um, <00:24:46.390>it's, <00:24:46.565>um, <00:24:46.740>very, <00:24:46.915>very <00:24:47.090>cool <00:24:47.265>feature.

409
00:24:51.175 --> 00:24:55.105
<00:24:51.175>Then <00:24:51.408>move <00:24:51.641>over <00:24:51.875>to <00:24:52.108>pattern <00:24:52.341>matching <00:24:52.575>and,

410
00:24:55.245 --> 00:24:59.905
<00:24:55.245>and <00:24:55.419>since <00:24:55.594>off, <00:24:55.770>um, <00:24:55.945>so <00:24:56.120>if <00:24:56.294>we <00:24:56.469>look <00:24:56.645>back

411
00:25:00.045 --> 00:25:03.265
<00:25:00.045>to <00:25:00.200>the, <00:25:00.356>um, <00:25:00.511>code <00:25:00.667>that <00:25:00.822>we <00:25:00.978>have <00:25:01.133>to <00:25:01.289>write, <00:25:01.445>um,

412
00:25:03.525 --> 00:25:06.865
<00:25:03.525>or <00:25:03.805>that <00:25:04.085>we <00:25:04.365>sometimes <00:25:04.645>see, <00:25:04.925>um,

413
00:25:07.485 --> 00:25:10.175
<00:25:07.485>we <00:25:07.834>have <00:25:08.185>instance <00:25:08.534>of <00:25:08.885>checks.

414
00:25:10.755 --> 00:25:14.215
<00:25:10.755>So, <00:25:10.955>um, <00:25:11.155>we <00:25:11.355>have <00:25:11.555>of <00:25:11.755>course <00:25:11.955>this, <00:25:12.155>um,

415
00:25:14.845 --> 00:25:17.215
<00:25:14.845>this <00:25:15.195>just <00:25:15.545>an <00:25:15.895>artificial <00:25:16.245>example.

416
00:25:17.635 --> 00:25:21.375
<00:25:17.635>So <00:25:17.775>you <00:25:17.915>directly <00:25:18.055>see <00:25:18.195>that <00:25:18.335>this <00:25:18.475>object <00:25:18.615>is <00:25:18.754>of <00:25:18.895>type <00:25:19.035>person,

417
00:25:21.515 --> 00:25:25.415
<00:25:21.515>but <00:25:21.670>normally <00:25:21.826>perhaps <00:25:21.981>you <00:25:22.137>get <00:25:22.292>this <00:25:22.448>from <00:25:22.603>a <00:25:22.759>method <00:25:22.915>call.

418
00:25:25.915 --> 00:25:30.015
<00:25:25.915>So <00:25:26.070>then <00:25:26.226>you <00:25:26.381>have, <00:25:26.537>um, <00:25:26.692>perhaps <00:25:26.848>multiple <00:25:27.003>instance <00:25:27.159>of <00:25:27.315>checks

419
00:25:30.755 --> 00:25:34.745
<00:25:30.755>and <00:25:30.910>what <00:25:31.066>you <00:25:31.221>know <00:25:31.377>as <00:25:31.532>a <00:25:31.688>programer <00:25:31.843>that <00:25:31.999>in <00:25:32.155>this

420
00:25:35.465 --> 00:25:37.905
<00:25:35.465>situation, <00:25:35.698>this <00:25:35.931>is <00:25:36.165>of <00:25:36.398>course <00:25:36.631>a <00:25:36.865>person

421
00:25:38.165 --> 00:25:40.345
<00:25:38.165>and <00:25:38.340>I <00:25:38.514>want <00:25:38.690>to <00:25:38.865>use <00:25:39.040>it <00:25:39.215>as <00:25:39.389>a <00:25:39.565>person,

422
00:25:40.485 --> 00:25:44.465
<00:25:40.485>and <00:25:40.640>then <00:25:40.796>I <00:25:40.951>always <00:25:41.107>have <00:25:41.262>to <00:25:41.418>write <00:25:41.573>this <00:25:41.729>nasty <00:25:41.885>cast.

423
00:25:44.685 --> 00:25:49.185
<00:25:44.685>But, <00:25:44.812>um, <00:25:44.939>it's, <00:25:45.066>this <00:25:45.194>is <00:25:45.321>needed <00:25:45.448>because <00:25:45.575>of <00:25:45.703>the <00:25:45.830>syntax <00:25:45.957>of <00:25:46.085>Java,

424
00:25:50.565 --> 00:25:54.345
<00:25:50.565>but <00:25:50.740>wouldn't <00:25:50.915>it <00:25:51.090>be <00:25:51.265>nicer <00:25:51.440>to <00:25:51.615>write <00:25:51.790>it, <00:25:51.965>um,

425
00:25:54.895 --> 00:25:59.625
<00:25:54.895>like <00:25:55.095>this <00:25:55.295>if <00:25:55.495>object <00:25:55.695>instance <00:25:55.895>of <00:25:56.095>person, <00:25:56.295>person,

426
00:26:00.365 --> 00:26:03.745
<00:26:00.365>uh, <00:26:00.565>we <00:26:00.765>can <00:26:00.965>hand <00:26:01.165>over <00:26:01.365>a <00:26:01.565>local <00:26:01.765>variable

427
00:26:04.905 --> 00:26:06.605
<00:26:04.905>and <00:26:05.185>of <00:26:05.465>course <00:26:05.745>we <00:26:06.024>can, <00:26:06.305>um,

428
00:26:07.225 --> 00:26:10.405
<00:26:07.225>access <00:26:07.504>everything <00:26:07.784>from <00:26:08.064>type <00:26:08.344>person <00:26:08.625>here.

429
00:26:11.445 --> 00:26:15.925
<00:26:11.445>I <00:26:11.585>think <00:26:11.725>it's <00:26:11.865>a <00:26:12.004>lot <00:26:12.145>more <00:26:12.284>readable <00:26:12.425>and <00:26:12.564>it's <00:26:12.705>pretty <00:26:12.845>nice.

430
00:26:17.255 --> 00:26:19.385
<00:26:17.255>Um, <00:26:17.955>let's <00:26:18.655>see.

431
00:26:19.845 --> 00:26:22.705
<00:26:19.845>Um, <00:26:20.125>again, <00:26:20.405>we <00:26:20.685>have <00:26:20.965>a <00:26:21.245>string.

432
00:26:23.445 --> 00:26:26.745
<00:26:23.445>Um, <00:26:23.585>of <00:26:23.725>course <00:26:23.865>we <00:26:24.004>can <00:26:24.145>ask <00:26:24.284>for <00:26:24.425>the, <00:26:24.564>the <00:26:24.705>string <00:26:24.845>lengths.

433
00:26:27.445 --> 00:26:31.705
<00:26:27.445>And <00:26:27.585>in <00:26:27.725>the <00:26:27.865>Ls, <00:26:28.004>of <00:26:28.145>course, <00:26:28.284>there <00:26:28.425>is <00:26:28.564>no <00:26:28.705>string <00:26:28.845>variable

434
00:26:31.705 --> 00:26:35.505
<00:26:31.705>because <00:26:31.905>it <00:26:32.105>is <00:26:32.304>not, <00:26:32.504>not <00:26:32.705>of <00:26:32.905>type <00:26:33.105>string.

435
00:26:37.465 --> 00:26:41.605
<00:26:37.465>And <00:26:37.639>even, <00:26:37.814>um, <00:26:37.990>a <00:26:38.165>bit <00:26:38.340>advanced <00:26:38.514>things <00:26:38.689>are <00:26:38.865>possible.

436
00:26:41.785 --> 00:26:46.715
<00:26:41.785>You <00:26:41.940>can, <00:26:42.096>um, <00:26:42.251>ask <00:26:42.407>for <00:26:42.562>instance <00:26:42.718>of, <00:26:42.873>um, <00:26:43.029>let's <00:26:43.185>say

437
00:26:47.355 --> 00:26:51.835
<00:26:47.355>s <00:26:47.495>str <00:26:47.635>two, <00:26:47.775>and <00:26:47.915>you <00:26:48.055>can <00:26:48.195>ask <00:26:48.335>for, <00:26:48.475>um, <00:26:48.615>the <00:26:48.755>length.

438
00:26:52.055 --> 00:26:55.435
<00:26:52.055>So, <00:26:52.521>um, <00:26:52.988>the, <00:26:53.455>um,

439
00:26:55.455 --> 00:26:57.195
<00:26:55.455>you <00:26:55.804>can <00:26:56.155>even <00:26:56.504>combine <00:26:56.855>conditions.

440
00:26:57.735 --> 00:27:01.915
<00:26:57.735>Um, <00:26:58.014>one <00:26:58.294>word <00:26:58.574>of <00:26:58.854>warning, <00:26:59.135>um,

441
00:27:02.865 --> 00:27:06.995
<00:27:02.865>this <00:27:03.065>is <00:27:03.265>nice <00:27:03.465>for <00:27:03.665>simple <00:27:03.865>instance <00:27:04.065>of <00:27:04.265>checks.

442
00:27:07.335 --> 00:27:08.395
<00:27:07.335>So, <00:27:08.289>um,

443
00:27:09.255 --> 00:27:13.755
<00:27:09.255>but <00:27:09.430>instance <00:27:09.605>of <00:27:09.780>checks <00:27:09.955>are <00:27:10.130>in <00:27:10.305>general <00:27:10.480>a <00:27:10.655>sign

444
00:27:14.025 --> 00:27:16.635
<00:27:14.025>that <00:27:14.258>there <00:27:14.491>may <00:27:14.725>be <00:27:14.958>a <00:27:15.191>design <00:27:15.425>problem.

445
00:27:16.895 --> 00:27:20.235
<00:27:16.895>So <00:27:17.050>please <00:27:17.206>first <00:27:17.361>check <00:27:17.517>if <00:27:17.672>you <00:27:17.828>have <00:27:17.983>a <00:27:18.139>design <00:27:18.295>problem,

446
00:27:20.895 --> 00:27:25.155
<00:27:20.895>and <00:27:21.035>if <00:27:21.175>you <00:27:21.315>can <00:27:21.455>get <00:27:21.595>rid <00:27:21.735>of <00:27:21.875>your <00:27:22.014>instance <00:27:22.155>of, <00:27:22.295>um,

447
00:27:25.565 --> 00:27:27.595
<00:27:25.565>using <00:27:26.265>inheritance, <00:27:26.965>uh,

448
00:27:27.775 --> 00:27:31.675
<00:27:27.775>and, <00:27:27.975>uh, <00:27:28.175>polymorphism, <00:27:28.375>uh, <00:27:28.575>this <00:27:28.775>is <00:27:28.975>always <00:27:29.175>nicer,

449
00:27:32.055 --> 00:27:36.955
<00:27:32.055>but <00:27:32.195>if <00:27:32.335>you <00:27:32.475>have <00:27:32.615>this <00:27:32.755>situation <00:27:32.895>where, <00:27:33.035>um, <00:27:33.175>this <00:27:33.315>instance <00:27:33.455>of,

450
00:27:37.215 --> 00:27:41.875
<00:27:37.215>um, <00:27:37.415>is <00:27:37.615>handy, <00:27:37.814>then <00:27:38.014>use <00:27:38.215>a <00:27:38.415>new <00:27:38.615>syntax

451
00:27:42.095 --> 00:27:45.195
<00:27:42.095>and, <00:27:42.270>um, <00:27:42.445>you <00:27:42.620>can <00:27:42.795>get <00:27:42.970>rid <00:27:43.145>of <00:27:43.320>the <00:27:43.495>casts.

452
00:27:47.275 --> 00:27:52.245
<00:27:47.275>Another <00:27:47.415>thing, <00:27:47.555>um, <00:27:47.695>the <00:27:47.835>last <00:27:47.975>thing <00:27:48.115>for <00:27:48.255>Java <00:27:48.395>15, <00:27:48.535>which <00:27:48.675>seems

453
00:27:52.245 --> 00:27:54.725
<00:27:52.245>to <00:27:52.445>be <00:27:52.645>a <00:27:52.844>bad <00:27:53.044>thing <00:27:53.245>and <00:27:53.445>my <00:27:53.645>opinion,

454
00:27:54.905 --> 00:27:58.885
<00:27:54.905>but <00:27:55.060>um, <00:27:55.216>which <00:27:55.371>may <00:27:55.527>be <00:27:55.682>a <00:27:55.838>good <00:27:55.993>thing, <00:27:56.149>is, <00:27:56.305>um,

455
00:27:59.715 --> 00:28:04.365
<00:27:59.715>Java <00:27:59.855>included <00:27:59.995>a <00:28:00.135>Java <00:28:00.274>script <00:28:00.415>engine, <00:28:00.554>um, <00:28:00.695>which <00:28:00.834>is <00:28:00.975>named, <00:28:01.115>uh,

456
00:28:05.545 --> 00:28:08.965
<00:28:05.545>it <00:28:05.720>was <00:28:05.895>deprecated <00:28:06.070>long <00:28:06.245>time <00:28:06.420>ago <00:28:06.595>and <00:28:06.770>Java <00:28:06.945>11,

457
00:28:09.625 --> 00:28:11.605
<00:28:09.625>and <00:28:09.905>it's, <00:28:10.185>uh, <00:28:10.465>now <00:28:10.745>getting <00:28:11.025>removed.

458
00:28:11.705 --> 00:28:13.965
<00:28:11.705>The <00:28:11.905>argument <00:28:12.105>is, <00:28:12.304>or, <00:28:12.504>um, <00:28:12.705>this <00:28:12.905>is <00:28:13.105>due

459
00:28:13.965 --> 00:28:16.765
<00:28:13.965>to <00:28:14.139>the <00:28:14.314>fact <00:28:14.490>this <00:28:14.665>Java <00:28:14.840>script <00:28:15.014>is <00:28:15.189>moving <00:28:15.365>forward

460
00:28:16.905 --> 00:28:20.205
<00:28:16.905>and <00:28:17.060>there <00:28:17.216>are <00:28:17.371>a <00:28:17.527>lot <00:28:17.682>of <00:28:17.838>newer <00:28:17.993>versions <00:28:18.149>and <00:28:18.305>features

461
00:28:20.385 --> 00:28:22.565
<00:28:20.385>and, <00:28:20.665>um, <00:28:20.945>they <00:28:21.225>are <00:28:21.504>not <00:28:21.785>supported

462
00:28:22.745 --> 00:28:27.325
<00:28:22.745>and, <00:28:22.919>uh, <00:28:23.094>it's <00:28:23.270>yeah, <00:28:23.445>not <00:28:23.620>that <00:28:23.794>easy <00:28:23.969>to, <00:28:24.145>uh,

463
00:28:27.325 --> 00:28:29.245
<00:28:27.325>support <00:28:27.675>all <00:28:28.025>the <00:28:28.375>newer <00:28:28.725>versions.

464
00:28:29.585 --> 00:28:32.925
<00:28:29.585>That's <00:28:29.818>correct. <00:28:30.051>Um, <00:28:30.285>for <00:28:30.518>me, <00:28:30.751>the <00:28:30.985>support

465
00:28:32.945 --> 00:28:35.725
<00:28:32.945>for <00:28:33.145>Java <00:28:33.345>script <00:28:33.544>is <00:28:33.745>not <00:28:33.945>that <00:28:34.145>I <00:28:34.345>have

466
00:28:35.725 --> 00:28:39.285
<00:28:35.725>to <00:28:35.925>use <00:28:36.125>the <00:28:36.324>latest <00:28:36.524>Java <00:28:36.725>script, <00:28:36.925>um, <00:28:37.125>things,

467
00:28:39.465 --> 00:28:44.205
<00:28:39.465>but <00:28:39.620>to <00:28:39.776>execute, <00:28:39.931>uh, <00:28:40.087>calculations <00:28:40.242>on <00:28:40.398>the <00:28:40.553>fly <00:28:40.709>to, <00:28:40.865>uh,

468
00:28:44.205 --> 00:28:47.165
<00:28:44.205>be <00:28:44.438>able <00:28:44.671>to <00:28:44.905>di <00:28:45.138>do <00:28:45.371>dynamic <00:28:45.605>calculations.

469
00:28:47.825 --> 00:28:49.485
<00:28:47.825>And, <00:28:48.175>uh, <00:28:48.525>this <00:28:48.875>is <00:28:49.225>something

470
00:28:50.125 --> 00:28:52.965
<00:28:50.125>I <00:28:50.325>can't <00:28:50.525>do <00:28:50.725>without <00:28:50.925>this <00:28:51.125>Java <00:28:51.325>script <00:28:51.525>engine,

471
00:28:53.065 --> 00:28:55.685
<00:28:53.065>but <00:28:53.298>I <00:28:53.531>want <00:28:53.765>to <00:28:53.998>show <00:28:54.231>something <00:28:54.465>else.

472
00:28:56.065 --> 00:29:00.285
<00:28:56.065>Um, <00:28:56.298>yeah, <00:28:56.531>as <00:28:56.765>a <00:28:56.998>Remedy <00:28:57.231>J <00:28:57.465>Shell.

473
00:29:00.825 --> 00:29:05.565
<00:29:00.825>So, <00:29:01.025>um, <00:29:01.225>perhaps <00:29:01.425>people <00:29:01.625>who <00:29:01.825>know <00:29:02.025>talks <00:29:02.225>of,

474
00:29:05.745 --> 00:29:09.925
<00:29:05.745>um, <00:29:05.900>mine <00:29:06.056>where <00:29:06.211>I <00:29:06.367>talked <00:29:06.522>about <00:29:06.678>the <00:29:06.833>she <00:29:06.989>the <00:29:07.145>Shell.

475
00:29:10.705 --> 00:29:12.725
<00:29:10.705>Um, <00:29:11.054>I <00:29:11.405>don't <00:29:11.754>like <00:29:12.105>the

476
00:29:12.785 --> 00:29:15.645
<00:29:12.785>or, <00:29:12.925>um, <00:29:13.065>in <00:29:13.205>the <00:29:13.345>past <00:29:13.485>I <00:29:13.625>don't <00:29:13.765>like <00:29:13.905>the <00:29:14.045>J <00:29:14.185>Shell

477
00:29:15.645 --> 00:29:17.725
<00:29:15.645>because <00:29:15.995>it <00:29:16.345>was <00:29:16.695>not <00:29:17.045>comfortable,

478
00:29:18.265 --> 00:29:20.445
<00:29:18.265>but, <00:29:18.545>um, <00:29:18.825>right <00:29:19.105>now <00:29:19.385>it's <00:29:19.665>getting

479
00:29:20.445 --> 00:29:21.565
<00:29:20.445>better <00:29:20.697>and <00:29:20.949>better <00:29:21.201>and <00:29:21.453>better.

480
00:29:21.745 --> 00:29:25.925
<00:29:21.745>And, <00:29:21.900>um, <00:29:22.056>it <00:29:22.211>is <00:29:22.367>useful <00:29:22.522>for <00:29:22.678>a <00:29:22.833>lot <00:29:22.989>of <00:29:23.145>things.

481
00:29:26.225 --> 00:29:30.525
<00:29:26.225>Um, <00:29:26.504>since <00:29:26.784>Java <00:29:27.064>14, <00:29:27.344>Java <00:29:27.625>15,

482
00:29:30.985 --> 00:29:34.125
<00:29:30.985>before, <00:29:31.185>uh, <00:29:31.385>it <00:29:31.584>was, <00:29:31.784>um, <00:29:31.985>horrible <00:29:32.185>to <00:29:32.385>edit,

483
00:29:34.405 --> 00:29:36.365
<00:29:34.405>I <00:29:34.685>will <00:29:34.965>do <00:29:35.245>a <00:29:35.524>very <00:29:35.805>brief

484
00:29:36.545 --> 00:29:39.005
<00:29:36.545>or <00:29:36.745>a <00:29:36.945>short <00:29:37.145>demonstration <00:29:37.345>in <00:29:37.545>a <00:29:37.745>few <00:29:37.945>seconds.

485
00:29:39.435 --> 00:29:42.325
<00:29:39.435>What <00:29:39.668>is <00:29:39.901>possible, <00:29:40.135>you <00:29:40.368>can <00:29:40.601>define <00:29:40.835>methods,

486
00:29:42.585 --> 00:29:46.245
<00:29:42.585>you <00:29:42.760>can <00:29:42.935>import <00:29:43.110>things, <00:29:43.285>you <00:29:43.460>can <00:29:43.635>create, <00:29:43.810>uh, <00:29:43.985>methods,

487
00:29:46.425 --> 00:29:49.205
<00:29:46.425>so <00:29:46.658>you <00:29:46.891>can <00:29:47.125>get <00:29:47.358>used <00:29:47.591>to <00:29:47.825>APIs.

488
00:29:49.705 --> 00:29:52.435
<00:29:49.705>Um, <00:29:50.171>so <00:29:50.638>let <00:29:51.105>me

489
00:29:54.825 --> 00:29:58.075
<00:29:54.825>show, <00:29:55.025>as <00:29:55.225>you <00:29:55.425>see, <00:29:55.625>I <00:29:55.825>have, <00:29:56.025>um, <00:29:56.225>just

490
00:29:58.655 --> 00:29:59.915
<00:29:58.655>saw <00:29:59.222>Java <00:29:59.789>16.

491
00:30:00.265 --> 00:30:04.355
<00:30:00.265>What <00:30:00.440>you <00:30:00.615>can <00:30:00.790>do <00:30:00.965>is <00:30:01.140>like <00:30:01.315>defining <00:30:01.490>a <00:30:01.665>method

492
00:30:05.775 --> 00:30:10.555
<00:30:05.775>add, <00:30:06.055>and <00:30:06.335>that's <00:30:06.615>my <00:30:06.895>normal <00:30:07.175>example

493
00:30:12.095 --> 00:30:15.795
<00:30:12.095>on, <00:30:12.375>and <00:30:12.655>I'm <00:30:12.935>doing <00:30:13.215>some <00:30:13.495>typos

494
00:30:21.875 --> 00:30:26.775
<00:30:21.875>Just <00:30:22.108>to <00:30:22.341>show <00:30:22.575>with <00:30:22.808>the <00:30:23.041>new <00:30:23.275>JHL,

495
00:30:27.275 --> 00:30:30.735
<00:30:27.275>you <00:30:27.625>get, <00:30:27.975>um, <00:30:28.325>error <00:30:28.675>messages

496
00:30:30.915 --> 00:30:34.775
<00:30:30.915>and <00:30:31.070>you <00:30:31.226>have <00:30:31.381>an <00:30:31.537>editor, <00:30:31.692>which <00:30:31.848>allows <00:30:32.003>you <00:30:32.159>to <00:30:32.315>go

497
00:30:34.775 --> 00:30:36.175
<00:30:34.775>through <00:30:35.405>these <00:30:36.034>lines

498
00:30:36.995 --> 00:30:40.615
<00:30:36.995>and, <00:30:37.274>okay, <00:30:37.554>I <00:30:37.834>missed <00:30:38.114>this <00:30:38.395>type,

499
00:30:41.695 --> 00:30:44.735
<00:30:41.695>I <00:30:41.870>missed <00:30:42.044>this <00:30:42.220>one, <00:30:42.395>and <00:30:42.570>I <00:30:42.745>missed <00:30:42.919>this <00:30:43.095>R.

500
00:30:44.875 --> 00:30:47.255
<00:30:44.875>And <00:30:45.108>now, <00:30:45.341>uh, <00:30:45.575>we <00:30:45.808>have <00:30:46.041>this <00:30:46.275>method,

501
00:30:47.475 --> 00:30:52.135
<00:30:47.475>and <00:30:47.649>this <00:30:47.824>is <00:30:48.000>extremely <00:30:48.175>helpful <00:30:48.350>without <00:30:48.524>this <00:30:48.699>multi-line <00:30:48.875>edit,

502
00:30:53.055 --> 00:30:57.305
<00:30:53.055>edit <00:30:53.230>editing, <00:30:53.405>which <00:30:53.580>was, <00:30:53.755>um, <00:30:53.930>edited, <00:30:54.105>uh, <00:30:54.280>uh, <00:30:54.455>edit

503
00:30:58.005 --> 00:30:59.505
<00:30:58.005>in <00:30:58.680>Java <00:30:59.355>14

504
00:30:59.565 --> 00:31:03.905
<00:30:59.565>or <00:30:59.720>15 <00:30:59.876>J <00:31:00.031>Shell <00:31:00.187>is, <00:31:00.342>um, <00:31:00.498>not <00:31:00.653>quite <00:31:00.809>user <00:31:00.965>friendly,

505
00:31:04.045 --> 00:31:08.425
<00:31:04.045>but <00:31:04.185>I <00:31:04.325>really, <00:31:04.465>uh, <00:31:04.605>like <00:31:04.745>this <00:31:04.885>right <00:31:05.025>now, <00:31:05.165>um, <00:31:05.305>for <00:31:05.445>small,

506
00:31:08.595 --> 00:31:09.705
<00:31:08.595>small <00:31:09.594>experiments.

507
00:31:10.245 --> 00:31:14.725
<00:31:10.245>Um, <00:31:10.419>so <00:31:10.594>we <00:31:10.770>had <00:31:10.945>this <00:31:11.120>theme <00:31:11.294>on, <00:31:11.469>oh, <00:31:11.645>sorry,

508
00:31:15.385 --> 00:31:18.975
<00:31:15.385>uh, <00:31:16.085>that's <00:31:16.785>wrong.

509
00:31:21.805 --> 00:31:26.455
<00:31:21.805>Yeah, <00:31:21.945>the <00:31:22.085>short <00:31:22.225>demonstration, <00:31:22.365>um, <00:31:22.505>what <00:31:22.645>we <00:31:22.785>see, <00:31:22.925>we <00:31:23.065>can, <00:31:23.205>um,

510
00:31:26.765 --> 00:31:31.495
<00:31:26.765>perform <00:31:26.920>calculations <00:31:27.076>on <00:31:27.231>the <00:31:27.387>fly, <00:31:27.542>um, <00:31:27.698>and <00:31:27.853>it's <00:31:28.009>getting <00:31:28.165>cooler

511
00:31:31.515 --> 00:31:34.775
<00:31:31.515>and <00:31:31.748>cooler <00:31:31.981>with <00:31:32.215>the <00:31:32.448>newer <00:31:32.681>Java <00:31:32.915>versions,

512
00:31:35.515 --> 00:31:37.975
<00:31:35.515>and <00:31:35.795>it's <00:31:36.075>even <00:31:36.355>possible <00:31:36.635>to, <00:31:36.915>um,

513
00:31:39.355 --> 00:31:43.645
<00:31:39.355>include <00:31:39.530>third <00:31:39.705>party, <00:31:39.880>uh, <00:31:40.055>libraries <00:31:40.230>if <00:31:40.405>you <00:31:40.580>want <00:31:40.755>to.

514
00:31:43.785 --> 00:31:46.965
<00:31:43.785>But, <00:31:44.251>um, <00:31:44.718>normally, <00:31:45.185>um,

515
00:31:48.645 --> 00:31:51.085
<00:31:48.645>I <00:31:48.878>use <00:31:49.111>it <00:31:49.345>like <00:31:49.578>I <00:31:49.811>showed, <00:31:50.045>um,

516
00:31:52.425 --> 00:31:57.125
<00:31:52.425>but <00:31:52.552>the <00:31:52.679>pretty <00:31:52.806>cool <00:31:52.934>feature <00:31:53.061>is <00:31:53.188>that <00:31:53.315>you <00:31:53.443>can, <00:31:53.570>um, <00:31:53.697>call <00:31:53.825>it

517
00:31:57.155 --> 00:32:00.325
<00:31:57.155>with, <00:31:57.355>um, <00:31:57.555>the <00:31:57.754>command <00:31:57.955>line <00:31:58.155>parameters <00:31:58.355>enable <00:31:58.555>preview,

518
00:32:00.735 --> 00:32:03.885
<00:32:00.735>which <00:32:01.014>enables <00:32:01.294>preview <00:32:01.574>features <00:32:01.854>like, <00:32:02.135>um,

519
00:32:04.785 --> 00:32:06.085
<00:32:04.785>we <00:32:05.077>saw <00:32:05.370>some <00:32:05.662>of <00:32:05.955>them.

520
00:32:06.425 --> 00:32:09.095
<00:32:06.425>Um, <00:32:06.774>and <00:32:07.125>this <00:32:07.475>is <00:32:07.825>good

521
00:32:09.275 --> 00:32:11.935
<00:32:09.275>to <00:32:09.625>do <00:32:09.975>your <00:32:10.325>first <00:32:10.675>experiments.

522
00:32:12.995 --> 00:32:17.855
<00:32:12.995>Um, <00:32:13.122>while <00:32:13.249>the <00:32:13.376>ides <00:32:13.504>are <00:32:13.631>not <00:32:13.758>able <00:32:13.885>to <00:32:14.013>handle, <00:32:14.140>uh, <00:32:14.267>these, <00:32:14.395>uh,

523
00:32:17.915 --> 00:32:22.375
<00:32:17.915>new <00:32:18.148>syntax <00:32:18.381>things, <00:32:18.615>what <00:32:18.848>can <00:32:19.081>you <00:32:19.315>do

524
00:32:22.375 --> 00:32:23.815
<00:32:22.375>with <00:32:22.699>this, <00:32:23.023>uh, <00:32:23.347>J <00:32:23.671>Shell?

525
00:32:24.275 --> 00:32:28.655
<00:32:24.275>Um, <00:32:24.450>you <00:32:24.625>can <00:32:24.800>even <00:32:24.975>programmatically <00:32:25.150>create <00:32:25.325>a <00:32:25.500>J <00:32:25.675>shell

526
00:32:29.135 --> 00:32:32.895
<00:32:29.135>instance <00:32:29.368>and <00:32:29.601>you <00:32:29.835>can <00:32:30.068>call <00:32:30.301>evil <00:32:30.535>to

527
00:32:33.455 --> 00:32:34.495
<00:32:33.455>evaluate <00:32:34.390>things.

528
00:32:35.915 --> 00:32:40.245
<00:32:35.915>Um, <00:32:36.090>and <00:32:36.264>then <00:32:36.440>you <00:32:36.615>get <00:32:36.790>something <00:32:36.965>like <00:32:37.139>snippet <00:32:37.315>events,

529
00:32:40.345 --> 00:32:43.045
<00:32:40.345>and <00:32:40.545>then <00:32:40.745>you <00:32:40.945>can <00:32:41.145>ask <00:32:41.345>for <00:32:41.545>snippets, <00:32:41.745>values,

530
00:32:43.585 --> 00:32:48.525
<00:32:43.585>and, <00:32:43.785>um, <00:32:43.985>the <00:32:44.185>variable <00:32:44.385>value, <00:32:44.585>it's <00:32:44.785>a <00:32:44.985>bit

531
00:32:49.895 --> 00:32:51.995
<00:32:49.895>clumsy, <00:32:50.175>but <00:32:50.455>it's <00:32:50.735>okay <00:32:51.014>to <00:32:51.295>use.

532
00:32:52.255 --> 00:32:56.875
<00:32:52.255>Um, <00:32:52.371>so <00:32:52.488>what <00:32:52.605>you <00:32:52.721>can <00:32:52.838>see <00:32:52.955>is, <00:32:53.071>I <00:32:53.188>can <00:32:53.305>even <00:32:53.421>use <00:32:53.538>VAR <00:32:53.655>here,

533
00:32:57.335 --> 00:33:02.115
<00:32:57.335>and <00:32:57.510>VAR <00:32:57.685>is <00:32:57.860>translated <00:32:58.035>automatically <00:32:58.210>into <00:32:58.385>the <00:32:58.560>correct <00:32:58.735>type.

534
00:33:02.655 --> 00:33:06.275
<00:33:02.655>Um, <00:33:02.855>and <00:33:03.055>this <00:33:03.254>is <00:33:03.455>a <00:33:03.655>starting <00:33:03.855>point, <00:33:04.055>um,

535
00:33:06.865 --> 00:33:09.795
<00:33:06.865>when <00:33:07.098>you <00:33:07.331>want <00:33:07.565>to <00:33:07.798>do, <00:33:08.031>um, <00:33:08.265>calculations.

536
00:33:09.895 --> 00:33:13.675
<00:33:09.895>If <00:33:10.050>you <00:33:10.206>imagine <00:33:10.361>you <00:33:10.517>have <00:33:10.672>something <00:33:10.828>like, <00:33:10.983>uh, <00:33:11.139>plotting, <00:33:11.295>um,

537
00:33:14.155 --> 00:33:15.475
<00:33:14.155>mathematical <00:33:15.342>function

538
00:33:15.495 --> 00:33:19.635
<00:33:15.495>and <00:33:15.635>the <00:33:15.774>user's <00:33:15.915>able <00:33:16.054>to, <00:33:16.195>uh, <00:33:16.334>just <00:33:16.475>input <00:33:16.614>this <00:33:16.754>function, <00:33:16.895>um,

539
00:33:20.145 --> 00:33:22.915
<00:33:20.145>then <00:33:20.320>this <00:33:20.495>is <00:33:20.670>hard <00:33:20.845>to <00:33:21.020>do, <00:33:21.195>implement <00:33:21.370>in <00:33:21.545>Java.

540
00:33:23.295 --> 00:33:27.555
<00:33:23.295>But, <00:33:23.422>um, <00:33:23.549>it's <00:33:23.676>easy <00:33:23.804>if, <00:33:23.931>um, <00:33:24.058>you <00:33:24.185>can <00:33:24.313>call <00:33:24.440>something <00:33:24.567>like <00:33:24.695>Eva.

541
00:33:30.455 --> 00:33:34.555
<00:33:30.455>So <00:33:30.629>we <00:33:30.804>talked <00:33:30.980>nearly <00:33:31.155>half <00:33:31.330>an <00:33:31.504>hour <00:33:31.679>about, <00:33:31.855>um,

542
00:33:35.455 --> 00:33:38.915
<00:33:35.455>the <00:33:35.655>features <00:33:35.855>of <00:33:36.054>Java <00:33:36.254>15 <00:33:36.455>and <00:33:36.655>my <00:33:36.855>favorites.

543
00:33:39.495 --> 00:33:43.595
<00:33:39.495>Uh, <00:33:39.622>now <00:33:39.749>let's <00:33:39.876>have <00:33:40.004>a <00:33:40.131>look <00:33:40.258>at <00:33:40.385>Java <00:33:40.513>16 <00:33:40.640>and <00:33:40.767>the <00:33:40.895>future,

544
00:33:43.775 --> 00:33:45.995
<00:33:43.775>and <00:33:44.055>the <00:33:44.335>future <00:33:44.615>of <00:33:44.895>Java <00:33:45.175>especially.

545
00:33:46.695 --> 00:33:50.155
<00:33:46.695>Um, <00:33:47.044>first <00:33:47.395>congratulations <00:33:47.745>to <00:33:48.095>Java.

546
00:33:50.735 --> 00:33:55.435
<00:33:50.735>Um, <00:33:51.014>it's, <00:33:51.294>it's, <00:33:51.574>uh, <00:33:51.854>25th <00:33:52.135>birthday.

547
00:33:55.775 --> 00:33:58.755
<00:33:55.775>Um, <00:33:55.950>as <00:33:56.125>I <00:33:56.300>said, <00:33:56.475>it <00:33:56.650>has <00:33:56.825>a <00:33:57.000>long <00:33:57.175>history

548
00:33:59.095 --> 00:34:01.995
<00:33:59.095>and <00:33:59.445>I <00:33:59.795>started <00:34:00.145>around, <00:34:00.495>um,

549
00:34:03.035 --> 00:34:05.675
<00:34:03.035>1969, <00:34:04.435>uh,

550
00:34:05.855 --> 00:34:10.195
<00:34:05.855>or <00:34:06.135>1968 <00:34:06.415>to <00:34:06.695>use <00:34:06.975>it <00:34:07.255>professionally.

551
00:34:10.815 --> 00:34:15.035
<00:34:10.815>Um, <00:34:11.095>it <00:34:11.375>was <00:34:11.655>an <00:34:11.935>absolute <00:34:12.215>newcomer

552
00:34:15.215 --> 00:34:17.395
<00:34:15.215>and, <00:34:15.415>um, <00:34:15.615>the <00:34:15.815>new <00:34:16.015>kid <00:34:16.215>on <00:34:16.415>the <00:34:16.615>block,

553
00:34:17.535 --> 00:34:22.155
<00:34:17.534>but <00:34:17.734>um, <00:34:17.935>yeah, <00:34:18.134>it's <00:34:18.335>now, <00:34:18.534>um, <00:34:18.734>well <00:34:18.935>established.

554
00:34:22.695 --> 00:34:26.955
<00:34:22.695>Um, <00:34:22.850>we <00:34:23.006>see <00:34:23.161>a <00:34:23.317>lot <00:34:23.472>of <00:34:23.628>things, <00:34:23.783>generics, <00:34:23.939>lambda <00:34:24.095>streams,

555
00:34:26.975 --> 00:34:28.555
<00:34:26.975>and <00:34:27.324>a <00:34:27.674>lot <00:34:28.025>of <00:34:28.375>changes,

556
00:34:28.975 --> 00:34:32.915
<00:34:28.975>and <00:34:29.174>they <00:34:29.375>are <00:34:29.574>very, <00:34:29.775>very, <00:34:29.975>uh, <00:34:30.174>important <00:34:30.375>to

557
00:34:33.465 --> 00:34:34.755
<00:34:33.465>modernize <00:34:34.045>the <00:34:34.626>language.

558
00:34:35.295 --> 00:34:39.715
<00:34:35.295>Um, <00:34:35.450>when <00:34:35.606>we <00:34:35.761>look <00:34:35.917>at <00:34:36.072>the <00:34:36.228>index, <00:34:36.383>we <00:34:36.539>see, <00:34:36.695>uh,

559
00:34:39.715 --> 00:34:42.955
<00:34:39.715>that <00:34:39.915>in <00:34:40.115>the <00:34:40.315>past <00:34:40.515>c <00:34:40.715>is, <00:34:40.915>um, <00:34:41.115>dominating

560
00:34:43.535 --> 00:34:45.555
<00:34:43.534>the <00:34:43.884>popularity <00:34:44.234>of <00:34:44.585>the <00:34:44.935>languages.

561
00:34:45.655 --> 00:34:49.955
<00:34:45.655>And, <00:34:45.888>um, <00:34:46.121>yeah, <00:34:46.355>Java, <00:34:46.588>uh, <00:34:46.821>came <00:34:47.055>in

562
00:34:50.095 --> 00:34:51.395
<00:34:50.094>and <00:34:50.679>gets <00:34:51.264>popular

563
00:34:51.735 --> 00:34:56.595
<00:34:51.735>and <00:34:51.890>pop <00:34:52.046>most <00:34:52.201>popular <00:34:52.357>language, <00:34:52.512>um, <00:34:52.668>a <00:34:52.823>lot <00:34:52.979>of <00:34:53.135>years

564
00:34:57.575 --> 00:35:01.915
<00:34:57.575>and <00:34:57.750>now, <00:34:57.924>um, <00:34:58.100>yeah, <00:34:58.274>see <00:34:58.450>is, <00:34:58.625>um, <00:34:58.799>most <00:34:58.975>popular.

565
00:35:02.335 --> 00:35:06.235
<00:35:02.335>But <00:35:02.510>what <00:35:02.685>you <00:35:02.860>see <00:35:03.035>is, <00:35:03.210>um, <00:35:03.385>Python <00:35:03.560>is <00:35:03.735>getting,

566
00:35:06.535 --> 00:35:07.675
<00:35:06.535>um, <00:35:07.048>popular <00:35:07.561>too.

567
00:35:08.415 --> 00:35:12.235
<00:35:08.415>So, <00:35:08.615>um, <00:35:08.815>what <00:35:09.015>we <00:35:09.215>should <00:35:09.415>ask, <00:35:09.615>uh, <00:35:09.815>is

568
00:35:13.275 --> 00:35:14.745
<00:35:13.275>where <00:35:13.605>to <00:35:13.936>go <00:35:14.267>from <00:35:14.598>here

569
00:35:14.885 --> 00:35:19.145
<00:35:14.885>and, <00:35:15.040>um, <00:35:15.196>what <00:35:15.351>we <00:35:15.507>have <00:35:15.662>to <00:35:15.818>adjust <00:35:15.973>in <00:35:16.129>Java, <00:35:16.285>um,

570
00:35:19.725 --> 00:35:23.225
<00:35:19.725>to, <00:35:19.900>yeah, <00:35:20.075>um, <00:35:20.250>win <00:35:20.424>the <00:35:20.600>race <00:35:20.775>against <00:35:20.950>the <00:35:21.125>competitors.

571
00:35:23.365 --> 00:35:28.345
<00:35:23.365>So <00:35:23.504>if <00:35:23.645>we <00:35:23.785>look <00:35:23.924>at, <00:35:24.064>um, <00:35:24.205>another, <00:35:24.345>um, <00:35:24.484>chart, <00:35:24.625>we <00:35:24.765>see,

572
00:35:28.885 --> 00:35:32.365
<00:35:28.885>um, <00:35:29.235>that <00:35:29.585>black <00:35:29.935>is <00:35:30.285>Java.

573
00:35:32.625 --> 00:35:35.085
<00:35:32.625>Um, <00:35:32.975>so <00:35:33.325>Java <00:35:33.675>is, <00:35:34.025>um,

574
00:35:35.745 --> 00:35:38.645
<00:35:35.745>nearly <00:35:36.025>always <00:35:36.305>the <00:35:36.585>most <00:35:36.865>important <00:35:37.145>language,

575
00:35:38.825 --> 00:35:43.205
<00:35:38.825>but, <00:35:39.058>um, <00:35:39.291>yeah, <00:35:39.524>c <00:35:39.758>is <00:35:39.991>sometimes <00:35:40.225>popular,

576
00:35:44.665 --> 00:35:49.615
<00:35:44.665>but <00:35:44.865>in <00:35:45.065>the <00:35:45.265>last <00:35:45.465>few <00:35:45.665>months, <00:35:45.865>the <00:35:46.065>popularity

577
00:35:49.635 --> 00:35:51.255
<00:35:49.635>of <00:35:50.335>Java <00:35:51.035>drops

578
00:35:51.315 --> 00:35:55.055
<00:35:51.315>and, <00:35:51.548>uh, <00:35:51.781>you <00:35:52.015>see, <00:35:52.248>um, <00:35:52.481>the <00:35:52.715>trend,

579
00:35:55.055 --> 00:35:58.295
<00:35:55.055>which <00:35:55.194>is <00:35:55.335>not <00:35:55.475>going <00:35:55.615>up, <00:35:55.754>but <00:35:55.895>it's <00:35:56.035>going <00:35:56.174>a <00:35:56.315>bit <00:35:56.455>down.

580
00:35:58.515 --> 00:36:02.255
<00:35:58.515>So, <00:35:58.654>but <00:35:58.795>what <00:35:58.935>you <00:35:59.075>see <00:35:59.214>is <00:35:59.355>Python <00:35:59.495>is <00:35:59.634>coming <00:35:59.775>and <00:35:59.915>increasing,

581
00:36:02.675 --> 00:36:07.405
<00:36:02.675>and, <00:36:02.955>um, <00:36:03.235>I <00:36:03.515>am <00:36:03.795>using <00:36:04.075>Python

582
00:36:08.105 --> 00:36:11.485
<00:36:08.105>for <00:36:08.385>my, <00:36:08.665>um, <00:36:08.945>playground <00:36:09.225>projects, <00:36:09.505>my

583
00:36:12.005 --> 00:36:14.165
<00:36:12.005>personal <00:36:12.471>projects <00:36:12.938>sometimes, <00:36:13.405>um,

584
00:36:14.985 --> 00:36:17.205
<00:36:14.985>I'm <00:36:15.185>programming <00:36:15.385>in <00:36:15.585>Java <00:36:15.785>most <00:36:15.985>of <00:36:16.185>the <00:36:16.385>time,

585
00:36:17.265 --> 00:36:19.085
<00:36:17.265>but <00:36:17.545>I, <00:36:17.825>I <00:36:18.105>really <00:36:18.384>like <00:36:18.665>Python

586
00:36:19.085 --> 00:36:22.245
<00:36:19.085>because <00:36:19.365>it <00:36:19.645>has <00:36:19.925>some <00:36:20.205>very <00:36:20.485>nice

587
00:36:22.805 --> 00:36:25.125
<00:36:22.805>features <00:36:23.085>which <00:36:23.365>are <00:36:23.645>missing <00:36:23.924>in <00:36:24.205>Java.

588
00:36:25.265 --> 00:36:27.125
<00:36:25.265>So, <00:36:25.731>um, <00:36:26.198>what <00:36:26.665>you,

589
00:36:27.145 --> 00:36:30.165
<00:36:27.145>or <00:36:27.272>what <00:36:27.399>I <00:36:27.526>wanted <00:36:27.654>to <00:36:27.781>show <00:36:27.908>is <00:36:28.035>there <00:36:28.163>are <00:36:28.290>other <00:36:28.417>languages, <00:36:28.545>um,

590
00:36:30.695 --> 00:36:32.405
<00:36:30.695>which <00:36:31.161>are <00:36:31.628>becoming <00:36:32.095>popular,

591
00:36:33.385 --> 00:36:37.405
<00:36:33.385>and, <00:36:33.585>um, <00:36:33.785>we <00:36:33.985>need <00:36:34.185>the <00:36:34.385>evolution, <00:36:34.585>uh, <00:36:34.785>evolution,

592
00:36:37.465 --> 00:36:42.285
<00:36:37.465>and <00:36:37.605>we <00:36:37.745>need, <00:36:37.885>um, <00:36:38.025>these <00:36:38.165>new, <00:36:38.305>um, <00:36:38.445>features <00:36:38.585>in <00:36:38.725>the <00:36:38.865>syntax

593
00:36:42.385 --> 00:36:44.485
<00:36:42.385>and, <00:36:42.735>and <00:36:43.085>the <00:36:43.435>APIs, <00:36:43.785>um,

594
00:36:44.915 --> 00:36:49.485
<00:36:44.915>because <00:36:45.070>the <00:36:45.226>other <00:36:45.381>languages <00:36:45.537>are <00:36:45.692>popular <00:36:45.848>and <00:36:46.003>they <00:36:46.159>are <00:36:46.315>popular

595
00:36:49.485 --> 00:36:51.885
<00:36:49.485>because <00:36:49.765>they <00:36:50.045>have <00:36:50.325>modern <00:36:50.605>language <00:36:50.885>features.

596
00:36:52.465 --> 00:36:57.405
<00:36:52.465>Um, <00:36:52.640>if <00:36:52.815>we <00:36:52.990>compare, <00:36:53.165>um, <00:36:53.340>these <00:36:53.515>both <00:36:53.690>competitors, <00:36:53.865>C

597
00:36:57.465 --> 00:37:02.205
<00:36:57.465>and <00:36:57.640>pi, <00:36:57.815>in <00:36:57.990>my <00:36:58.165>opinion, <00:36:58.340>PI <00:36:58.515>is, <00:36:58.690>um, <00:36:58.865>yeah,

598
00:37:03.075 --> 00:37:08.045
<00:37:03.075>very, <00:37:03.230>um, <00:37:03.386>has <00:37:03.541>a <00:37:03.697>more, <00:37:03.852>uh, <00:37:04.008>has <00:37:04.163>more <00:37:04.319>impact <00:37:04.475>than,

599
00:37:08.185 --> 00:37:12.645
<00:37:08.185>um, <00:37:08.360>CC <00:37:08.535>is <00:37:08.710>will <00:37:08.884>perhaps <00:37:09.060>always <00:37:09.235>be <00:37:09.410>a <00:37:09.585>popular

600
00:37:13.245 --> 00:37:17.165
<00:37:13.245>language, <00:37:13.478>but <00:37:13.711>more <00:37:13.944>for <00:37:14.178>hardware <00:37:14.411>oriented <00:37:14.645>programmers.

601
00:37:17.265 --> 00:37:21.525
<00:37:17.265>And, <00:37:17.545>um, <00:37:17.825>but <00:37:18.105>Python, <00:37:18.384>um, <00:37:18.665>grows

602
00:37:21.625 --> 00:37:23.645
<00:37:21.625>and, <00:37:22.091>um, <00:37:22.558>we <00:37:23.025>have

603
00:37:24.025 --> 00:37:27.285
<00:37:24.025>or <00:37:24.305>Java, <00:37:24.585>um, <00:37:24.865>can <00:37:25.145>learn <00:37:25.425>something.

604
00:37:27.625 --> 00:37:31.485
<00:37:27.625>Um, <00:37:27.825>what <00:37:28.025>we, <00:37:28.225>um, <00:37:28.425>took <00:37:28.625>over <00:37:28.825>is, <00:37:29.025>um,

605
00:37:31.485 --> 00:37:34.565
<00:37:31.485>Python <00:37:31.685>has <00:37:31.885>something <00:37:32.085>like <00:37:32.285>Tuple <00:37:32.485>to <00:37:32.685>define <00:37:32.885>tuple.

606
00:37:35.025 --> 00:37:37.925
<00:37:35.025>Uh, <00:37:35.180>this <00:37:35.336>is <00:37:35.491>built <00:37:35.647>in <00:37:35.802>that's <00:37:35.958>very <00:37:36.113>easy <00:37:36.269>to <00:37:36.425>use.

607
00:37:38.225 --> 00:37:40.805
<00:37:38.225>Um, <00:37:38.458>we <00:37:38.691>now <00:37:38.924>have <00:37:39.158>something <00:37:39.391>like <00:37:39.625>records.

608
00:37:41.145 --> 00:37:46.085
<00:37:41.145>So, <00:37:41.285>um, <00:37:41.425>I <00:37:41.565>think, <00:37:41.705>um, <00:37:41.845>records <00:37:41.985>are <00:37:42.125>perhaps <00:37:42.265>a <00:37:42.405>bit <00:37:42.545>better

609
00:37:46.085 --> 00:37:48.925
<00:37:46.085>because <00:37:46.285>they're, <00:37:46.485>um, <00:37:46.685>types <00:37:46.885>safe <00:37:47.085>by <00:37:47.285>the <00:37:47.485>way.

610
00:37:49.545 --> 00:37:54.525
<00:37:49.545>Um, <00:37:49.778>and <00:37:50.011>one <00:37:50.245>very, <00:37:50.478>um, <00:37:50.711>strong <00:37:50.945>point

611
00:37:54.705 --> 00:37:58.605
<00:37:54.705>to <00:37:54.832>get <00:37:54.959>started <00:37:55.086>is, <00:37:55.214>um, <00:37:55.341>the <00:37:55.468>read <00:37:55.595>evil <00:37:55.723>print <00:37:55.850>loop <00:37:55.977>in, <00:37:56.105>um,

612
00:37:59.345 --> 00:38:04.325
<00:37:59.345>Python, <00:37:59.484>which <00:37:59.625>we <00:37:59.765>now <00:37:59.904>have, <00:38:00.044>um, <00:38:00.185>adequately <00:38:00.325>with <00:38:00.464>uh, <00:38:00.605>J <00:38:00.745>Shell.

613
00:38:04.985 --> 00:38:08.925
<00:38:04.985>Um, <00:38:05.140>and <00:38:05.296>there <00:38:05.451>are, <00:38:05.607>uh, <00:38:05.762>interesting <00:38:05.918>other <00:38:06.073>concept <00:38:06.229>like, <00:38:06.385>um,

614
00:38:09.035 --> 00:38:12.685
<00:38:09.035>list <00:38:09.190>comprehensions, <00:38:09.346>uh, <00:38:09.501>which <00:38:09.657>we <00:38:09.812>don't <00:38:09.968>have <00:38:10.123>in <00:38:10.279>in <00:38:10.435>Java.

615
00:38:12.785 --> 00:38:16.605
<00:38:12.785>So, <00:38:12.940>um, <00:38:13.096>but <00:38:13.251>perhaps <00:38:13.407>we <00:38:13.562>will <00:38:13.718>see <00:38:13.873>something <00:38:14.029>like <00:38:14.185>this.

616
00:38:17.145 --> 00:38:20.145
<00:38:17.145>Um, <00:38:17.425>if <00:38:17.705>you <00:38:17.985>look <00:38:18.265>at <00:38:18.545>Java,

617
00:38:21.085 --> 00:38:24.865
<00:38:21.085>it <00:38:21.225>looks <00:38:21.365>a <00:38:21.505>bit <00:38:21.645>clumsy, <00:38:21.785>it <00:38:21.925>looks <00:38:22.065>a <00:38:22.205>bit, <00:38:22.345>uh, <00:38:22.485>expressive,

618
00:38:25.165 --> 00:38:28.225
<00:38:25.165>but <00:38:25.365>we <00:38:25.565>saw <00:38:25.765>switch <00:38:25.965>expressions, <00:38:26.165>we <00:38:26.365>saw <00:38:26.565>records,

619
00:38:28.445 --> 00:38:33.065
<00:38:28.445>we <00:38:28.620>saw <00:38:28.795>text <00:38:28.970>blocks, <00:38:29.145>um, <00:38:29.320>which <00:38:29.495>bring <00:38:29.670>elegance <00:38:29.845>back,

620
00:38:33.285 --> 00:38:34.985
<00:38:33.285>uh, <00:38:33.634>to <00:38:33.984>programming <00:38:34.335>with <00:38:34.685>Java.

621
00:38:35.625 --> 00:38:40.525
<00:38:35.625>Um, <00:38:35.752>so <00:38:35.879>what <00:38:36.006>are <00:38:36.134>the <00:38:36.261>plans <00:38:36.388>for <00:38:36.515>the <00:38:36.643>future <00:38:36.770>versions <00:38:36.897>of <00:38:37.025>Java?

622
00:38:41.105 --> 00:38:45.685
<00:38:41.105>Um, <00:38:41.260>if <00:38:41.416>we <00:38:41.571>look <00:38:41.727>just <00:38:41.882>for <00:38:42.038>the <00:38:42.193>Java <00:38:42.349>enhancement <00:38:42.505>proposals

623
00:38:45.785 --> 00:38:49.325
<00:38:45.785>for <00:38:45.960>the <00:38:46.134>next, <00:38:46.310>uh, <00:38:46.484>version <00:38:46.660>of <00:38:46.835>Java, <00:38:47.009>Java <00:38:47.185>16,

624
00:38:49.745 --> 00:38:51.085
<00:38:49.745>we <00:38:49.986>see <00:38:50.227>a <00:38:50.468>lot <00:38:50.709>of <00:38:50.951>things.

625
00:38:51.345 --> 00:38:56.245
<00:38:51.345>Um, <00:38:51.520>a <00:38:51.694>lot <00:38:51.870>of <00:38:52.044>things <00:38:52.220>are <00:38:52.395>irrelevant <00:38:52.569>for, <00:38:52.745>um,

626
00:38:56.425 --> 00:38:58.045
<00:38:56.425>the <00:38:56.891>normal <00:38:57.358>Java <00:38:57.825>developer,

627
00:38:58.305 --> 00:39:02.045
<00:38:58.305>but <00:38:58.480>there <00:38:58.654>are <00:38:58.830>some, <00:38:59.004>um, <00:38:59.180>which <00:38:59.355>are <00:38:59.529>perhaps <00:38:59.705>interesting.

628
00:39:02.465 --> 00:39:07.005
<00:39:02.465>Um, <00:39:02.620>this <00:39:02.776>is, <00:39:02.931>um, <00:39:03.087>packaging <00:39:03.242>tool <00:39:03.398>which <00:39:03.553>allows <00:39:03.709>us <00:39:03.865>to,

629
00:39:07.425 --> 00:39:10.125
<00:39:07.425>um, <00:39:07.891>create, <00:39:08.358>uh, <00:39:08.825>executables.

630
00:39:10.545 --> 00:39:14.885
<00:39:10.545>Um, <00:39:10.672>this <00:39:10.799>is, <00:39:10.926>uh, <00:39:11.054>interesting. <00:39:11.181>I <00:39:11.308>played <00:39:11.435>around <00:39:11.563>with <00:39:11.690>it <00:39:11.817>a <00:39:11.945>bit.

631
00:39:15.825 --> 00:39:20.045
<00:39:15.825>So <00:39:16.000>you <00:39:16.174>can <00:39:16.350>create <00:39:16.524>executables <00:39:16.700>for <00:39:16.875>your <00:39:17.049>Java <00:39:17.225>versions,

632
00:39:20.045 --> 00:39:24.125
<00:39:20.045>which <00:39:20.245>allows <00:39:20.445>to <00:39:20.645>distribute <00:39:20.845>with <00:39:21.045>all, <00:39:21.245>uh, <00:39:21.445>JDK.

633
00:39:24.705 --> 00:39:28.365
<00:39:24.705>Um, <00:39:24.860>then <00:39:25.016>pattern <00:39:25.171>matching <00:39:25.327>with <00:39:25.482>instance <00:39:25.638>off, <00:39:25.793>uh, <00:39:25.949>gets, <00:39:26.105>um,

634
00:39:29.545 --> 00:39:32.725
<00:39:29.545>um, <00:39:29.745>not <00:39:29.945>a <00:39:30.145>preview, <00:39:30.345>but <00:39:30.545>a <00:39:30.745>final <00:39:30.945>feature.

635
00:39:33.105 --> 00:39:35.285
<00:39:33.105>Um, <00:39:33.305>the <00:39:33.505>same, <00:39:33.705>um, <00:39:33.905>is <00:39:34.105>true <00:39:34.305>for <00:39:34.505>records.

636
00:39:35.945 --> 00:39:37.925
<00:39:35.945>And <00:39:36.145>then <00:39:36.345>we <00:39:36.545>have <00:39:36.745>something <00:39:36.945>like <00:39:37.145>seal <00:39:37.345>classes,

637
00:39:38.215 --> 00:39:43.165
<00:39:38.215>which <00:39:38.370>allows <00:39:38.526>us <00:39:38.681>to <00:39:38.837>control <00:39:38.992>inheritance, <00:39:39.148>um, <00:39:39.303>which <00:39:39.459>is, <00:39:39.615>um,

638
00:39:43.945 --> 00:39:47.165
<00:39:43.945>not <00:39:44.145>that <00:39:44.345>often <00:39:44.545>needed <00:39:44.745>for <00:39:44.945>the <00:39:45.145>normal <00:39:45.345>programmer,

639
00:39:47.165 --> 00:39:48.245
<00:39:47.165>but <00:39:47.651>for <00:39:48.136>frameworks.

640
00:39:49.185 --> 00:39:53.575
<00:39:49.185>So <00:39:49.360>what <00:39:49.535>we <00:39:49.710>can <00:39:49.884>see <00:39:50.060>in <00:39:50.235>the <00:39:50.410>Java, <00:39:50.585>um,

641
00:39:53.965 --> 00:39:58.655
<00:39:53.965>community <00:39:54.092>or <00:39:54.219>in, <00:39:54.346>in <00:39:54.474>what <00:39:54.601>is <00:39:54.728>going <00:39:54.855>on <00:39:54.983>in <00:39:55.110>Oracle, <00:39:55.237>we <00:39:55.365>have,

642
00:39:59.075 --> 00:40:03.015
<00:39:59.075>um, <00:39:59.355>four <00:39:59.634>projects <00:39:59.915>named <00:40:00.194>AM <00:40:00.475>Loom

643
00:40:03.015 --> 00:40:04.215
<00:40:03.015>and <00:40:03.555>Panama, <00:40:04.095>um,

644
00:40:04.635 --> 00:40:09.495
<00:40:04.635>and <00:40:04.775>Amma, <00:40:04.915>we <00:40:05.055>have, <00:40:05.195>um, <00:40:05.335>something <00:40:05.475>like <00:40:05.615>the, <00:40:05.755>uh, <00:40:05.895>things <00:40:06.035>we,

645
00:40:09.715 --> 00:40:14.415
<00:40:09.715>um, <00:40:09.870>switch <00:40:10.026>and, <00:40:10.181>uh, <00:40:10.337>other <00:40:10.492>things <00:40:10.648>to <00:40:10.803>get <00:40:10.959>a <00:40:11.115>better,

646
00:40:14.635 --> 00:40:18.975
<00:40:14.635>um, <00:40:14.775>yeah, <00:40:14.915>to <00:40:15.055>meet <00:40:15.195>better <00:40:15.335>the <00:40:15.475>expectations <00:40:15.615>of <00:40:15.755>the <00:40:15.895>modern <00:40:16.035>pro

647
00:40:19.035 --> 00:40:20.735
<00:40:19.035>for <00:40:19.501>modern <00:40:19.968>programming <00:40:20.435>language.

648
00:40:21.275 --> 00:40:26.215
<00:40:21.275>Um, <00:40:21.450>then <00:40:21.625>Valhalla <00:40:21.800>is <00:40:21.975>a <00:40:22.150>bit <00:40:22.325>more <00:40:22.500>specific, <00:40:22.675>um,

649
00:40:27.395 --> 00:40:28.815
<00:40:27.395>to <00:40:28.034>modern <00:40:28.673>hardware,

650
00:40:28.995 --> 00:40:33.375
<00:40:28.995>but <00:40:29.170>uh, <00:40:29.345>interestingly <00:40:29.520>there <00:40:29.694>are <00:40:29.870>something <00:40:30.045>like <00:40:30.220>value <00:40:30.395>types,

651
00:40:33.635 --> 00:40:35.815
<00:40:33.635>um, <00:40:33.915>that <00:40:34.195>are <00:40:34.475>types <00:40:34.755>without <00:40:35.035>identity.

652
00:40:36.595 --> 00:40:40.575
<00:40:36.595>So, <00:40:36.750>um, <00:40:36.906>and <00:40:37.061>the <00:40:37.217>other <00:40:37.372>one <00:40:37.528>is, <00:40:37.683>um, <00:40:37.839>perhaps <00:40:37.995>generics

653
00:40:40.575 --> 00:40:42.295
<00:40:40.575>for <00:40:40.855>primitive <00:40:41.134>types, <00:40:41.415>which <00:40:41.694>is, <00:40:41.975>uh,

654
00:40:42.525 --> 00:40:44.775
<00:40:42.525>desired <00:40:42.875>feature <00:40:43.225>for <00:40:43.575>long <00:40:43.925>time.

655
00:40:45.035 --> 00:40:49.375
<00:40:45.035>And, <00:40:45.210>um, <00:40:45.384>um, <00:40:45.560>the <00:40:45.734>last <00:40:45.910>one <00:40:46.085>that <00:40:46.259>I <00:40:46.435>want

656
00:40:49.375 --> 00:40:50.815
<00:40:49.375>to <00:40:49.699>mention <00:40:50.023>is <00:40:50.347>Product <00:40:50.671>Loom.

657
00:40:51.235 --> 00:40:55.815
<00:40:51.235>Um, <00:40:51.435>of <00:40:51.635>course, <00:40:51.835>um, <00:40:52.035>performance <00:40:52.235>is <00:40:52.435>always, <00:40:52.635>um,

658
00:40:56.095 --> 00:41:01.015
<00:40:56.095>a <00:40:56.294>topic, <00:40:56.495>but, <00:40:56.694>um, <00:40:56.895>interestingly, <00:40:57.095>um, <00:40:57.294>an <00:40:57.495>alternative,

659
00:41:01.315 --> 00:41:04.455
<00:41:01.315>uh, <00:41:01.515>to <00:41:01.715>threats, <00:41:01.915>uh, <00:41:02.115>should <00:41:02.315>be, <00:41:02.515>uh, <00:41:02.715>supported.

660
00:41:04.525 --> 00:41:06.015
<00:41:04.525>They <00:41:04.972>are <00:41:05.419>called <00:41:05.866>fibers.

661
00:41:06.475 --> 00:41:11.135
<00:41:06.475>Um, <00:41:06.630>and, <00:41:06.786>um, <00:41:06.941>in <00:41:07.097>the <00:41:07.252>days <00:41:07.408>of <00:41:07.563>high <00:41:07.719>throughput, <00:41:07.875>uh,

662
00:41:11.135 --> 00:41:14.495
<00:41:11.135>distributed <00:41:11.415>applications, <00:41:11.695>uh, <00:41:11.975>perhaps <00:41:12.255>this, <00:41:12.535>uh,

663
00:41:14.755 --> 00:41:18.215
<00:41:14.755>is <00:41:14.988>an <00:41:15.221>important <00:41:15.455>step <00:41:15.688>to, <00:41:15.921>um, <00:41:16.155>yeah,

664
00:41:18.405 --> 00:41:20.575
<00:41:18.405>make <00:41:18.755>concurrency <00:41:19.105>easier <00:41:19.455>with <00:41:19.805>Java.

665
00:41:23.755 --> 00:41:25.895
<00:41:23.755>So <00:41:24.105>what <00:41:24.455>are <00:41:24.805>the <00:41:25.155>plans

666
00:41:26.235 --> 00:41:29.055
<00:41:26.235>or, <00:41:26.435>um, <00:41:26.635>what <00:41:26.835>are <00:41:27.035>hard <00:41:27.235>decisions <00:41:27.435>for <00:41:27.635>Oracle?

667
00:41:29.515 --> 00:41:34.405
<00:41:29.515>And <00:41:29.654>my <00:41:29.795>point <00:41:29.935>of <00:41:30.075>view, <00:41:30.214>um, <00:41:30.355>if <00:41:30.495>you <00:41:30.634>look <00:41:30.775>at <00:41:30.915>Java,

668
00:41:34.945 --> 00:41:39.325
<00:41:34.945>um, <00:41:35.225>16, <00:41:35.505>you <00:41:35.785>see, <00:41:36.065>um, <00:41:36.345>yeah,

669
00:41:40.305 --> 00:41:43.885
<00:41:40.305>not <00:41:40.538>all <00:41:40.771>of <00:41:41.004>these <00:41:41.238>are <00:41:41.471>already <00:41:41.705>included,

670
00:41:44.025 --> 00:41:47.805
<00:41:44.025>and, <00:41:44.225>um, <00:41:44.425>in <00:41:44.625>the <00:41:44.825>next <00:41:45.025>few <00:41:45.225>months, <00:41:45.425>uh,

671
00:41:47.805 --> 00:41:49.445
<00:41:47.805>we <00:41:48.154>will <00:41:48.504>not <00:41:48.855>see <00:41:49.205>them.

672
00:41:49.825 --> 00:41:53.955
<00:41:49.825>So, <00:41:50.291>um, <00:41:50.758>I <00:41:51.225>personally,

673
00:41:54.695 --> 00:41:59.635
<00:41:54.695>I'm <00:41:54.835>not <00:41:54.975>convinced <00:41:55.115>that, <00:41:55.255>um, <00:41:55.395>Java <00:41:55.535>17 <00:41:55.675>will <00:41:55.815>get <00:41:55.955>the <00:41:56.095>next,

674
00:41:59.855 --> 00:42:01.515
<00:41:59.855>uh, <00:42:00.205>long <00:42:00.555>term <00:42:00.905>support <00:42:01.255>release

675
00:42:01.515 --> 00:42:04.995
<00:42:01.515>because, <00:42:01.714>um, <00:42:01.915>a <00:42:02.115>lot <00:42:02.315>of <00:42:02.515>things <00:42:02.714>are <00:42:02.915>missing.

676
00:42:05.535 --> 00:42:09.435
<00:42:05.535>So, <00:42:05.734>um, <00:42:05.935>what <00:42:06.134>can <00:42:06.335>happen <00:42:06.535>is <00:42:06.734>that, <00:42:06.935>um,

677
00:42:09.985 --> 00:42:14.435
<00:42:09.985>this <00:42:10.160>long-term <00:42:10.335>support <00:42:10.510>release <00:42:10.685>has <00:42:10.860>shifted <00:42:11.035>to <00:42:11.210>Java <00:42:11.385>19,

678
00:42:14.975 --> 00:42:18.645
<00:42:14.975>um, <00:42:15.174>which <00:42:15.375>is, <00:42:15.575>in <00:42:15.775>my <00:42:15.975>opinion, <00:42:16.174>a <00:42:16.375>good

679
00:42:18.705 --> 00:42:20.005
<00:42:18.705>or <00:42:18.939>would <00:42:19.173>be <00:42:19.407>a <00:42:19.641>good <00:42:19.875>choice.

680
00:42:20.225 --> 00:42:23.645
<00:42:20.225>Uh, <00:42:20.458>but <00:42:20.691>I'm, <00:42:20.924>this <00:42:21.158>are <00:42:21.391>just <00:42:21.625>estimations.

681
00:42:23.825 --> 00:42:25.725
<00:42:23.825>Um, <00:42:24.291>if <00:42:24.758>we, <00:42:25.225>um,

682
00:42:28.485 --> 00:42:31.585
<00:42:28.485>do <00:42:28.718>this <00:42:28.951>and <00:42:29.185>we <00:42:29.418>published <00:42:29.651>Java <00:42:29.885>17

683
00:42:31.805 --> 00:42:34.665
<00:42:31.805>as <00:42:32.004>a <00:42:32.205>long-term <00:42:32.404>support <00:42:32.605>release, <00:42:32.805>um, <00:42:33.004>a <00:42:33.205>lot

684
00:42:34.665 --> 00:42:37.865
<00:42:34.665>of <00:42:34.865>people <00:42:35.065>are <00:42:35.265>perhaps <00:42:35.465>not, <00:42:35.665>uh, <00:42:35.865>as <00:42:36.065>satisfied

685
00:42:38.015 --> 00:42:41.425
<00:42:38.015>with <00:42:38.214>the <00:42:38.415>progress <00:42:38.615>and <00:42:38.815>the, <00:42:39.015>um, <00:42:39.214>contained <00:42:39.415>features,

686
00:42:41.485 --> 00:42:44.305
<00:42:41.485>and <00:42:41.660>we <00:42:41.835>have <00:42:42.010>to <00:42:42.185>wait <00:42:42.360>another, <00:42:42.535>uh, <00:42:42.710>three <00:42:42.885>years

687
00:42:44.405 --> 00:42:45.745
<00:42:44.405>for <00:42:44.706>the <00:42:45.008>next, <00:42:45.309>uh, <00:42:45.611>release.

688
00:42:46.325 --> 00:42:50.985
<00:42:46.325>Um, <00:42:46.452>so <00:42:46.579>that's <00:42:46.706>why <00:42:46.834>my <00:42:46.961>guess <00:42:47.088>is <00:42:47.215>that <00:42:47.343>we <00:42:47.470>will <00:42:47.597>see, <00:42:47.725>um,

689
00:42:52.135 --> 00:42:54.705
<00:42:52.135>Java <00:42:52.368>90 <00:42:52.601>as <00:42:52.835>a <00:42:53.068>long-term <00:42:53.301>support <00:42:53.535>release,

690
00:42:54.845 --> 00:42:58.505
<00:42:54.845>but <00:42:55.020>let's, <00:42:55.194>um, <00:42:55.370>look <00:42:55.544>what <00:42:55.720>the <00:42:55.895>future <00:42:56.069>will <00:42:56.245>bring.

691
00:42:59.045 --> 00:43:01.425
<00:42:59.045>Um, <00:42:59.395>so <00:42:59.745>let <00:43:00.095>me <00:43:00.445>conclude,

692
00:43:02.285 --> 00:43:04.105
<00:43:02.285>um, <00:43:02.984>positive <00:43:03.685>things.

693
00:43:04.575 --> 00:43:07.105
<00:43:04.575>Java <00:43:04.774>is <00:43:04.975>moving <00:43:05.174>forward <00:43:05.375>and <00:43:05.575>gets <00:43:05.774>more <00:43:05.975>modern

694
00:43:07.245 --> 00:43:08.705
<00:43:07.245>and <00:43:07.683>gets <00:43:08.121>more <00:43:08.558>attractive.

695
00:43:09.365 --> 00:43:12.625
<00:43:09.365>We <00:43:09.504>have <00:43:09.645>a <00:43:09.785>lot <00:43:09.924>of <00:43:10.064>positive <00:43:10.205>things, <00:43:10.345>uh, <00:43:10.484>in <00:43:10.625>the <00:43:10.765>syntax.

696
00:43:12.645 --> 00:43:17.465
<00:43:12.645>We <00:43:12.761>have <00:43:12.878>Switch, <00:43:12.995>we <00:43:13.111>have <00:43:13.228>records, <00:43:13.345>um, <00:43:13.461>a <00:43:13.578>lot <00:43:13.695>of <00:43:13.811>the <00:43:13.928>tons <00:43:14.045>of,

697
00:43:17.645 --> 00:43:19.825
<00:43:17.645>um, <00:43:17.925>nice <00:43:18.205>things <00:43:18.485>in <00:43:18.765>the <00:43:19.045>APIs.

698
00:43:20.245 --> 00:43:24.345
<00:43:20.245>Um, <00:43:20.384>then <00:43:20.525>we <00:43:20.665>have <00:43:20.805>to <00:43:20.944>mention <00:43:21.085>J <00:43:21.225>Shell <00:43:21.365>right <00:43:21.505>now, <00:43:21.645>um,

699
00:43:24.525 --> 00:43:26.305
<00:43:24.525>for <00:43:24.875>scripting <00:43:25.225>and <00:43:25.575>for <00:43:25.925>beginners.

700
00:43:26.375 --> 00:43:30.865
<00:43:26.375>It's <00:43:26.575>interesting <00:43:26.775>for, <00:43:26.975>um, <00:43:27.175>the <00:43:27.375>professional <00:43:27.575>Java <00:43:27.775>developer,

701
00:43:31.165 --> 00:43:35.025
<00:43:31.165>uh, <00:43:31.340>as <00:43:31.515>alternative <00:43:31.690>as <00:43:31.865>for <00:43:32.040>the <00:43:32.215>IDE, <00:43:32.390>no, <00:43:32.565>um,

702
00:43:35.035 --> 00:43:37.505
<00:43:35.035>there <00:43:35.315>you <00:43:35.595>use <00:43:35.875>the <00:43:36.154>IIDE, <00:43:36.435>um,

703
00:43:38.045 --> 00:43:42.385
<00:43:38.045>and <00:43:38.200>we <00:43:38.356>get <00:43:38.511>a <00:43:38.667>new, <00:43:38.822>um, <00:43:38.978>HTTP <00:43:39.133>two <00:43:39.289>API, <00:43:39.445>which

704
00:43:43.025 --> 00:43:45.665
<00:43:43.025>I <00:43:43.180>am <00:43:43.336>not <00:43:43.491>covered <00:43:43.647>here, <00:43:43.802>but <00:43:43.958>I <00:43:44.113>want <00:43:44.269>to <00:43:44.425>mention

705
00:43:45.665 --> 00:43:48.225
<00:43:45.665>because <00:43:45.840>it's, <00:43:46.015>uh, <00:43:46.190>so <00:43:46.365>nice <00:43:46.540>to <00:43:46.715>work <00:43:46.890>with <00:43:47.065>it.

706
00:43:48.765 --> 00:43:52.675
<00:43:48.765>Um, <00:43:48.998>then <00:43:49.231>what <00:43:49.464>are <00:43:49.698>the <00:43:49.931>negative <00:43:50.165>things?

707
00:43:53.015 --> 00:43:57.955
<00:43:53.015>Um, <00:43:53.142>we <00:43:53.269>saw <00:43:53.396>a <00:43:53.524>lot <00:43:53.651>of <00:43:53.778>delays, <00:43:53.905>uh, <00:43:54.033>for <00:43:54.160>Java <00:43:54.287>nine, <00:43:54.415>um,

708
00:43:58.095 --> 00:44:02.475
<00:43:58.095>and <00:43:58.250>this <00:43:58.406>is <00:43:58.561>why, <00:43:58.717>uh, <00:43:58.872>Oracle <00:43:59.028>switch <00:43:59.183>to <00:43:59.339>this, <00:43:59.495>um,

709
00:44:02.665 --> 00:44:04.195
<00:44:02.665>half <00:44:03.124>year <00:44:03.583>release <00:44:04.042>cycle.

710
00:44:04.895 --> 00:44:09.395
<00:44:04.895>Um, <00:44:05.035>and <00:44:05.175>again, <00:44:05.315>yeah, <00:44:05.455>the <00:44:05.595>next <00:44:05.735>releases <00:44:05.875>were <00:44:06.015>right <00:44:06.155>on <00:44:06.295>time,

711
00:44:09.975 --> 00:44:14.435
<00:44:09.975>but <00:44:10.115>just <00:44:10.255>Java <00:44:10.395>40 <00:44:10.535>brought <00:44:10.674>a <00:44:10.815>lot <00:44:10.955>of <00:44:11.095>new <00:44:11.235>syntax <00:44:11.375>features

712
00:44:14.615 --> 00:44:19.235
<00:44:14.615>and, <00:44:14.848>um, <00:44:15.081>yeah, <00:44:15.314>you <00:44:15.548>have <00:44:15.781>to, <00:44:16.015>um,

713
00:44:19.285 --> 00:44:22.275
<00:44:19.285>think <00:44:19.565>about, <00:44:19.845>um, <00:44:20.125>is <00:44:20.404>it <00:44:20.685>worse

714
00:44:22.505 --> 00:44:26.035
<00:44:22.505>that <00:44:22.705>Java <00:44:22.905>17 <00:44:23.105>will <00:44:23.305>become <00:44:23.505>the <00:44:23.705>next <00:44:23.905>LTS?

715
00:44:26.055 --> 00:44:29.915
<00:44:26.055>And <00:44:26.288>um, <00:44:26.521>again, <00:44:26.754>um, <00:44:26.988>we <00:44:27.221>see <00:44:27.455>that

716
00:44:31.315 --> 00:44:32.365
<00:44:31.315>some <00:44:31.630>things <00:44:31.944>are <00:44:32.259>missing.

717
00:44:32.785 --> 00:44:34.045
<00:44:32.785>Uh, <00:44:33.068>we <00:44:33.352>have <00:44:33.635>no <00:44:33.919>version

718
00:44:34.105 --> 00:44:38.925
<00:44:34.105>and <00:44:34.305>for <00:44:34.505>versioning <00:44:34.705>for <00:44:34.905>this <00:44:35.105>project, <00:44:35.305>jigsaw, <00:44:35.505>um,

719
00:44:39.835 --> 00:44:43.325
<00:44:39.835>also <00:44:40.010>known <00:44:40.185>as <00:44:40.360>modernization, <00:44:40.535>we <00:44:40.710>have <00:44:40.885>no <00:44:41.060>Jason <00:44:41.235>support.

720
00:44:43.395 --> 00:44:44.965
<00:44:43.395>They <00:44:43.675>said <00:44:43.955>they <00:44:44.235>will <00:44:44.515>include <00:44:44.795>this.

721
00:44:45.185 --> 00:44:46.725
<00:44:45.185>Um, <00:44:46.571>yeah,

722
00:44:46.985 --> 00:44:50.245
<00:44:46.985>and <00:44:47.160>we <00:44:47.335>have <00:44:47.510>a <00:44:47.685>lot <00:44:47.860>of <00:44:48.035>other <00:44:48.210>special, <00:44:48.385>um,

723
00:44:51.265 --> 00:44:53.045
<00:44:51.265>things <00:44:51.545>which <00:44:51.825>are <00:44:52.105>not <00:44:52.384>that <00:44:52.665>good.

724
00:44:53.305 --> 00:44:58.235
<00:44:53.305>Um, <00:44:53.480>but <00:44:53.654>the <00:44:53.830>positive <00:44:54.004>side <00:44:54.180>of <00:44:54.355>things <00:44:54.529>are, <00:44:54.705>um,

725
00:44:58.655 --> 00:45:00.475
<00:44:58.655>of <00:44:58.935>course, <00:44:59.215>uh, <00:44:59.495>the <00:44:59.775>more <00:45:00.055>important

726
00:45:00.735 --> 00:45:03.755
<00:45:00.735>and, <00:45:01.015>um, <00:45:01.295>Java <00:45:01.575>is <00:45:01.855>getting <00:45:02.135>nicer.

727
00:45:03.925 --> 00:45:06.715
<00:45:03.925>Nicer, <00:45:04.100>and <00:45:04.275>you <00:45:04.450>should, <00:45:04.625>uh, <00:45:04.800>keep <00:45:04.975>this <00:45:05.150>in <00:45:05.325>mind.

728
00:45:07.095 --> 00:45:11.035
<00:45:07.095>Um, <00:45:07.250>and <00:45:07.406>I <00:45:07.561>think <00:45:07.717>Java <00:45:07.872>is <00:45:08.028>ready <00:45:08.183>for <00:45:08.339>the <00:45:08.495>future,

729
00:45:11.655 --> 00:45:14.555
<00:45:11.655>but <00:45:11.795>it <00:45:11.935>has <00:45:12.075>to <00:45:12.215>be <00:45:12.355>ready <00:45:12.495>for <00:45:12.635>the <00:45:12.775>future <00:45:12.915>to <00:45:13.055>be

730
00:45:14.785 --> 00:45:17.675
<00:45:14.785>that <00:45:15.018>popular <00:45:15.251>in <00:45:15.484>a <00:45:15.718>few <00:45:15.951>years <00:45:16.185>again.

731
00:45:17.775 --> 00:45:21.315
<00:45:17.775>Um, <00:45:18.008>so <00:45:18.241>that's <00:45:18.475>it <00:45:18.708>from <00:45:18.941>my <00:45:19.175>side.

732
00:45:21.775 --> 00:45:25.915
<00:45:21.775>I'm <00:45:21.975>right <00:45:22.175>on <00:45:22.375>time. <00:45:22.575>Um, <00:45:22.775>45 <00:45:22.975>minutes. <00:45:23.175>Um.