WEBVTT

1
00:00:00.000 --> 00:00:02.980
Meinte, maak jij gebruik van een muis als developer?

2
00:00:03.220 --> 00:00:06.180
Ja, absoluut.

3
00:00:08.560 --> 00:00:11.600
En wat zegt dat over jouw development skills?

4
00:00:11.780 --> 00:00:14.240
Het schijnt dat ik daarmee automatisch een junior ben.

5
00:00:21.480 --> 00:00:25.280
Hallo allemaal, welkom bij een nieuwe aflevering van CodeKlets.

6
00:00:25.760 --> 00:00:28.680
Dit keer zitten we alweer in aflevering 11.

7
00:00:28.920 --> 00:00:30.740
En vandaag met Meinte Boersma.

8
00:00:32.240 --> 00:00:36.040
Meinte werd 13 jaar geleden gebeten door een virus

9
00:00:36.260 --> 00:00:41.960
dat de modelgedreven softwareontwikkeling en domeinspecifieke talen veroorzaakt

10
00:00:41.960 --> 00:00:43.860
zonder uitzicht op genezing.

11
00:00:44.660 --> 00:00:47.900
Sindsdien probeert hij zoveel mogelijk mensen ervan te overtuigen

12
00:00:47.900 --> 00:00:51.420
om softwareontwikkeling met behulp van domeinmodulering te doen.

13
00:00:51.960 --> 00:00:54.220
Tegenwoordig doet hij dat bij de Belastingdienst.

14
00:00:54.680 --> 00:00:59.320
Daarnaast is hij ook nog eens bezig om een mooi boek te schrijven over dit onderwerp voor Manning.

15
00:00:59.320 --> 00:01:01.420
Zo Meinte, welkom.

16
00:01:01.700 --> 00:01:03.500
Dankjewel, hoi Kishen, hoi Johnny.

17
00:01:04.640 --> 00:01:08.140
Hallo, hallo, hallo. Ja, we zijn maar naar remote deze week.

18
00:01:08.540 --> 00:01:09.380
Oh, gezellig.

19
00:01:09.600 --> 00:01:13.400
Oh ja, goed, de coronaregels weer aangescherpt

20
00:01:13.400 --> 00:01:16.980
en dus toch maar besloten om weer een remote opname te gaan doen

21
00:01:16.980 --> 00:01:21.420
na onze hosts only jubileum aflevering van een tijdje terug.

22
00:01:22.360 --> 00:01:26.500
En we zijn met z'n tweeën vandaag, Kishen en ik zijn samen.

23
00:01:26.500 --> 00:01:31.820
En we hebben zoals in de intro Meinte Boersma als gast gevonden.

24
00:01:32.340 --> 00:01:33.560
En inderdaad, welkom Meinte.

25
00:01:34.680 --> 00:01:35.200
Dankjewel.

26
00:01:35.720 --> 00:01:38.160
Hoe is het jongen, hoe heb je het gehad de laatste tijd?

27
00:01:38.500 --> 00:01:39.040
Ja, goed.

28
00:01:39.760 --> 00:01:42.320
Ik ben net begonnen aan een sabbatical van een half jaar.

29
00:01:42.660 --> 00:01:45.720
Dat is extra reden voor feest.

30
00:01:46.640 --> 00:01:48.720
Een half jaar om een boek af te maken.

31
00:01:50.600 --> 00:01:53.120
En dus ja, dat gaat lekker.

32
00:01:53.340 --> 00:01:56.120
En daarvoor, ja, corona is natuurlijk geen feestje aan zich.

33
00:01:56.120 --> 00:01:59.220
Maar ik werk er altijd al veel thuis.

34
00:01:59.460 --> 00:02:01.260
Dus nu alleen maar meer.

35
00:02:01.800 --> 00:02:03.360
Dus dat was ik al gewend.

36
00:02:03.800 --> 00:02:13.100
En het fijn is dat bijvoorbeeld de team waar ik tot vorige week bij de Plassendienst bijwerkte nu ook allemaal thuis werkt.

37
00:02:13.600 --> 00:02:15.320
En daar ook veel beter in is geworden.

38
00:02:15.420 --> 00:02:19.340
Dus ik merk dat daardoor dat mensen gedwongen thuis moeten werken,

39
00:02:19.520 --> 00:02:23.220
ze ook effectiever raken als team omdat iedereen thuis moet werken.

40
00:02:23.220 --> 00:02:26.500
En niet een gedeelte thuis en een gedeelte op kantoor.

41
00:02:27.340 --> 00:02:36.480
En hoe bevalt het ook met de andere collega's bij de Belastingdienst die dus gewend zijn over het algemeen om op kantoor te werken?

42
00:02:37.140 --> 00:02:39.580
Ja, voor mij was het niet zozeer een omschakeling.

43
00:02:39.640 --> 00:02:44.160
Voor een aantal andere teamleden wel, omdat die echt alleen maar gewend waren om naar kantoor te komen.

44
00:02:45.280 --> 00:02:48.720
Wat dan normaal gesproken er wel eens gebeurde was dat,

45
00:02:48.720 --> 00:02:53.940
dan was ik met twee andere mensen thuis aan het werk en de rest zat op kantoor.

46
00:02:55.160 --> 00:02:58.240
En dan ben je toch een beetje de eenzame roepende in de hoestijn.

47
00:02:58.240 --> 00:03:05.820
Of je moet mensen echt gaan bellen als vervanging van ja, ik loop even naar je bureau toe.

48
00:03:07.500 --> 00:03:09.280
En nu heeft iedereen hetzelfde probleem.

49
00:03:10.980 --> 00:03:18.780
Iedereen moet maar gewoon op de slack of met de most zitten en goed op de mailtjes letten en meetings doen.

50
00:03:20.000 --> 00:03:22.340
En daar word je als team volgens mij wel effectiever van.

51
00:03:22.400 --> 00:03:26.620
Dat je ook goed snapt van wat het is om als team remote te werken.

52
00:03:27.440 --> 00:03:30.580
Ja, ik heb inderdaad ook gemerkt dat een hybride vorm,

53
00:03:30.580 --> 00:03:35.400
dat dat veel lastiger te bewerkstelligen is dan iedereen thuis of iedereen op kantoor.

54
00:03:36.160 --> 00:03:38.220
Dat was mij inderdaad ook opgevallen.

55
00:03:38.220 --> 00:03:44.460
Ja, maar ik heb ook nog een leuk nieuwtje meid die ik met je wilde delen.

56
00:03:45.340 --> 00:03:49.480
Ik heb toevallig vandaag een intake gesprek gehad bij de Belastingdienst.

57
00:03:50.680 --> 00:03:52.280
Ja, in Apeldoorn.

58
00:03:53.880 --> 00:03:55.380
En ja, ik ben er doorheen gekomen.

59
00:03:55.620 --> 00:03:57.060
Ze hebben me vanochtend gebeld.

60
00:03:57.260 --> 00:04:00.860
Of tenminste, sorry, vanochtend was het interview zoals het ware.

61
00:04:01.660 --> 00:04:06.000
Dus er waren zes man die mij dan allerlei leuke vragen stelden.

62
00:04:06.000 --> 00:04:11.440
En ja, in de middag hebben ze van de tien, geloof ik, hebben ze uiteindelijk mij uitgekozen.

63
00:04:11.540 --> 00:04:13.240
Nou, gefeliciteerd. Leuk.

64
00:04:13.520 --> 00:04:15.600
Ja, dankjewel. Dus ik word nog een Belastingdienst collega.

65
00:04:15.620 --> 00:04:17.000
Ja, dan zijn we gewoon weer collega's.

66
00:04:17.740 --> 00:04:18.180
Leuk, hè?

67
00:04:18.840 --> 00:04:20.880
Waar zit jij in het land?

68
00:04:21.500 --> 00:04:23.580
Nou, fysiek zit ik in Voorhout.

69
00:04:24.620 --> 00:04:28.680
En mijn normale standplaats bij de Belastingdienst is inderdaad ook in Apeldoorn.

70
00:04:29.180 --> 00:04:32.660
Al heb ik dat natuurlijk al ruim een half jaar niet meer gezien.

71
00:04:33.080 --> 00:04:35.640
En we mogen wel officieel dat gebouw ook helemaal niet in en zo.

72
00:04:36.520 --> 00:04:38.800
Dus ik heb dat ook niet meer geprobeerd.

73
00:04:39.560 --> 00:04:40.940
En nou ja, die mailtjes ga je nog wel krijgen.

74
00:04:41.280 --> 00:04:44.720
Maar ik had echt een beetje elke week een e-mail van ja, ja, het mag nog steeds niet.

75
00:04:44.840 --> 00:04:47.140
Ja, het is wel heel jammer, maar je mag nog steeds niet op kantoor komen.

76
00:04:47.260 --> 00:04:51.560
Tenzij je echt met een schoeven draaien aan de mainframe mag zitten of zo.

77
00:04:51.780 --> 00:04:52.800
Bij wijze van spreken.

78
00:04:54.560 --> 00:04:57.980
Maar even terugpakken, want jullie kennen elkaar dus al duidelijk.

79
00:04:59.100 --> 00:05:01.760
Ik ken Mijnte nog niet, maar jullie zijn dus al collega's geweest.

80
00:05:01.760 --> 00:05:03.600
Ja, zeker, zeker.

81
00:05:03.680 --> 00:05:05.880
We hebben beide bij Mendix gewerkt.

82
00:05:07.540 --> 00:05:13.100
En ja, Mijnte die kennen we daar heel goed, omdat hij daar het modelgedreven software ontwikkeling.

83
00:05:13.160 --> 00:05:15.200
Ja, eigenlijk iedereen de man bracht.

84
00:05:15.860 --> 00:05:17.320
Van waarom het zo belangrijk was.

85
00:05:17.760 --> 00:05:18.840
Of is eigenlijk, sorry.

86
00:05:18.980 --> 00:05:20.760
Je moet natuurlijk niet in passends praten.

87
00:05:21.480 --> 00:05:23.000
Maar waarom het zo belangrijk is.

88
00:05:23.960 --> 00:05:31.680
En natuurlijk ook onze Mendix developers te helpen in het bouwen aan een modelgedreven software pakket.

89
00:05:31.680 --> 00:05:32.660
Ja, precies.

90
00:05:32.880 --> 00:05:37.680
Ik ben daar gekomen omdat ik daar met Johan de Haan heb gesproken.

91
00:05:39.460 --> 00:05:40.620
Kort daarvoor eigenlijk.

92
00:05:42.720 --> 00:05:46.720
En wat Mendix doet is, Mendix maakt een low-code platform.

93
00:05:47.680 --> 00:05:49.240
Voor de mensen die het nog niet weten.

94
00:05:49.320 --> 00:05:51.560
Mendix maakt een low-code platform.

95
00:05:52.780 --> 00:05:56.800
Waarbij we met behulp van grafische modeleertalen een applicatie in elkaar kunnen zetten.

96
00:05:57.700 --> 00:06:01.420
En eigenlijk is dat gewoon keihard modelgedreven software ontwikkeling.

97
00:06:02.080 --> 00:06:04.620
In de begintijd noemden ze dat zelfs zo.

98
00:06:04.720 --> 00:06:05.860
Tegenwoordig niet meer zo.

99
00:06:06.000 --> 00:06:09.060
Maar dat heeft dus een hele sterke basis in het modelgedreven software ontwikkeling.

100
00:06:09.620 --> 00:06:16.720
En de grap is dat er niet zo heel veel kennis aanwezig was van modelgedreven software ontwikkeling.

101
00:06:17.380 --> 00:06:19.960
En software language engineering in het bedrijf zelf.

102
00:06:20.580 --> 00:06:26.640
Daarvoor heeft Johan mij aangetrokken om dat binnen bedrijf een goede basis te geven en verder te verspreiden.

103
00:06:27.520 --> 00:06:33.100
En wij hebben samen gewerkt aan wat tegenwoordig de Mendix Studio heet, geloof ik.

104
00:06:33.160 --> 00:06:35.640
En toen het de Webmodeler heette.

105
00:06:36.620 --> 00:06:42.960
En we hebben ook de model share gemaakt en de model SDK en de model server.

106
00:06:42.980 --> 00:06:44.360
Dat heet nu allemaal, geloof ik, anders.

107
00:06:44.960 --> 00:06:47.060
En model share bestaat niet meer, geloof ik.

108
00:06:47.500 --> 00:06:50.200
Nee, nee. Ja, het is een beetje deprecatie.

109
00:06:50.200 --> 00:06:50.920
Precies, ja.

110
00:06:52.140 --> 00:06:57.060
En ja, modeling services, dat was de teamnaam.

111
00:06:57.420 --> 00:06:59.560
En volgens mij is die nog steeds gaande.

112
00:07:00.300 --> 00:07:01.740
Ja, ik werk daar nu ook inmiddels niet meer.

113
00:07:02.680 --> 00:07:08.720
Maar ja, dat is inderdaad wel een hele goede bestempling geweest, denk ik, voor iedereen.

114
00:07:09.740 --> 00:07:13.600
En dat is natuurlijk een van de belangrijkste onderdelen binnen Mendix.

115
00:07:14.620 --> 00:07:18.100
Dus ja, dat heeft mij echt een hele goede bijdrage aangeleverd.

116
00:07:18.700 --> 00:07:23.360
Hoe ben je daar zo bij gekomen, om die kant op te gaan, eigenlijk?

117
00:07:23.420 --> 00:07:25.200
Is dat een interesse geweest van vroeger?

118
00:07:25.280 --> 00:07:27.760
Of is het iets een keer wat je tegenkwam?

119
00:07:28.040 --> 00:07:34.100
En ja, je zegt zelf in de intro, die had je mooi aangeleverd, dat je bent gebeten door het virus.

120
00:07:35.280 --> 00:07:36.360
Kun je daar wat over vertellen?

121
00:07:36.680 --> 00:07:39.340
Ja, nou, ik heb wiskunde gestudeerd.

122
00:07:39.620 --> 00:07:41.920
En alweer een best van een tijd geleden.

123
00:07:43.640 --> 00:07:50.700
En ook uit volle overtuiging, in de zin van dat ik echt het idee had dat ik wiskundige wilde worden en het onderzoek in wilde.

124
00:07:51.200 --> 00:07:55.140
Maar tegelijkertijd deed ik ook heel veel programmeren en software ontwikkeling.

125
00:07:55.460 --> 00:07:56.640
Dus dat had mijn interesse ook.

126
00:07:57.880 --> 00:08:00.940
En toen ben ik uiteindelijk toch niet het onderzoek in gegaan.

127
00:08:01.380 --> 00:08:05.440
Ben ik zeg maar gewoon tussen aanhalingshaakjes software ontwikkelaar geworden.

128
00:08:06.760 --> 00:08:12.980
Dat was wel leuk, maar ook veel meer van hetzelfde als het ware.

129
00:08:14.020 --> 00:08:17.660
En toen werkte ik op een gegeven moment bij Atos, toen nog Atos Origin.

130
00:08:18.600 --> 00:08:23.420
En ik kreeg de kans om mee te doen bij een project dat ging om het moderniseren van Legacy.

131
00:08:25.000 --> 00:08:28.000
Met de titel Legacy Transformation Factory.

132
00:08:28.000 --> 00:08:32.240
Dus dat ging erom om een oude applicatie, bijvoorbeeld in Cobol,

133
00:08:32.540 --> 00:08:36.340
te transformeren naar een mooie shiny Java applicatie.

134
00:08:36.460 --> 00:08:37.980
En dat was in 2007.

135
00:08:38.900 --> 00:08:43.020
En dat is eigenlijk de eerste keer dat ik in aanraking kwam met modelgedreven software ontwikkeling.

136
00:08:44.080 --> 00:08:47.400
En dat klikte in één keer.

137
00:08:48.340 --> 00:08:51.620
Dat was voor mij echt een aha-moment.

138
00:08:51.860 --> 00:08:55.480
Van oh, dit is eigenlijk gewoon hoe ik altijd software wil ontwikkelen.

139
00:08:57.420 --> 00:09:00.280
En sinds die tijd is dat dus ook niet anders geworden.

140
00:09:01.180 --> 00:09:04.120
En probeer ik zoveel mogelijk mensen dat aan een mand te brengen,

141
00:09:04.360 --> 00:09:06.200
of door een strot te duwen of hoe je het ook maar wilt noemen.

142
00:09:09.200 --> 00:09:14.340
Oké. En je programmeer jezelf nu nog steeds veel daarmee?

143
00:09:14.900 --> 00:09:17.760
Of waar ben je nu het meeste mee bezig eigenlijk in je dagelijkse?

144
00:09:17.780 --> 00:09:19.620
Nou ja, op dit moment met boekschrijven.

145
00:09:20.240 --> 00:09:23.420
Dus daar zit ook heel veel programmeerwerk bij, gelukkig.

146
00:09:24.200 --> 00:09:27.440
Mijn werk bij de belasting zit ook nog heel veel programmeerwerk bij.

147
00:09:28.020 --> 00:09:32.200
Hoewel ik daar teamlead ben en dus van nature meer aan het praten ben,

148
00:09:32.380 --> 00:09:35.600
met mensen overleggen ben, dat soort zaken.

149
00:09:36.300 --> 00:09:38.640
Dus daar valt het wel een beetje mee met hoeveelheid programmeerwerk.

150
00:09:39.060 --> 00:09:41.420
Maar ik ben nog steeds veel aan het programmeren inderdaad.

151
00:09:43.200 --> 00:09:43.640
Oké, leuk.

152
00:09:44.140 --> 00:09:44.460
Ja, leuk.

153
00:09:45.520 --> 00:09:48.760
Ja, we hebben meestal een beetje, noem het maar even,

154
00:09:48.760 --> 00:09:54.540
een standaard ridultje wat we gewoon elke gast bevragen,

155
00:09:54.740 --> 00:09:58.760
vooral omdat je natuurlijk een hele sterke DSL-achtergrond hebt.

156
00:10:00.040 --> 00:10:03.060
Voor de mensen die dat nog niet zo snappen,

157
00:10:03.360 --> 00:10:07.200
of misschien helemaal niet eens weten wat het überhaupt betekent,

158
00:10:07.640 --> 00:10:10.860
als je het zou mogen vertellen, wat is eigenlijk DSL?

159
00:10:11.180 --> 00:10:13.460
Nou, ten eerste moeten we hem eens even decorderen.

160
00:10:13.580 --> 00:10:16.460
DSL staat voor Domain Specific Language,

161
00:10:16.460 --> 00:10:19.920
oftewel in het Nederlands een domeinspecifieke taal.

162
00:10:20.300 --> 00:10:24.020
En dat is een computertaal specifiek voor een domein.

163
00:10:24.060 --> 00:10:25.740
Dat is natuurlijk een flauw antwoord.

164
00:10:26.460 --> 00:10:30.400
Maar waar het om gaat is dat je, ten eerste moet het een computertaal zijn,

165
00:10:30.540 --> 00:10:33.060
dus een taal die begrepen kan worden door een computer.

166
00:10:33.840 --> 00:10:36.980
Maar belangrijker nog, hij moet begrepen worden door een bepaald domein.

167
00:10:37.060 --> 00:10:40.460
En een domein kan zijn een bepaald vakgebied,

168
00:10:42.260 --> 00:10:45.800
of een bepaald bedrijf dat iets doet,

169
00:10:45.800 --> 00:10:50.580
of een bepaald clubje mensen dat een gemeenschappelijk doel heeft.

170
00:10:51.300 --> 00:10:56.300
Dus eigenlijk alles waar je een groep mensen kunt aanwijzen

171
00:10:56.300 --> 00:10:59.800
die een specifiek doel heeft met een specifiek taalgebruik,

172
00:11:00.740 --> 00:11:03.680
daardoor zal heel snel spaken van een DSL.

173
00:11:03.800 --> 00:11:06.800
En dan heb je misschien die DSL nog niet in computervorm,

174
00:11:07.600 --> 00:11:09.240
zegt dat als computertaal.

175
00:11:10.180 --> 00:11:13.960
Maar dat is dus mijn werk om daar dan wel daadwerkelijk

176
00:11:13.960 --> 00:11:15.660
een stuk software tegenaan te zetten,

177
00:11:15.940 --> 00:11:19.420
zodat ze, hoe zij al tegen elkaar praten,

178
00:11:19.540 --> 00:11:22.020
om dat dan ook daadwerkelijk in de computer te kunnen zetten,

179
00:11:22.480 --> 00:11:24.220
en op die manier software te kunnen maken.

180
00:11:24.540 --> 00:11:28.360
Uiteindelijk is dan het doel om het probleem dat die mensen,

181
00:11:29.320 --> 00:11:33.620
dat dat domein en de mensen in dat domein aan het oplossen zijn,

182
00:11:34.600 --> 00:11:39.400
om ze daarmee te helpen met een stuk tooling in de vorm van een DSL,

183
00:11:39.720 --> 00:11:42.700
zodat ze met een spreekwaardelijke druk op de knop

184
00:11:42.700 --> 00:11:45.520
de software die zij nodig hebben om hun doel te verwezenlijken,

185
00:11:45.520 --> 00:11:48.760
ook daadwerkelijk kunnen verwezenlijken.

186
00:11:50.860 --> 00:11:52.600
En moet ik het zien als een stuk vertaling?

187
00:11:53.680 --> 00:11:57.560
Want je zei zelf, het moet vertaald worden dat de computer het gaat snappen.

188
00:11:57.820 --> 00:11:58.560
Zeg ik dat goed?

189
00:11:59.840 --> 00:12:02.820
Ja, vertaling of een soort van precisering.

190
00:12:06.060 --> 00:12:09.360
Een voorbeeld is wat ik doe bij de Belastingdienst.

191
00:12:09.360 --> 00:12:13.480
Daar werk ik aan een product dat heet ALEF.

192
00:12:13.580 --> 00:12:16.160
Hij staat voor Agile Law Execution Factory.

193
00:12:17.540 --> 00:12:24.020
En wat je daarmee kunt doen is dat als je een wet moet uitvoeren,

194
00:12:24.160 --> 00:12:28.360
bijvoorbeeld een blastingwet, inkomstenheffing of iets dergelijks,

195
00:12:30.020 --> 00:12:33.620
hoe je dat normaal gesproken doet qua softwareontwikkeling is

196
00:12:33.620 --> 00:12:36.320
je kunt niet zo'n wettext pakken en maar gewoon een beetje gaan programmeren.

197
00:12:36.560 --> 00:12:38.900
Dat gaat niet werken, dat weten we allemaal.

198
00:12:39.540 --> 00:12:44.260
Dus wat er nou gebeurt is dat er een legertje zogenaamde regelanalysten,

199
00:12:44.480 --> 00:12:49.180
dat zijn zeg maar businessanalysten met een sterke juridische en financiële inslag,

200
00:12:50.320 --> 00:12:55.100
die gaan die wetten live en destilleren daar een heel pakket aan regels uit.

201
00:12:55.860 --> 00:13:01.200
En regels hebben dan zeg maar een vorm van als een natuurlijk persoon

202
00:13:01.200 --> 00:13:04.880
aan deze en deze voorwaren voldoet dan is die belastingplichtig.

203
00:13:05.600 --> 00:13:10.200
En vervolgens heb je nog heel veel andere regels die nou precies specificeren

204
00:13:10.200 --> 00:13:13.100
hoeveel belasting je dan moet gaan betalen en zo.

205
00:13:16.180 --> 00:13:20.620
En normaal gesproken wordt dat vastgelegd in ontzettend lijvige Word documenten.

206
00:13:20.760 --> 00:13:26.000
Dus dan heb je echt honderden, misschien wel duizenden pagina's aan dat soort regels

207
00:13:26.000 --> 00:13:29.120
in natuurlijke taal gewoon in een tekstwerker ingetikt.

208
00:13:30.520 --> 00:13:33.040
Wat je nou met ons project kunt doen of ons product kunt doen

209
00:13:33.040 --> 00:13:39.280
is die regels in plaats van in een tekstwerker intypen in ons product intypen.

210
00:13:39.980 --> 00:13:45.460
En dan wordt het gelijk gecontroleerd van klopt wel wat je zegt.

211
00:13:46.460 --> 00:13:48.300
Natuurlijk persoon, wat bedoel je daar precies mee?

212
00:13:49.100 --> 00:13:51.680
Heeft hij wel een inkomen? Dat soort zaken.

213
00:13:52.420 --> 00:13:54.340
Je wordt ook heel erg geholpen bij het intypen.

214
00:13:54.780 --> 00:13:56.440
Dus oh, je hebt het over een natuurlijke persoon.

215
00:13:57.180 --> 00:14:00.260
Dan moet je waarschijnlijk het ergens ook hebben over een inkomen

216
00:14:00.260 --> 00:14:04.740
of je kinderen of je partneren of dat soort zaken.

217
00:14:05.100 --> 00:14:06.440
Dus dat wordt allemaal heel erg gecontroleerd.

218
00:14:06.520 --> 00:14:11.000
Dus het ziet er nou steeds uit als iets als Nederlands.

219
00:14:11.080 --> 00:14:12.980
Het leest ook gewoon als Nederlands.

220
00:14:13.220 --> 00:14:19.760
Alleen eigenlijk elk woord in zo'n regelsin is gecontroleerd

221
00:14:19.760 --> 00:14:23.080
en heeft een bepaalde betekenis.

222
00:14:24.000 --> 00:14:28.120
En dat heeft als gevolg dat dat heel precies is vastgelegd.

223
00:14:28.120 --> 00:14:29.720
Dus het ziet er nog steeds hetzelfde uit

224
00:14:29.720 --> 00:14:31.560
alsof je het in een woord had ingetikt.

225
00:14:32.140 --> 00:14:34.860
Alleen het heeft echt betekenis en de computer kan er echt wat mee.

226
00:14:34.960 --> 00:14:37.840
En je kunt er ook echt software mee maken en software mee genereren.

227
00:14:37.920 --> 00:14:40.260
Dus dat is ook precies wat die regelandanalysten doen.

228
00:14:41.440 --> 00:14:41.880
Ah, precies, ja.

229
00:14:42.340 --> 00:14:43.980
Ja, het is eigenlijk inderdaad toch, ja,

230
00:14:44.000 --> 00:14:46.240
ik zou het dan zelf inderdaad toch het meest vertalen

231
00:14:46.240 --> 00:14:50.040
als een vertaalslag van de regels

232
00:14:50.040 --> 00:14:53.740
naar inderdaad de regels die de computer kan begrijpen.

233
00:14:54.100 --> 00:14:57.120
Ja, die vertaalslag hoort er zeg maar

234
00:14:57.120 --> 00:14:59.760
het vertaalslag hoort erbij.

235
00:15:00.160 --> 00:15:05.360
Dat is uiteindelijk de meerwaren die deze aanpak heeft.

236
00:15:05.560 --> 00:15:08.980
Namelijk iets dat je in zo'n DSL hebt opgeschreven

237
00:15:08.980 --> 00:15:12.500
om die automatisch te kunnen vertalen naar iets dat

238
00:15:12.500 --> 00:15:13.900
dat je ook daadwerkelijk kunt executeren,

239
00:15:14.140 --> 00:15:15.820
dat je dat daadwerkelijk kunt uitvoeren.

240
00:15:16.520 --> 00:15:17.660
Ja, dat stukje genereren.

241
00:15:18.160 --> 00:15:19.860
Ja, en het fijne is dat, nou ja,

242
00:15:19.960 --> 00:15:23.080
eigenlijk zoals het zelfde is bij Mendix gebeurde

243
00:15:23.080 --> 00:15:25.120
dat echt met een druk op de knop

244
00:15:25.120 --> 00:15:27.360
rolt daar een stuk software uit waar verder geen

245
00:15:27.360 --> 00:15:30.400
programmeur meer aan te pas komt om daar iets aan te veranderen

246
00:15:30.400 --> 00:15:32.120
of aan toe te voegen.

247
00:15:33.160 --> 00:15:35.400
En dat scheelt dus een heleboel moeite

248
00:15:35.400 --> 00:15:37.080
in de zin van

249
00:15:37.080 --> 00:15:39.600
je hebt dus niet meer programmeurs nodig die je echt

250
00:15:39.600 --> 00:15:42.220
regeltje voor regeltje, dat allemaal gaan lopen

251
00:15:42.220 --> 00:15:45.120
vertalen eerst naar code, zodat die code nou vervolgens

252
00:15:45.880 --> 00:15:47.180
het goede ding kan doen.

253
00:15:47.760 --> 00:15:49.500
Dan moet je die code natuurlijk wel gaan testen

254
00:15:49.500 --> 00:15:51.120
en derein gelijken, dus dan gaat er maar gesproken

255
00:15:51.120 --> 00:15:53.260
heel veel moeite in zitten en nu sla je die stap

256
00:15:53.260 --> 00:15:55.740
eigenlijk in een keer over doordat

257
00:15:56.600 --> 00:15:59.260
als je die regels in ons product hebt ingetikt

258
00:16:00.180 --> 00:16:03.660
dan weet je gewoon van oké als die uitgevoerd gaan worden

259
00:16:03.660 --> 00:16:05.780
dan klopt die uitvoering ook

260
00:16:06.500 --> 00:16:08.900
en de regal analisten kunnen dan bijvoorbeeld ook testgevallen

261
00:16:09.560 --> 00:16:11.260
tegen aan hangen

262
00:16:11.860 --> 00:16:14.220
zodat ze zelf direct kunnen zien van oké

263
00:16:14.220 --> 00:16:15.840
er gebeurt al een keer inderdaad het goede mee.

264
00:16:17.660 --> 00:16:20.000
Maar wordt dat dan ook nu nog veel gebruikt want

265
00:16:20.000 --> 00:16:21.300
ja hoe vaak is er een

266
00:16:21.300 --> 00:16:23.420
een wetswijziging in het belastingstelsel

267
00:16:23.820 --> 00:16:26.540
en hoe vaak worden dit soort producten dan aangepast?

268
00:16:27.420 --> 00:16:29.740
Vaak, heel vaak eigenlijk

269
00:16:29.740 --> 00:16:32.280
sowieso wetswijzigingen zijn er

270
00:16:32.280 --> 00:16:33.860
nou om de havenklap

271
00:16:33.860 --> 00:16:36.560
er wordt steeds wel iets

272
00:16:36.840 --> 00:16:39.400
in de belastingwetgeving aangepast

273
00:16:39.400 --> 00:16:41.700
dat, nou ja

274
00:16:41.700 --> 00:16:43.420
er zijn heel veel

275
00:16:43.420 --> 00:16:45.560
belastingmiddelen zoals dat heet

276
00:16:46.060 --> 00:16:47.900
er wordt ontzettend veel

277
00:16:47.900 --> 00:16:51.280
ontzettend veel kleine stukjes worden er steeds aangepast

278
00:16:52.120 --> 00:16:54.480
voor het meest in het oog springende voorbeeld is

279
00:16:56.040 --> 00:16:56.520
spinstjesdag

280
00:16:56.520 --> 00:16:58.460
daar wordt voor de loonheffing elk jaar

281
00:16:58.460 --> 00:17:01.420
er worden weer wat percentages aangepast

282
00:17:01.420 --> 00:17:02.760
nou dat is ook een

283
00:17:02.760 --> 00:17:04.180
wetswijziging van de wet

284
00:17:04.180 --> 00:17:06.120
en dat moet dus ook doorgevoerd worden

285
00:17:07.280 --> 00:17:08.720
en is die

286
00:17:08.720 --> 00:17:10.640
doorvoering van zo'n

287
00:17:10.640 --> 00:17:12.580
van zo'n wetswijziging is dat dan eigenlijk net zo simpel

288
00:17:12.580 --> 00:17:14.040
als in

289
00:17:14.040 --> 00:17:16.560
in het stuk DSL daar pas je het aan

290
00:17:16.560 --> 00:17:18.420
en vervolgens komt er volledig een

291
00:17:18.420 --> 00:17:19.380
applicatie uitrollen

292
00:17:19.380 --> 00:17:21.160
Wouter, hoe ver is dat geautomatiseerd?

293
00:17:21.160 --> 00:17:25.300
Dat is inderdaad precies de mate waarin het geautomatiseerd is.

294
00:17:25.500 --> 00:17:29.800
Op het moment dat je de dingen in ons product hebt gedaan, dan is het een kwestie van

295
00:17:29.800 --> 00:17:33.160
een percentage aanpassen of eigenlijk beter gezegd zeggen van

296
00:17:33.160 --> 00:17:37.040
tot aan Prinsjesdag of tot Prinsjesdag geldt dit percentage

297
00:17:37.040 --> 00:17:39.520
en na deze Prinsjesdag geldt dit percentage.

298
00:17:41.900 --> 00:17:43.640
En hij herkent ook woorden als Prinsjesdag?

299
00:17:44.220 --> 00:17:49.860
Nou herkennen, alles dat je gebruikt moet je wel ergens gaan definiëren.

300
00:17:51.380 --> 00:17:53.180
Prinsjesdag is niet helemaal nodig om te definiëren.

301
00:17:53.340 --> 00:17:57.280
Dat is meer een procesding of een naam die wij eraan gegeven hebben.

302
00:17:58.720 --> 00:18:02.440
Maar bijvoorbeeld wat je typisch terug ziet is een begrip als een

303
00:18:02.440 --> 00:18:07.700
natuurlijk persoon, omdat wij zijn natuurlijke personen zoals dat heet voor de wet.

304
00:18:08.440 --> 00:18:09.640
Dus daar wordt heel veel aan opgehangen.

305
00:18:13.200 --> 00:18:17.100
Nu heb je het voorbeeld bij Belastingdienst genoemd.

306
00:18:17.300 --> 00:18:22.320
Zijn er ook andere projecten waarvan jij weet die ook op deze manier software ontwikkelen?

307
00:18:22.600 --> 00:18:24.640
Ja, stiekem zijn er heel veel DSL's.

308
00:18:26.040 --> 00:18:31.140
Heel veel daarvan die ga je ook nooit zien omdat die namelijk binnen bedrijven worden gebruikt

309
00:18:31.140 --> 00:18:33.360
en die komen dat bedrijf nooit uit.

310
00:18:34.840 --> 00:18:41.260
Dus wat dat betreft, hoeveel DSL's er zijn?

311
00:18:41.980 --> 00:18:44.200
Ik heb echt geen idee. Ik weet dat er heel veel zijn.

312
00:18:44.360 --> 00:18:46.940
En ik weet dat er heel veel ontzettend onzichtbaar zijn.

313
00:18:48.380 --> 00:18:51.660
Maar ja, één voorbeeld daarvan is al wat ik doe bij de Belastingdienst.

314
00:18:51.940 --> 00:18:53.300
Want dat is geen open source.

315
00:18:53.480 --> 00:18:58.820
Dus dat wordt alleen binnen de Belastingdienst gebruikt voor een heel aantal projecten.

316
00:18:59.500 --> 00:19:02.240
En dat is dus ook alleen bekend binnen Belastingdienst.

317
00:19:02.240 --> 00:19:04.920
Hoe dat precies in elkaar zit en hoe je dat gebruikt.

318
00:19:05.240 --> 00:19:06.760
Dat is wel heel jammer aan de ene kant.

319
00:19:06.920 --> 00:19:09.980
En aan de andere kant, we kunnen het ook niet gelijk open source maken.

320
00:19:10.420 --> 00:19:14.220
En ik denk dat er heel veel DSL's zijn waar hetzelfde voor geldt.

321
00:19:14.240 --> 00:19:17.500
Namelijk dat ze wel bestaan.

322
00:19:18.100 --> 00:19:20.240
Soms weten mensen zelfs dat het een DSL is.

323
00:19:20.280 --> 00:19:20.960
Ook niet altijd.

324
00:19:22.580 --> 00:19:25.540
Maar dat heel veel van dit soort oplossingen, dat die er gewoon zijn,

325
00:19:26.040 --> 00:19:29.060
maar niet bekend zijn buiten de situatie waarin ze gebruikt worden.

326
00:19:29.740 --> 00:19:30.280
Ja.

327
00:19:33.060 --> 00:19:36.720
En toevallig hadden we daar ook een vraag over rondom open source.

328
00:19:37.780 --> 00:19:41.460
Zijn er open source DSL's out there?

329
00:19:42.060 --> 00:19:43.600
Ja, er zijn er gelukkig heel veel.

330
00:19:44.120 --> 00:19:46.920
Die worden niet altijd zo genoemd.

331
00:19:47.640 --> 00:19:49.200
Maar er zijn er echt ontzettend veel.

332
00:19:50.440 --> 00:19:55.300
De term slaat eigenlijk ook op heel veel talen die er gewoon zijn.

333
00:19:56.520 --> 00:19:57.720
Niet op programmeertalen.

334
00:19:57.720 --> 00:20:01.860
Heel expliciet, want een programmeertaal is zo generiek mogelijk.

335
00:20:02.160 --> 00:20:04.880
Dus dat is eigenlijk precies het tegengestelde van een domeinspecifieke taal.

336
00:20:05.080 --> 00:20:09.700
Dat ding is namelijk domein A-specifiek en heel generiek.

337
00:20:10.300 --> 00:20:14.500
Maar er zijn heel veel talen ook binnen software ontwikkeling

338
00:20:14.500 --> 00:20:17.620
die voor een specifiek doeleinde gemaakt zijn.

339
00:20:18.360 --> 00:20:20.180
Een standaard voorbeeld is bijvoorbeeld Make.

340
00:20:20.920 --> 00:20:22.860
Ik weet niet of je wel eens een new make gebruikt hebt.

341
00:20:23.600 --> 00:20:25.260
Nou, het is een heel klein taaltje.

342
00:20:25.260 --> 00:20:28.040
Je kunt er wel heel veel mee doen,

343
00:20:28.220 --> 00:20:31.060
maar als je kijkt wat er aan syntax mogelijkheden in zit,

344
00:20:31.260 --> 00:20:33.080
dan is dat best beperkt.

345
00:20:33.440 --> 00:20:35.840
En dat heeft een heel duidelijk doel namelijk,

346
00:20:35.840 --> 00:20:40.160
gegeven een bak files maakt daar uiteindelijk een executable mee.

347
00:20:43.120 --> 00:20:44.600
Andere domeinspecifieke talen zijn,

348
00:20:44.840 --> 00:20:47.160
CSS kun je bijvoorbeeld zien als een domeinspecifieke taal.

349
00:20:47.380 --> 00:20:52.100
Het heeft een heel duidelijk doel, namelijk defineer layout, defineer styling.

350
00:20:52.740 --> 00:20:56.300
Het heeft ook een hele simpele syntax eigenlijk.

351
00:20:56.680 --> 00:20:58.500
Er zit vrij weinig in.

352
00:20:59.040 --> 00:21:01.760
Dat is eigenlijk wel een hallmark van DSL,

353
00:21:01.940 --> 00:21:06.180
dat de syntax is vrij beperkt.

354
00:21:07.700 --> 00:21:11.020
De notatie is domeinspecifiek.

355
00:21:11.180 --> 00:21:13.100
Er is een specifiek doel.

356
00:21:14.780 --> 00:21:16.350
En dan zit je al vrij snel op een DSL.

357
00:21:17.300 --> 00:21:19.260
Maar wat eigenlijk nog veel interessanter is dan

358
00:21:19.260 --> 00:21:21.420
dit soort technische DSL's,

359
00:21:21.420 --> 00:21:22.900
wat ik dan business DSL's noem,

360
00:21:23.300 --> 00:21:26.000
dat zijn dus de DSL's die echt in een business gebruikt worden,

361
00:21:26.080 --> 00:21:29.480
die echt door niet-developers gebruikt worden,

362
00:21:30.880 --> 00:21:33.260
die wel een interessant probleem hebben om op te lossen,

363
00:21:34.100 --> 00:21:36.220
waarbij het heel erg kan helpen als je ze tools geeft

364
00:21:36.220 --> 00:21:38.740
om dat via een computer te doen.

365
00:21:39.000 --> 00:21:41.360
Ja, dus in plaats van de hoofden te laten zweven,

366
00:21:41.820 --> 00:21:44.680
dan programeer je, ja, noem niet programeeren,

367
00:21:44.740 --> 00:21:46.360
maar je regelt het zeg maar in,

368
00:21:46.360 --> 00:21:49.740
dat ook heel veel stukken van hun kennis

369
00:21:49.740 --> 00:21:53.440
ook daar natuurlijk in de DSL gewaarbord wordt.

370
00:21:53.560 --> 00:21:54.680
Exact, exact dat, ja.

371
00:21:55.200 --> 00:21:56.480
En de grap van de domeinexperts is,

372
00:21:56.520 --> 00:21:58.280
het zijn overdag mijn echt experts.

373
00:21:59.200 --> 00:22:00.320
Die mensen zijn hartstikke slim

374
00:22:00.320 --> 00:22:04.580
en ze hebben misschien geen programeerachtergrond.

375
00:22:05.180 --> 00:22:06.680
Maar ze krijgen het echt wel voor elkaar.

376
00:22:07.320 --> 00:22:11.580
Dus je ziet ook heel veel mensen die die dingen in Excel doen.

377
00:22:12.340 --> 00:22:14.840
Ik grap wel eens, Excel is de meest gebruikte programeer-

378
00:22:14.840 --> 00:22:17.580
en modeleeromgeving in de wereld.

379
00:22:18.220 --> 00:22:20.500
En dat vind ik nog steeds ontzettend waard.

380
00:22:20.700 --> 00:22:23.740
Je ziet gewoon mensen die echt ontzettend moeilijke,

381
00:22:24.020 --> 00:22:26.320
complexe dingen in Excel maken.

382
00:22:27.460 --> 00:22:31.040
Ja, en dat is meestal bubbelt daar een soort

383
00:22:31.040 --> 00:22:33.680
met van DSL onder de oppervlakte.

384
00:22:34.560 --> 00:22:35.520
Ja, precies.

385
00:22:36.260 --> 00:22:37.780
Ja, dat is een, ja, precies.

386
00:22:37.860 --> 00:22:40.840
Dat is echt gewoon een tool wat gebruikt wordt nu

387
00:22:40.840 --> 00:22:43.520
om het te bewaken zeg maar, die kennis en die expertise.

388
00:22:44.660 --> 00:22:46.180
Ja, dat is wel leuk om te zien.

389
00:22:47.300 --> 00:22:50.480
En even kijken hoor, want ja, iets wat op mij ook altijd,

390
00:22:51.220 --> 00:22:54.180
de vraag die ik altijd bij mij opborrelt als ik zoiets lees

391
00:22:54.180 --> 00:22:55.920
en dan begin ik het interessant te vinden.

392
00:22:56.440 --> 00:22:58.400
Maar stel nou voor dat ik zou beginnen,

393
00:22:59.020 --> 00:23:00.820
hoe begin ik met zoiets?

394
00:23:01.400 --> 00:23:03.520
Met het maken van een DSL, dat bedoel je.

395
00:23:06.220 --> 00:23:09.960
Het belangrijkste is dat je ziet of realiseert

396
00:23:09.960 --> 00:23:13.000
dat er een domein is met een specifiek doel

397
00:23:13.880 --> 00:23:18.240
waarmee je kunt helpen door een DSL te maken.

398
00:23:19.360 --> 00:23:20.680
Dus als je bijvoorbeeld kijkt naar,

399
00:23:20.760 --> 00:23:23.000
iemand heeft iets gemaakt in Excel, iets heel ingewikkelds.

400
00:23:25.520 --> 00:23:28.440
Dat is voor mij meestal een teken van,

401
00:23:29.980 --> 00:23:33.320
oké, Excel is niet de meest briljante tool voor programmeerwerk.

402
00:23:33.620 --> 00:23:37.020
Het is ontzettend handig om snel iets in elkaar te kunnen zetten

403
00:23:37.020 --> 00:23:40.380
dat je veel feedback geeft over wat je aan het doen bent.

404
00:23:40.380 --> 00:23:43.420
Maar uiteindelijk kun je daar niet echt de software mee maken.

405
00:23:44.860 --> 00:23:47.380
Maar er zit wel heel veel in de tool zelf

406
00:23:47.380 --> 00:23:48.920
om dingen te realiseren.

407
00:23:49.040 --> 00:23:52.320
Dus er zit een bepaalde mate van programmeermogelijkheden in.

408
00:23:52.360 --> 00:23:54.020
Je kunt formules maken en dergelijke.

409
00:23:54.100 --> 00:23:56.660
Dus als je iets groots en moeilijks in Excel gemaakt hebt,

410
00:23:57.420 --> 00:24:01.200
dan is de kans heel groot dat je met een DSL

411
00:24:01.200 --> 00:24:03.460
een betere softwareoplossing mee kunt maken.

412
00:24:04.840 --> 00:24:08.140
En waar je dan mee zou moeten beginnen is

413
00:24:08.140 --> 00:24:10.140
om te kijken wat zijn je onderliggende concepten,

414
00:24:11.520 --> 00:24:14.260
je basisconcepten, je basisprincipes

415
00:24:14.260 --> 00:24:18.140
die jij in je Excel sheet hebt gezet.

416
00:24:20.640 --> 00:24:23.300
Dus als je financiële dingen hebt,

417
00:24:24.820 --> 00:24:28.240
bijvoorbeeld je doet je financiële administratie in Excel

418
00:24:28.240 --> 00:24:29.900
om maar iets te noemen.

419
00:24:31.400 --> 00:24:34.760
De basisconcepten die je daar heel makkelijk in zou kunnen herkennen

420
00:24:34.760 --> 00:24:41.760
is waarschijnlijk rekening, mutatie, facturen,

421
00:24:43.900 --> 00:24:44.560
dat soort zaken.

422
00:24:44.980 --> 00:24:48.820
Hoe heb je afschrijfbare aanschaffen gedaan,

423
00:24:49.280 --> 00:24:50.800
dat soort zaken allemaal.

424
00:24:51.880 --> 00:24:54.100
Dat zullen zeker de ZZP'ers onder ons herkennen,

425
00:24:54.740 --> 00:24:55.300
dat soort dingen.

426
00:24:55.720 --> 00:24:57.800
Dus dat zijn dan basisconcepten

427
00:24:57.800 --> 00:25:00.480
waar je wat mee kunt doen.

428
00:25:01.700 --> 00:25:04.860
En leent elke programmeertaal daarvoor,

429
00:25:05.060 --> 00:25:06.400
om zoiets te bouwen?

430
00:25:07.060 --> 00:25:08.500
Ja, in principe wel,

431
00:25:08.560 --> 00:25:11.480
maar sommigen zijn wel wat geschikter dan anderen,

432
00:25:11.760 --> 00:25:12.260
natuurlijk.

433
00:25:13.340 --> 00:25:16.220
Want waar je uiteindelijk je domainexperts het meeste mee helpt

434
00:25:16.220 --> 00:25:17.700
is een goede interface,

435
00:25:18.320 --> 00:25:19.440
een goede gebruikersinterface,

436
00:25:20.440 --> 00:25:24.900
om jou DSL Proza, noem ik het dan vaak in het Nederlands,

437
00:25:25.180 --> 00:25:26.480
mee in te kunnen tikken.

438
00:25:28.440 --> 00:25:32.560
Sommige programmeertaalen helpen je daar wat meer in dan anderen.

439
00:25:33.040 --> 00:25:35.440
Bijvoorbeeld in het boek gebruik ik Javascript,

440
00:25:35.600 --> 00:25:37.320
want Javascript zit in een browser,

441
00:25:38.780 --> 00:25:40.480
en in een browser is het best makkelijk

442
00:25:40.480 --> 00:25:43.060
om fatsoenlijke UIs te maken.

443
00:25:44.880 --> 00:25:45.560
Oké, mooi.

444
00:25:46.320 --> 00:25:48.320
En ik denk ook TypeScript dan?

445
00:25:50.360 --> 00:25:52.040
Ja, in het boek toevallig niet.

446
00:25:52.180 --> 00:25:54.000
Ik had het graag gebruikt,

447
00:25:54.000 --> 00:25:56.840
maar ik heb maar dan eindig hoeveelheid pagina's,

448
00:25:56.840 --> 00:25:58.660
dus ik moest een afweging maken tussen

449
00:26:00.300 --> 00:26:04.880
hoeveel pagina's investeer ik in dingen met beeld van TypeScript uitleggen

450
00:26:04.880 --> 00:26:09.020
en dus misschien potentieel iets over TypeScript moeten uitleggen.

451
00:26:09.600 --> 00:26:13.620
Versus als ik het nou gewoon in zo'n vanille mogelijk Javascript doe,

452
00:26:14.940 --> 00:26:16.640
hoeveel mis ik dan van TypeScript?

453
00:26:17.360 --> 00:26:18.340
Ja, dat is ook zo.

454
00:26:18.920 --> 00:26:19.440
Interessant.

455
00:26:20.580 --> 00:26:22.020
Iets wat ik me nu afhaag,

456
00:26:23.120 --> 00:26:28.740
de laatste heel wat jaren is ook steeds meer machine learning en AI in opkomst.

457
00:26:28.900 --> 00:26:33.620
Zie je dat ook terug bij dit soort vrij domein specifieke oplossingen?

458
00:26:34.140 --> 00:26:37.960
Dus, of moet het eigenlijk altijd echt heel erg specifiek gedefinieerd zijn

459
00:26:37.960 --> 00:26:39.080
en blijft het daar ook bij?

460
00:26:39.960 --> 00:26:40.300
Nou,

461
00:26:43.300 --> 00:26:46.500
dat laatste sowieso, want dat is juist de kracht van DSL's,

462
00:26:46.500 --> 00:26:51.340
dus het feit dat je dingen juist zo strikt en zo strak hebt vastgelegd,

463
00:26:51.480 --> 00:26:56.160
dat maakt het juist mogelijk om ook daadwerkelijk dingen te genereren.

464
00:26:56.700 --> 00:27:00.560
Wat het ook mogelijk maakt is juist dat het heel duidelijk is vastgelegd

465
00:27:00.560 --> 00:27:04.700
van wat hetgene is wat er nou juist moet gebeuren.

466
00:27:04.880 --> 00:27:09.540
Bijvoorbeeld, je gaat niet een stuk belastingwetgeving

467
00:27:09.540 --> 00:27:12.680
met behulp van een neural netwerk uitvoeren.

468
00:27:13.900 --> 00:27:17.700
Dat doe je sowieso niet, omdat je moet kunnen uitleggen wat er gebeurd is.

469
00:27:18.920 --> 00:27:21.760
Niemand gaat akkoord met van ja, we hebben jouw belastingaangifte

470
00:27:21.760 --> 00:27:24.580
door een neural netwerk gehaald en dit getal kwam eruit,

471
00:27:24.640 --> 00:27:26.200
dus daar moet je het maar mee doen.

472
00:27:26.760 --> 00:27:30.400
Dus de uitlegbaarheid van wat er gebeurt is heel belangrijk

473
00:27:30.400 --> 00:27:35.020
en DSL's helpen daar juist bij omdat op een voor de MijnExpress

474
00:27:35.020 --> 00:27:37.260
heel begrijpelijke manier staat vastgelegd van,

475
00:27:37.440 --> 00:27:40.440
dit is hoe een bepaalde berekening gaat

476
00:27:40.440 --> 00:27:42.180
en dan kun je tot een bepaalde precissing komen,

477
00:27:42.460 --> 00:27:44.120
dus dat kun je gaan debuggen als het ware

478
00:27:44.120 --> 00:27:49.280
en dat kun je debuggen met behulp van de taal en de concepten

479
00:27:49.280 --> 00:27:51.240
die de MijnExpress gewend zijn.

480
00:27:53.580 --> 00:27:57.300
Waar ik wel een mogelijkheid zie voor AI en machine learning

481
00:27:57.300 --> 00:28:00.960
is in hoe je dan uiteindelijk tot die precieze omschrijving

482
00:28:00.960 --> 00:28:03.300
met behulp van een stuk DSL Proza komt.

483
00:28:04.580 --> 00:28:06.900
En daar zou AI best wel wat kunnen helpen,

484
00:28:07.260 --> 00:28:09.380
dat is dan wel onderzoek dat allemaal in de kinderschoenen staat,

485
00:28:09.380 --> 00:28:11.780
maar je kunt je bijvoorbeeld best voorstellen

486
00:28:11.780 --> 00:28:16.400
dat het voor een AI oplossing makkelijker is

487
00:28:16.400 --> 00:28:20.260
om datgene wat de AI leert,

488
00:28:20.300 --> 00:28:24.320
leert tussen aanhalingshaken of herkent in een bepaalde situatie

489
00:28:24.320 --> 00:28:29.640
om daar een stuk DSL Proza voor te genereren

490
00:28:29.640 --> 00:28:33.460
dan bijvoorbeeld voor een algemeen stukje programmeertaal.

491
00:28:34.860 --> 00:28:36.300
We hadden laatst die, hoe heet dat ding nou?

492
00:28:36.300 --> 00:28:37.580
Die G3T.

493
00:28:38.260 --> 00:28:40.040
Dat je maar gewoon een beetje begint te tikken

494
00:28:40.040 --> 00:28:45.020
en dat dat ding met wat programmeertalcode

495
00:28:45.020 --> 00:28:48.620
of wat algemene programmeertalcode terugkomt

496
00:28:48.620 --> 00:28:51.160
en zo, of een geïmplementeerde UI.

497
00:28:53.840 --> 00:28:56.800
Dat soort dingen, dat is een soort van gimmick,

498
00:28:57.060 --> 00:29:01.140
maar ik denk als je dat als doel maakt

499
00:29:01.140 --> 00:29:03.100
om daar een stuk DSL Proza van te maken

500
00:29:03.100 --> 00:29:06.500
dat dat ook voor domeinen specifiek best heel nuttig kan zijn.

501
00:29:06.880 --> 00:29:08.100
Dus in dit geval is het domein

502
00:29:09.420 --> 00:29:12.960
een UI met wat knoppen en wat invoervelden als het ware.

503
00:29:14.100 --> 00:29:16.400
Dus dat is ook al een soort van DSL.

504
00:29:16.900 --> 00:29:19.400
Als je dan een ander domein kiest,

505
00:29:19.880 --> 00:29:23.900
bijvoorbeeld een regel die je afleid uit belasting werd gegeven,

506
00:29:24.200 --> 00:29:27.040
dan zou je dat misschien ook wel kunnen doen.

507
00:29:29.400 --> 00:29:30.660
Ja, hartstikke mooi.

508
00:29:33.500 --> 00:29:35.040
Je noemde het net zelf ook al,

509
00:29:35.040 --> 00:29:36.880
ik heb het ook in de intro geroepen.

510
00:29:38.120 --> 00:29:41.000
Ja, je bent toch begonnen om een boek te gaan schrijven.

511
00:29:42.300 --> 00:29:44.240
Waar kwam dat ineens vandaan?

512
00:29:45.060 --> 00:29:47.100
Nou, ik wilde dat eigenlijk al een tijdje.

513
00:29:48.380 --> 00:29:51.040
En toen kwam Manning Publications mij op het spoor.

514
00:29:51.900 --> 00:29:54.600
Dus die hebben mij een mailtje gestuurd

515
00:29:54.600 --> 00:29:58.580
van zoals we praten over het schrijven van een boek.

516
00:29:59.100 --> 00:30:00.500
En wil je dat, like je dat wat?

517
00:30:02.120 --> 00:30:05.600
Ja, graag was twee keer het antwoord.

518
00:30:07.260 --> 00:30:08.660
Dus ja, zo doen we.

519
00:30:10.420 --> 00:30:12.860
Dan ga je bij hun eerst door een proces heen.

520
00:30:12.920 --> 00:30:14.860
Dus je moet een pitch schrijven, dat is ook heel gezond.

521
00:30:14.880 --> 00:30:17.680
Gewoon om even uit te leggen van waarom moet dit boek komen?

522
00:30:18.700 --> 00:30:19.980
Waarom is dit boek er nog niet?

523
00:30:20.820 --> 00:30:22.740
Zijn er andere soortgelijke boeken?

524
00:30:23.600 --> 00:30:26.760
En waarom doen die nog niet wat jouw boek wel gaat doen?

525
00:30:28.000 --> 00:30:30.940
En waarom ben jij geschikt om dit boek te schrijven?

526
00:30:31.300 --> 00:30:32.400
Dat soort vragen allemaal.

527
00:30:33.280 --> 00:30:35.680
Hoe zijn ze bij jou gekomen, denk je?

528
00:30:36.280 --> 00:30:38.460
Heb jij een openbaar blog of zo?

529
00:30:38.660 --> 00:30:40.480
Of is dat via via? Hoe loopt zoiets?

530
00:30:41.000 --> 00:30:43.360
Ja, ik denk gewoon internet namens de bekendheid.

531
00:30:43.940 --> 00:30:44.860
Ik weet het niet eens precies.

532
00:30:45.140 --> 00:30:47.660
Ik ben vergeten te vragen hoe ze nou precies bij mij uitkwamen.

533
00:30:48.040 --> 00:30:49.260
Maar ja, ik heb een blog.

534
00:30:51.320 --> 00:30:57.900
Ik heb best wel vaak op bepaalde conferenties dit gebied rondgelopen.

535
00:30:58.060 --> 00:30:59.380
Zoals CodeGeneration.

536
00:31:00.500 --> 00:31:04.480
Zelf een aantal keer met een aantal mensen een conferentie georganiseerd.

537
00:31:04.840 --> 00:31:08.360
Dus mijn naam is op het internet best wel verbonden met dit onderwerp.

538
00:31:10.100 --> 00:31:12.260
Dus ja, toen zijn ze blijkbaar op zoek gegaan.

539
00:31:12.400 --> 00:31:15.160
We willen dat iemand een nieuw boek schrijft over DSL's.

540
00:31:15.580 --> 00:31:16.560
En toen kwamen ze bij mij uit.

541
00:31:16.560 --> 00:31:21.240
Want is het een onderwerp waar veel over geschreven is in het verleden?

542
00:31:21.480 --> 00:31:22.260
Of nu nog steeds wordt?

543
00:31:22.560 --> 00:31:24.780
Ja, er is eigenlijk best wel heel veel geschreven.

544
00:31:26.620 --> 00:31:28.540
Maar wel heel veel academisch.

545
00:31:30.200 --> 00:31:34.820
Het bredere veld van software language engineering, SLA,

546
00:31:34.940 --> 00:31:39.000
dat is eigenlijk de meer officiële term waar DSL's binnenvallen.

547
00:31:39.820 --> 00:31:44.980
Dat is met name op universiteiten best wel een vrij actief onderzoeksgebied.

548
00:31:44.980 --> 00:31:47.080
En ook al tientallen jaren lang.

549
00:31:47.560 --> 00:31:53.440
Eigenlijk zitten DSL's al tient jaren lang in een soort van wederkerende Gortner-hype cycle.

550
00:31:54.820 --> 00:31:56.880
Dat is ook het frustrerende van dit vakgebied.

551
00:31:58.020 --> 00:32:00.600
Dus op zich, er zijn best wel boeken over.

552
00:32:00.700 --> 00:32:08.720
En met name in het academische veld zijn er boeken en zijn er heel veel artikelen over.

553
00:32:09.620 --> 00:32:12.520
Bijvoorbeeld een vrij bekend boek is het Dragon Book.

554
00:32:14.980 --> 00:32:18.920
Van die man ook weer, Aho en Hopcroft.

555
00:32:19.720 --> 00:32:21.120
Die gaat in de show notes?

556
00:32:21.800 --> 00:32:24.880
Ja, het boek is al een jaar of 30 oud.

557
00:32:25.540 --> 00:32:26.320
Bijna 40.

558
00:32:28.620 --> 00:32:32.560
Het wordt nog steeds best wel gebruikt binnen universiteiten.

559
00:32:33.080 --> 00:32:35.700
Hij heeft ook een behoorlijk grote oplage gehad.

560
00:32:35.860 --> 00:32:37.200
Dus dat is best wel een bekend boek.

561
00:32:37.200 --> 00:32:39.080
Maar het is ook gelijk al weer heel oud.

562
00:32:39.320 --> 00:32:41.120
Het is ja, bijna 40 jaar oud.

563
00:32:41.420 --> 00:32:44.120
Het eerste boek en het tweede boek is bijna 30 jaar oud.

564
00:32:44.580 --> 00:32:47.440
Dus het is heel erg low level.

565
00:32:47.540 --> 00:32:49.460
Er wordt heel erg over parsing gepraat.

566
00:32:50.320 --> 00:32:54.380
En hoe je dan bijvoorbeeld bytecode kunt gaan.

567
00:32:54.780 --> 00:32:58.100
Of machinecode zelfs kunt gaan genereren voor je processor.

568
00:32:59.300 --> 00:32:59.980
Dat soort zaken.

569
00:33:00.040 --> 00:33:05.060
En dat is niet meer het niveau waar we tegenwoordig software op maken.

570
00:33:06.220 --> 00:33:10.980
Dus ja, een nieuw boek was best wel weer eens tijd.

571
00:33:11.140 --> 00:33:12.500
Dat heeft Manning dus ook gedacht.

572
00:33:15.260 --> 00:33:18.080
En jouw boek is dus ook veel meer hands-on.

573
00:33:18.500 --> 00:33:21.280
En je kan het bij wijze van spreken meedoen.

574
00:33:21.520 --> 00:33:25.500
Ja, al leesend kun je mee programmeren en je eigen DSL gaan maken.

575
00:33:25.500 --> 00:33:27.740
Ja, absoluut. Dat is ook precies de insteek.

576
00:33:28.860 --> 00:33:33.260
Ik verrijs eigenlijk niet meer dan dat je wat JavaScript gedaan hebt.

577
00:33:33.260 --> 00:33:35.340
Of dat je wel eens wat met JavaScript ontwikkeld hebt.

578
00:33:36.900 --> 00:33:38.760
Of dat je je dat snel eigen kunt maken.

579
00:33:39.340 --> 00:33:41.800
En dat je misschien een beetje webdevelopment gedaan hebt.

580
00:33:41.900 --> 00:33:43.000
Of het eigen kunt maken.

581
00:33:44.220 --> 00:33:46.880
Dat is zeg maar het minimum.

582
00:33:47.860 --> 00:33:53.720
Dus je hoeft echt niks al te weten van software language engineering...

583
00:33:53.720 --> 00:33:54.920
voordat je het boek begint te lezen.

584
00:33:56.300 --> 00:33:59.920
En ga je dan een fictieve use case...

585
00:34:00.780 --> 00:34:03.060
ja, val je die aan door middel van een DSL?

586
00:34:04.000 --> 00:34:04.080
Ja.

587
00:34:04.340 --> 00:34:07.360
Ja, dus we beginnen met het huren van een auto.

588
00:34:08.260 --> 00:34:09.900
Wat komt daar bij kijken?

589
00:34:10.140 --> 00:34:15.440
Dus in dit geval is het domein een autoverhuurbedrijf.

590
00:34:16.520 --> 00:34:20.920
En de domeinexperts die daar zitten, die bedenken...

591
00:34:20.920 --> 00:34:25.800
Nou, als iemand een auto wil huren, hoe bereken je dan de huurprijs?

592
00:34:26.900 --> 00:34:28.700
Zijn er kortingen te vergeven?

593
00:34:29.260 --> 00:34:35.380
Moeten we rekening houden met of iemand schadevrije jaren heeft?

594
00:34:36.640 --> 00:34:39.900
Moet zo iemand een verzekering afnemen of hoeft dat niet per se?

595
00:34:40.360 --> 00:34:41.680
Dat soort dingen allemaal.

596
00:34:43.320 --> 00:34:43.880
Heel interessant.

597
00:34:43.920 --> 00:34:47.740
Dus daar gaat heel veel bedrijfslogica, heel veel businesslogic in zitten.

598
00:34:49.120 --> 00:34:52.440
Dus dat is de use case waar ik mee begin.

599
00:34:53.560 --> 00:34:57.100
Het is wel grappig eigenlijk, zoals je het nu ook uitlegt.

600
00:34:57.240 --> 00:35:03.740
Eigenlijk zijn er zoveel mogelijkheden om een DSL te implementeren.

601
00:35:04.580 --> 00:35:06.640
Daar denk je niet altijd over na.

602
00:35:06.960 --> 00:35:09.520
En heel vaak doe je het volgens mij ook zonder dat je erover nadenkt.

603
00:35:09.760 --> 00:35:11.180
Ben je in een DSL aan het implementeren?

604
00:35:11.720 --> 00:35:15.560
Ja, heel vaak doe je inderdaad traditionele softwareontwikkeling.

605
00:35:15.560 --> 00:35:18.680
Dus bijvoorbeeld bij zo'n autoverhuurbedrijf bedenkt je op een gegeven moment

606
00:35:18.680 --> 00:35:21.240
van ja, we kunnen niet meer op papier of in Excel af.

607
00:35:21.520 --> 00:35:25.380
Dus dan moeten we een softwarebedrijf voor gaan inschakelen.

608
00:35:26.880 --> 00:35:30.980
En als je op de traditionele manier doet, dan ga je requirements verzamelen.

609
00:35:32.120 --> 00:35:32.960
Dat soort zaken.

610
00:35:33.100 --> 00:35:36.540
En dan gaat iemand een echt programma van maken.

611
00:35:37.500 --> 00:35:40.120
Echt de UI maken, database erachter hangen.

612
00:35:40.480 --> 00:35:41.420
Dat soort zaken allemaal.

613
00:35:42.140 --> 00:35:44.160
Dat kan best oké werken.

614
00:35:44.160 --> 00:35:47.140
Alleen dit soort dingen verandert de hele tijd.

615
00:35:47.540 --> 00:35:50.420
Je verandert iets in regelgeving,

616
00:35:50.620 --> 00:35:57.060
zodat je andere voorwaren moet gaan stellen aan het verhuur van een auto.

617
00:35:58.240 --> 00:35:59.420
Een recente voorbeeld.

618
00:36:00.880 --> 00:36:03.340
Mag deze persoon überhaupt wel in deze auto zitten?

619
00:36:04.360 --> 00:36:07.620
Dan moeten we niet eerst vragen stellen over of hij klachten heeft.

620
00:36:07.980 --> 00:36:10.860
Want als hij klachten heeft, dan mag hij niet eens op de kantoor komen

621
00:36:13.320 --> 00:36:15.180
hoeveel mondkapjes moet je meenemen?

622
00:36:15.880 --> 00:36:16.600
Dat soort dingen.

623
00:36:16.820 --> 00:36:19.760
Dat wil je allemaal erbij gaan verwerken

624
00:36:19.760 --> 00:36:22.100
op het moment dat je een autoverhuurbedrijf hebt.

625
00:36:22.520 --> 00:36:23.920
Dus daarvoor moet je je software aanpassen.

626
00:36:24.240 --> 00:36:28.440
Dan kun je weer terug naar die software developers die die software gemaakt hebben.

627
00:36:29.300 --> 00:36:31.900
Maar het is natuurlijk veel fijner voor een autoverhuurbedrijf

628
00:36:31.900 --> 00:36:35.100
als ze dat zelf kunnen doen.

629
00:36:35.880 --> 00:36:37.580
Dus de vraag is dan meer aan de software developers.

630
00:36:37.580 --> 00:36:41.600
Dus maak voor ons een DSL zodat we dit soort dingen zelf kunnen doen.

631
00:36:42.220 --> 00:36:43.480
Precies, ja.

632
00:36:43.660 --> 00:36:48.440
Ja, ik moet ineens denken aan business logic-achtige architecturen ook.

633
00:36:48.560 --> 00:36:50.600
Dus dat je de business logic als het ware

634
00:36:50.600 --> 00:36:55.340
gewoon door de business ook daadwerkelijk laat programmeren weer.

635
00:36:56.040 --> 00:36:57.480
Maar uiteindelijk komt het wel daar op neer.

636
00:36:57.500 --> 00:36:59.620
Exact, ja. Het woord programmeren moet je niet noemen.

637
00:37:00.620 --> 00:37:04.900
Bij business mensen, dat is...

638
00:37:04.900 --> 00:37:07.740
Ja, nee, dat inderdaad. Dan rennen ze hard de andere kant op.

639
00:37:08.860 --> 00:37:10.840
Dat is alleen maar voor nerds.

640
00:37:11.540 --> 00:37:12.480
Ja, echt inderdaad.

641
00:37:12.620 --> 00:37:14.560
Dat soort reacties heb ik heel vaak gehad.

642
00:37:15.940 --> 00:37:17.940
Dat was niet bon ton om het zo te noemen.

643
00:37:18.600 --> 00:37:21.980
Noem het maar configureren of modelleren of specifiseren

644
00:37:21.980 --> 00:37:23.360
of zoiets maar absoluut niet progeren.

645
00:37:23.600 --> 00:37:27.080
Maar inderdaad, uiteindelijk is het tekenzak tenzelfde.

646
00:37:28.080 --> 00:37:31.000
Het verschil is natuurlijk wel, je geeft ze tooling en een taal

647
00:37:31.000 --> 00:37:33.760
waarmee ze dat ook werkelijk zelf kunnen doen.

648
00:37:34.420 --> 00:37:35.960
Ze gaan uit hun expertise,

649
00:37:36.720 --> 00:37:40.540
maar zonder gelijk een hele programmeursopleiding te moeten doen.

650
00:37:40.840 --> 00:37:41.820
Ja, precies.

651
00:37:42.380 --> 00:37:42.780
Nou, mooi.

652
00:37:43.200 --> 00:37:47.780
Ik denk dat we toe zijn aan de vragen uit het publiek.

653
00:37:49.740 --> 00:37:53.320
Vorige week hebben we een post geplaatst in onze chat

654
00:37:53.320 --> 00:37:56.520
om wat vragen te summeren.

655
00:37:57.260 --> 00:38:00.080
We hebben er uiteindelijk eentje van Saber ontvangen.

656
00:38:00.220 --> 00:38:02.660
Die vond ik zelf persoonlijk ook wel interessant

657
00:38:02.660 --> 00:38:05.740
omdat, ja, dat is toch wel wat onduidelijkheid hier en daar.

658
00:38:06.040 --> 00:38:09.900
Maar Saber, die vraagt zich af of jij zou kunnen uitleggen

659
00:38:09.900 --> 00:38:12.520
wat het verschil is, of in ieder geval de verhouding

660
00:38:12.520 --> 00:38:16.600
misschien is tussen model-driven engineering, MDA,

661
00:38:17.160 --> 00:38:20.760
model-driven architecture, MDA, en DSL's.

662
00:38:21.320 --> 00:38:22.960
Ja, dat is een hele interessante vraag.

663
00:38:24.640 --> 00:38:27.260
Ik moet even proberen om daar niet een enorm lang antwoord op te geven,

664
00:38:27.320 --> 00:38:29.400
want hier kun je heel lang om door.

665
00:38:31.040 --> 00:38:34.380
Ten eerste maar even de MD-afkortingen.

666
00:38:35.540 --> 00:38:38.620
Ik gebruik zelf meestal de term model-driven software engineering

667
00:38:39.020 --> 00:38:41.300
of zelfs model-driven software development

668
00:38:41.300 --> 00:38:46.140
om het echt te beperken tot het maken van software.

669
00:38:46.840 --> 00:38:52.460
Want MDA in hele brede zin gaat over het gebruiken van modellen

670
00:38:52.460 --> 00:38:56.760
en je zou dat prescriptieve modellen kunnen noemen,

671
00:38:56.760 --> 00:39:00.380
dus modellen die echt voorschrijven hoe iets in elkaar moet zitten

672
00:39:00.380 --> 00:39:02.140
om engineering te doen.

673
00:39:02.300 --> 00:39:03.680
En dat hoeft niet alleen software te zijn,

674
00:39:03.700 --> 00:39:08.760
maar dat kan bijvoorbeeld ook bruggen, vliegtuigen, gebouwen,

675
00:39:09.600 --> 00:39:10.660
dat soort dingen zijn.

676
00:39:10.960 --> 00:39:13.220
We hebben in Nederland bijvoorbeeld talers zitten

677
00:39:16.720 --> 00:39:18.480
in de defensieindustrie.

678
00:39:19.540 --> 00:39:24.540
En ik weet toevallig dat die best wat aan model-driven engineering doen,

679
00:39:24.540 --> 00:39:29.700
dus echt apparaten specificeren met behulp van modellen.

680
00:39:30.720 --> 00:39:36.020
En dus niet alleen CADCOM, de bouwtekeningen en dergelijke,

681
00:39:36.080 --> 00:39:38.680
maar ook hoe zo'n ding dan gemaakt moet worden.

682
00:39:39.580 --> 00:39:42.460
Zodra er software in zit, hoe software componenten in elkaar zitten,

683
00:39:42.580 --> 00:39:46.680
maar ook hoe die software componenten dan met de fysieke hardware interacteren.

684
00:39:47.640 --> 00:39:50.760
Dat soort modellen, dat is echt model-driven engineering,

685
00:39:51.480 --> 00:39:53.600
omdat er meer dan alleen software aan te pas komt.

686
00:39:53.600 --> 00:39:58.820
Andere bedrijven zoals wat vroeger OC heette tegenwoordig Canon,

687
00:39:59.100 --> 00:40:00.960
begrijp ik, de maker van kopierapparaten,

688
00:40:01.140 --> 00:40:02.840
doet ook aan model-driven engineering,

689
00:40:04.180 --> 00:40:07.880
specificeren van machines en dan uiteraard ook een heleboel software erin,

690
00:40:08.060 --> 00:40:10.400
maar ook dat echt wel uit specificeren van machines.

691
00:40:10.940 --> 00:40:13.600
ASML doet aan model-driven engineering.

692
00:40:15.320 --> 00:40:17.500
Dus dat is eigenlijk het verschil tussen model-driven engineering

693
00:40:17.500 --> 00:40:19.360
en model-driven software development.

694
00:40:19.360 --> 00:40:25.810
Model-driven architecture is inderdaad een heel verwarrend verhaal.

695
00:40:27.560 --> 00:40:31.240
Eigenlijk is model-driven architecture een soort met van merknaam

696
00:40:31.240 --> 00:40:35.840
van de object management group.

697
00:40:36.620 --> 00:40:42.380
Object management group is een groep van organisaties, consortium eigenlijk,

698
00:40:43.140 --> 00:40:49.540
die bijvoorbeeld UML definiëren en OCL en SysML,

699
00:40:49.840 --> 00:40:53.360
allerlei dat soort modeleerd talen.

700
00:40:54.140 --> 00:40:55.980
En die hebben op een gegeven moment bedacht van,

701
00:40:56.160 --> 00:40:58.840
ja, we gaan ook een model-driven engineering

702
00:40:58.840 --> 00:41:02.120
of een model-driven software development standaard bedenken.

703
00:41:02.400 --> 00:41:05.200
En dat hebben ze model-driven architecture genoemd.

704
00:41:06.360 --> 00:41:09.700
Maar dat is eigenlijk gewoon een convention,

705
00:41:09.700 --> 00:41:12.700
een convention die uit dat clubje is voortgekomen,

706
00:41:13.520 --> 00:41:15.220
echt bedacht is door dat clubje.

707
00:41:15.880 --> 00:41:17.900
En het probeert heel precies voor te schrijven

708
00:41:17.900 --> 00:41:19.900
hoe je dan model-driven software development

709
00:41:19.900 --> 00:41:22.860
of model-driven software engineering zou moeten doen.

710
00:41:23.320 --> 00:41:25.740
Dus dat begint dan bij een...

711
00:41:26.440 --> 00:41:30.080
Kijken, de term is, geloof ik, platform-independent model.

712
00:41:30.260 --> 00:41:32.620
Ja, dus een begin met een platform-independent model.

713
00:41:32.660 --> 00:41:35.420
Dan maak je dan een platform-specific model van.

714
00:41:36.580 --> 00:41:39.320
En dan ga je nog een transformatieslag verder dan.

715
00:41:39.320 --> 00:41:42.300
Dan ga je dat lekkerskitje wat code genereren en zo.

716
00:41:44.180 --> 00:41:47.520
En dat is een heel strak keurslijf.

717
00:41:47.940 --> 00:41:50.280
En ik heb nog nooit gezien dat dat werkte.

718
00:41:51.660 --> 00:41:52.900
Oké. Waarom denk je dat?

719
00:41:53.980 --> 00:41:54.980
Het is te strak.

720
00:41:55.280 --> 00:41:57.240
Het probeert je heel erg in zo'n keurslijf te duwen

721
00:41:57.240 --> 00:41:58.900
van ja, je moet het per se op deze manier doen.

722
00:42:00.780 --> 00:42:02.540
En dat werkt in de praktijk niet.

723
00:42:04.020 --> 00:42:06.620
Want die hele convention moet je best wel goed kennen

724
00:42:06.620 --> 00:42:11.640
om het volgens de, nou ja, door hun opgestelde spelregels te kunnen doen.

725
00:42:12.040 --> 00:42:14.120
Doe je dat niet, dan wordt het al snel wat link.

726
00:42:15.860 --> 00:42:19.920
Dus mijn ervaring is dat je het veel beter wat meer kunt loslaten.

727
00:42:20.620 --> 00:42:22.540
En gewoon als principe houdt van

728
00:42:22.540 --> 00:42:24.160
dingen moeten uit een model komen.

729
00:42:25.360 --> 00:42:28.900
Of dingen moeten vanuit DSL Proza gegendereerd worden.

730
00:42:29.880 --> 00:42:31.520
En dat is een veel gezondere insteek

731
00:42:31.520 --> 00:42:33.300
die je veel meer vrijheden geeft

732
00:42:33.300 --> 00:42:35.660
om ook daadwerkelijk het werk aan te krijgen.

733
00:42:35.660 --> 00:42:39.900
Oh ja, en een van de dingen van MDA is dat alles in UML moet.

734
00:42:41.640 --> 00:42:45.740
En UML is heel erg geschikt om

735
00:42:45.740 --> 00:42:47.960
mooie tekeningetjes op cv'tjes te maken.

736
00:42:50.700 --> 00:42:54.300
Maar dat is niet zo geschikt om er echt software mee te gaan specificeren.

737
00:42:55.840 --> 00:42:58.080
Dus wat je vaak ziet als je UML gebruikt

738
00:42:58.080 --> 00:43:01.440
is dat je van die profiles gaat gebruiken en stereotypes.

739
00:43:02.960 --> 00:43:04.180
Maar wat je dan eigenlijk doet

740
00:43:04.180 --> 00:43:08.640
is je maakt in UML een DSL.

741
00:43:09.480 --> 00:43:12.560
Dus om het even terug te grijpen naar dat eerdere verhaal over

742
00:43:12.560 --> 00:43:14.980
ja, als je nou, je hebt iets gemaakt in Excel,

743
00:43:15.040 --> 00:43:16.300
hoe maak je dan een DSL van?

744
00:43:16.640 --> 00:43:18.280
Nou, dan moet je concepten gaan herkennen.

745
00:43:18.960 --> 00:43:22.660
Als je iets in UML gemaakt hebt en je hebt veel stereotype gebruikt,

746
00:43:23.220 --> 00:43:27.400
dan zijn die stereotype eigenlijk altijd de concepten

747
00:43:27.400 --> 00:43:31.600
die je eigenlijke kennis vormen of coderen.

748
00:43:32.300 --> 00:43:36.160
En dan heb je, nou, de conclusie eigenlijk, je hebt UML helemaal niet nodig,

749
00:43:36.220 --> 00:43:39.000
maar je kunt gewoon veel beter een eigen DSL maken

750
00:43:39.000 --> 00:43:42.580
die direct op het niveau van die concepten praat

751
00:43:42.580 --> 00:43:46.600
en UML helemaal overbodig maakt.

752
00:43:48.360 --> 00:43:54.080
Nou, zou je zeggen dat de documentatie van zoiets als model-driven architecture

753
00:43:54.080 --> 00:43:57.320
wel goed is om te kennen of is een keer gezien te hebben?

754
00:43:57.680 --> 00:44:01.000
Dus dat je een beetje de concepten erachter hebt gelezen een keer?

755
00:44:03.760 --> 00:44:08.200
Nou, ik zou zeggen dat als mijn boek klaar is dan zeker niet,

756
00:44:09.180 --> 00:44:11.740
want dan lees je gewoon mijn boek

757
00:44:11.740 --> 00:44:16.640
en dan weet je ook wel wat de belangrijkste concepten zijn

758
00:44:16.640 --> 00:44:19.000
om na te kunnen denken over concepten.

759
00:44:20.180 --> 00:44:24.260
Is dat ook misschien een reden waarom UML toch anno,

760
00:44:24.320 --> 00:44:29.720
anno nu een beetje een stille dood gestorven is in software development land?

761
00:44:29.720 --> 00:44:32.000
Ik denk dat dat er heel veel mee te maken heeft inderdaad.

762
00:44:32.520 --> 00:44:34.200
Er zijn ook wel andere oorzaken.

763
00:44:34.960 --> 00:44:38.920
UML is een ontzettend grote modeleertaal.

764
00:44:39.540 --> 00:44:43.680
Dus je kunt er alles mee, maar je kunt ook alles op andere mieren doen.

765
00:44:44.500 --> 00:44:48.140
Dus wat dat betreft is het een soort met van programeertaal waar geen runknop op zit.

766
00:44:49.780 --> 00:44:51.780
Dat we zeggen, het heeft wel die complexiteit

767
00:44:52.740 --> 00:44:55.140
en je kunt alles op tien verschillende mieren doen

768
00:44:55.140 --> 00:44:58.520
en je moet honderden constructies moet je kennen

769
00:44:58.520 --> 00:45:00.560
om er iets mee te kunnen doen.

770
00:45:01.080 --> 00:45:02.300
Maar het heeft geen runknop.

771
00:45:02.920 --> 00:45:04.380
Tenminste, standaard UML niet.

772
00:45:04.840 --> 00:45:09.040
Er zijn wat UML dingen waar je wel dat werkelijk een runknop voor kunt maken.

773
00:45:11.360 --> 00:45:13.020
Maar UML is een algemeenheid.

774
00:45:14.280 --> 00:45:16.020
Het wordt nog wel veel gebruikt,

775
00:45:16.740 --> 00:45:19.840
maar het is zo moeilijker om zo'n runknop te maken.

776
00:45:20.080 --> 00:45:21.700
Dat is het probleem.

777
00:45:22.960 --> 00:45:27.640
Ik heb het inderdaad wel gekregen op de informatica opleiding.

778
00:45:27.640 --> 00:45:29.800
Inderdaad, UML en RUP,

779
00:45:30.360 --> 00:45:33.620
een beetje de ouderwetse manier van werken noem ik het altijd maar.

780
00:45:34.920 --> 00:45:37.840
Maar het heeft me ook echt nooit een soort gegrepen als

781
00:45:38.300 --> 00:45:41.680
dit is echt nou een goede manier om van een gedachte groet

782
00:45:41.680 --> 00:45:45.080
of een bepaalde probleemstelling om te gaan

783
00:45:45.080 --> 00:45:48.420
naar een daadwerkelijk software applicatie.

784
00:45:49.180 --> 00:45:50.580
Inderdaad, dat is ook mijn ervaring.

785
00:45:51.200 --> 00:45:53.860
Het heeft eigenlijk ook, als je weer kijkt naar het domein

786
00:45:53.860 --> 00:45:56.340
en of het nou domeinspecifiek is of niet,

787
00:45:57.100 --> 00:46:01.960
het domein is ook heel duidelijk plaatjes maken

788
00:46:03.360 --> 00:46:05.760
voor architecturen van software.

789
00:46:06.320 --> 00:46:08.580
Niet het specificeren van software aan zich

790
00:46:08.580 --> 00:46:11.720
of het specificeren van het probleemdomein

791
00:46:12.840 --> 00:46:14.740
dat een stuk software nodig had.

792
00:46:16.000 --> 00:46:18.780
Dus het gaat heel erg eigenlijk in op, nou ja,

793
00:46:18.940 --> 00:46:22.500
als je een mooi plaatje kunt maken voor hoe je het wilt gaan oplossen,

794
00:46:22.980 --> 00:46:25.380
dan zou het misschien een beetje kunnen helpen.

795
00:46:25.380 --> 00:46:28.160
Maar je daadwerkelijke domein-experts,

796
00:46:28.520 --> 00:46:33.140
dus bijvoorbeeld de mensen die bij een autoveruurbedrijf

797
00:46:33.140 --> 00:46:39.460
moeten gaan specificeren waarom jouw vijfdeurs auto

798
00:46:39.460 --> 00:46:42.920
drie euro lurer is dan jouw driedeurs auto per dag,

799
00:46:43.320 --> 00:46:46.180
ja, daar gaat het niet voor helpen.

800
00:46:47.160 --> 00:46:52.420
Ja, ik had ook Bernard, een van onze hosts,

801
00:46:52.420 --> 00:46:55.280
die had ook een mooie link gestuurd,

802
00:46:55.460 --> 00:46:58.860
wel naar Wikipedia pagina, maar wel een interessante quote.

803
00:47:00.300 --> 00:47:01.480
Dus eigenlijk wat jij nu,

804
00:47:01.660 --> 00:47:03.680
dus deze hele aflevering eigenlijk duidelijk maakt,

805
00:47:03.780 --> 00:47:05.800
is dat het vooral voor domein-experts is,

806
00:47:06.000 --> 00:47:09.140
waarmee ze zelf gemakkelijk kunnen begrijpen

807
00:47:10.440 --> 00:47:13.240
hoe het domein moet functioneren in software

808
00:47:14.140 --> 00:47:17.180
en waarmee ze kunnen valideren, aanpassen

809
00:47:17.880 --> 00:47:21.460
en dan natuurlijk ook zelf een domein-specifieke,

810
00:47:21.460 --> 00:47:25.440
domein-specifieke programmeertaal als het ware bouwen,

811
00:47:25.440 --> 00:47:28.240
maar er staat wel ergens op een regeltje,

812
00:47:28.300 --> 00:47:30.260
however, this is seldom the case,

813
00:47:30.320 --> 00:47:32.180
dus voor de Nederlanders tussen ons,

814
00:47:32.960 --> 00:47:35.760
alhoewel het toch niet altijd het geval is.

815
00:47:36.480 --> 00:47:39.200
Wat vind je daarvan, dat het zo op Wikipedia staat?

816
00:47:40.660 --> 00:47:44.020
Dat staat bij de omschrijving van de Wikipedia pijl van de DSL,

817
00:47:44.020 --> 00:47:47.360
ah, interessant, die was me niet zo opgevallen daar.

818
00:47:49.080 --> 00:47:51.040
Ja, ik weet niet of het seldom the case is,

819
00:47:51.140 --> 00:47:54.400
ik denk dat er, of het zeldzaam is dat dat voorkomt,

820
00:47:55.620 --> 00:47:59.680
er zit wel een bepaalde, bepaald maximum dat je kunt doen,

821
00:48:00.340 --> 00:48:02.200
dus je moet wel heel erg goed scopen,

822
00:48:02.700 --> 00:48:06.020
heel goed beperken wat je domein is.

823
00:48:07.980 --> 00:48:11.520
Om bijvoorbeeld, nou weer eventjes, dat autoveruurbedrijf,

824
00:48:11.520 --> 00:48:16.900
dat zou ik heel erg scopen op het beschrijven van hoe een,

825
00:48:16.900 --> 00:48:18.420
hoe een prijs tot stand komt,

826
00:48:20.260 --> 00:48:21.560
of een spraak is van kortingen,

827
00:48:22.100 --> 00:48:24.520
of de echte bedrijfslogica erachter,

828
00:48:25.180 --> 00:48:29.020
maar ik zou bijvoorbeeld niet gaan proberen te specificeren in,

829
00:48:29.020 --> 00:48:31.720
in zo'n DSL hoe je data bezigheid moet gaan zien.

830
00:48:33.380 --> 00:48:37.560
Of hoe bepaalde knopjes op, in de UI,

831
00:48:37.680 --> 00:48:40.020
heel specifiek moeten gaan werken.

832
00:48:40.020 --> 00:48:44.300
En daar zul je uiteindelijk toch nog wel wat programmeurs voor nodig hebben.

833
00:48:44.820 --> 00:48:46.000
Maar wat je wilt is dat, zeg maar,

834
00:48:46.800 --> 00:48:49.160
de dingen die de Minexpress zelf kunnen specificeren,

835
00:48:49.660 --> 00:48:51.760
en goed kunnen specificeren, dat ze dat kunnen doen.

836
00:48:52.380 --> 00:48:58.880
En dat je de rest via traditionele of meer traditionele software development oplast.

837
00:48:59.920 --> 00:49:02.860
Ja, want ik zat inderdaad ook met jouw voorbeeld een beetje te denken.

838
00:49:03.280 --> 00:49:08.080
Stel dat het autoveruurbedrijf vanwege de lage rentes

839
00:49:08.700 --> 00:49:10.580
toch meer marge moet gaan maken.

840
00:49:10.720 --> 00:49:14.880
Ja, dan is het in het aanpassen van zo'n percentage is vrij makkelijk gedaan.

841
00:49:15.200 --> 00:49:19.200
Maar stel dat de Nederlandse overheid met nieuwe regelgeving komt

842
00:49:20.160 --> 00:49:24.020
en elke bestuurder die een auto wil huren

843
00:49:24.020 --> 00:49:26.700
moet vervolgens een extra document gaan overleggen.

844
00:49:26.900 --> 00:49:31.080
Ja, dat weet je van tevoren ook niet tijdens het maken van zo'n DSL.

845
00:49:31.600 --> 00:49:35.080
Dus ja, dan zal er uiteindelijk toch ook een wijziging moeten plaatsvinden in die DSL.

846
00:49:35.080 --> 00:49:35.900
Ja, klopt.

847
00:49:36.100 --> 00:49:40.580
Ja, dus het kan heel goed zijn dat door veranderde requirements

848
00:49:40.580 --> 00:49:44.080
dat je ook echt de DSL moet aanpassen of vooral moet uitbreiden

849
00:49:44.720 --> 00:49:46.320
met nieuwe concepten.

850
00:49:46.460 --> 00:49:48.440
Dus bijvoorbeeld een concept dat zegt

851
00:49:49.820 --> 00:49:52.280
er moeten bepaalde documenten aangeleverd zijn

852
00:49:52.280 --> 00:49:55.420
en dat je dan ook kunt specificeren welk document dat is.

853
00:49:55.580 --> 00:49:57.340
Dat is inderdaad heel goed mogelijk.

854
00:49:59.060 --> 00:50:02.240
Wat wel het grote voordeel is van zo'n aanpak dan

855
00:50:02.240 --> 00:50:05.440
is dat je zo'n concept maar één keer hoeft te introduceren

856
00:50:05.440 --> 00:50:09.220
en ook maar één keer hoeft uit te leggen aan bijvoorbeeld de code generator

857
00:50:09.220 --> 00:50:11.340
hoe daarmee om te gaan.

858
00:50:13.080 --> 00:50:15.380
Vol, wat ook een interessant aspect van DSL is

859
00:50:15.380 --> 00:50:19.540
hoe test je door via DSLs gegendererde software.

860
00:50:21.620 --> 00:50:24.680
Nou ja, dat is voor Kishen, voor jou is dat natuurlijk

861
00:50:25.420 --> 00:50:27.500
zal altijd wel een hot topic blijven, denk ik.

862
00:50:27.720 --> 00:50:30.500
Ja, het is echt iets waar het keeps me up at night.

863
00:50:30.500 --> 00:50:31.260
Precies, ja.

864
00:50:32.160 --> 00:50:37.400
En de grap van zo'n DSL is dat je hebt een beperkt aantal constructies

865
00:50:37.400 --> 00:50:40.260
sorry, een beperkt aantal concepten

866
00:50:40.260 --> 00:50:43.040
waar vervolgens een generator mee aan de haal gaat

867
00:50:43.040 --> 00:50:44.320
en daar gewoon code uit genereert.

868
00:50:44.360 --> 00:50:47.080
Maar dan weet je wel dat elke keer als zo'n concept gebruikt wordt

869
00:50:48.080 --> 00:50:51.240
dan komt daar grotendeels dezelfde

870
00:50:51.240 --> 00:50:53.540
of komt er in principe steeds dezelfde code uit.

871
00:50:54.340 --> 00:50:58.360
Dus heel veel van die code hoef je ook maar één keer

872
00:50:59.140 --> 00:51:01.780
of een aantal keer, een aantal representieve voorbeelden

873
00:51:01.780 --> 00:51:03.100
hoef je maar te testen.

874
00:51:03.300 --> 00:51:05.680
Dus als je bijvoorbeeld een concept hebt

875
00:51:07.440 --> 00:51:10.080
waar een tabel uitkomt uiteindelijk in de database

876
00:51:10.080 --> 00:51:15.180
en een paar formulieren op een scherm, dat soort dingen.

877
00:51:15.380 --> 00:51:19.400
Dus gewoon een stukje data om op te slaan.

878
00:51:20.420 --> 00:51:27.800
Nou ja, je gaat er niet meer voor elke instantie van zo'n concept

879
00:51:27.800 --> 00:51:32.200
dus elke keer dat je bijvoorbeeld zo'n tabel op die manier defineert

880
00:51:32.200 --> 00:51:35.540
ga je meer testen van oh, was de tabel wel goed aangemaakt

881
00:51:35.540 --> 00:51:37.780
en kan ik er dan wel dingen in stoppen en dergelijke

882
00:51:37.780 --> 00:51:39.160
kan ik er wel dingen uithalen

883
00:51:39.640 --> 00:51:42.140
en klopt het formulier dat op het scherm staat

884
00:51:42.140 --> 00:51:45.140
klopt dat dan wel met wat er in de database staat

885
00:51:45.140 --> 00:51:46.960
dus je hebt zo'n hele integratietest van

886
00:51:47.840 --> 00:51:50.000
ga naar een schermpje, vul daar dingen in

887
00:51:50.000 --> 00:51:51.940
druk op de Submit-knop

888
00:51:51.940 --> 00:51:54.960
kijk of er dan iets in de database terechtkomt

889
00:51:54.960 --> 00:51:56.800
en kijk of er dat goede ding in terechtkomt.

890
00:51:57.760 --> 00:52:00.040
Dat doe je dan een paar keer

891
00:52:00.520 --> 00:52:03.220
maar dat doe je niet meer voor elke tabel in je database

892
00:52:03.220 --> 00:52:06.340
want na die paar keer weet je wel van ja, die generator

893
00:52:06.340 --> 00:52:09.400
gaat daar echt niet meer, gaat er wel de goede dingen doen.

894
00:52:10.320 --> 00:52:12.500
Ja, het wordt een beetje een slager die zijn eigen vlees keurt dan

895
00:52:12.500 --> 00:52:16.160
eigenlijk, je verwacht, je zet er variabele A in

896
00:52:16.160 --> 00:52:19.220
en ja, dan verwacht ik ook wel dat variabele A in de database terechtkomt

897
00:52:19.220 --> 00:52:21.520
dat maakt dan niet uit of het variabele B wordt

898
00:52:23.680 --> 00:52:27.440
Je keurt je, iemand anders dan de slager

899
00:52:27.440 --> 00:52:29.220
keurt het vlees een paar keer

900
00:52:29.880 --> 00:52:32.400
maar op een gegeven moment dan heb je wel het vertrouwen dat

901
00:52:32.400 --> 00:52:35.440
bij het volgende stukje vlees dat we op dezelfde manier

902
00:52:35.440 --> 00:52:38.840
specificeren dan gaat het ook echt wel goed.

903
00:52:39.280 --> 00:52:40.480
Ja, dat doet de slager zijn werk wel goed.

904
00:52:42.000 --> 00:52:44.040
Ja, het risico wordt steeds minder groot.

905
00:52:44.160 --> 00:52:45.720
Dat het fout gaat.

906
00:52:46.640 --> 00:52:49.760
Dan moet je dus inderdaad ook daarin je teststrategie

907
00:52:49.760 --> 00:52:52.120
of hoe je het ook wil noemen.

908
00:52:52.720 --> 00:52:54.220
Dat pas je gewoon daarop aan.

909
00:52:54.640 --> 00:52:57.600
Ja, je merkt dat je vrij snel

910
00:52:57.600 --> 00:53:00.780
op een hoger niveau kunt testen

911
00:53:01.620 --> 00:53:04.280
dus je hoeft een paar dingen niet meer

912
00:53:04.280 --> 00:53:06.480
de hele tijd in detail te testen

913
00:53:06.480 --> 00:53:08.180
of tenminste heel veel dingen hoef je niet meer in detail te testen

914
00:53:08.180 --> 00:53:11.000
maar kun je veel meer naar integratieachtige testen kijken.

915
00:53:12.000 --> 00:53:13.000
Ja, dat wilde ik net zeggen.

916
00:53:13.240 --> 00:53:16.480
Dus dan ligt het risico juist meer in integratie met de rest van de wereld.

917
00:53:16.480 --> 00:53:19.600
Ja, en wat ook heel interessant is met testen en DSL's

918
00:53:19.600 --> 00:53:23.200
is dat bijvoorbeeld iets dat we ook doen bij de Belastingdienst

919
00:53:23.200 --> 00:53:25.620
is dat Domainexperts zelf test kunnen schrijven.

920
00:53:25.720 --> 00:53:28.260
Dus die kunnen bijvoorbeeld zelf specificeren van

921
00:53:28.260 --> 00:53:30.100
gegeven en zo naar zo'n situatie

922
00:53:33.900 --> 00:53:35.340
een Nederlandse persoon

923
00:53:35.340 --> 00:53:37.440
43 jaar, drie kinderen

924
00:53:37.440 --> 00:53:39.200
zes en zes inkomen

925
00:53:39.200 --> 00:53:43.100
reken maar eens uit wat er dan aan de belasting betaald moet worden.

926
00:53:43.820 --> 00:53:46.260
En dan kun je dus kijken

927
00:53:46.260 --> 00:53:47.220
van komt er het goede uit?

928
00:53:47.360 --> 00:53:48.260
En je kunt ook blijven kijken

929
00:53:48.260 --> 00:53:48.940
komt er het goede uit?

930
00:53:48.980 --> 00:53:51.300
Want die test kun je ook weer uitgenereren

931
00:53:51.300 --> 00:53:52.660
na het daadwerkelijk draaiende test.

932
00:53:52.880 --> 00:53:56.380
Dus je begint met een test die je gewoon in je DSL gespecificeerd hebt

933
00:53:56.380 --> 00:53:58.380
dus als DSL Proza gespecificeerd hebt

934
00:53:58.940 --> 00:54:01.480
naast je regels voor

935
00:54:02.100 --> 00:54:04.060
belasting of auto verhuur

936
00:54:05.000 --> 00:54:07.260
en de generator maakt dan naar

937
00:54:07.260 --> 00:54:09.480
uiteindelijk unit test voor die dus gewoon

938
00:54:09.480 --> 00:54:11.920
als normale test kunnen draaien.

939
00:54:13.280 --> 00:54:19.200
Ja, het is een heel leuk en leerzaam concept voor mij

940
00:54:19.200 --> 00:54:20.520
om ik moet zeggen

941
00:54:20.520 --> 00:54:23.260
ik zat eigenlijk zelf altijd een beetje in die hoek van

942
00:54:23.260 --> 00:54:24.780
ik denk in programmeertalen

943
00:54:24.780 --> 00:54:26.960
en ik ben eigenlijk altijd bezig met programmeertalen.

944
00:54:27.860 --> 00:54:30.040
Maar het is wel leuk om eens een keer zo gesprek te hebben

945
00:54:30.040 --> 00:54:33.300
met iemand die echt heel veel kennis hierover heeft

946
00:54:33.300 --> 00:54:34.090
zoals jij

947
00:54:35.200 --> 00:54:38.520
om er ook net even op een soort

948
00:54:38.520 --> 00:54:39.600
hoe moet ik dat uitleggen

949
00:54:39.600 --> 00:54:42.100
een soort meer helikopter view er naar te kijken

950
00:54:42.100 --> 00:54:44.040
dus echt meer naar het probleem te kijken

951
00:54:44.040 --> 00:54:45.520
en hoe kan je dat oplossen

952
00:54:45.520 --> 00:54:47.180
door zoiets als een DSL?

953
00:54:48.140 --> 00:54:50.440
Ja, een van de vragen die we hadden was ook

954
00:54:50.440 --> 00:54:51.940
hoe populair is dit?

955
00:54:53.640 --> 00:54:55.340
En het antwoord is

956
00:54:55.340 --> 00:54:58.060
in een bepaalde zin is het heel erg populair

957
00:54:58.060 --> 00:55:00.100
maar in een andere zin ook helemaal niet

958
00:55:00.100 --> 00:55:03.380
heel weinig mensen kennen de term DSL

959
00:55:03.380 --> 00:55:04.760
heel weinig mensen kennen de term

960
00:55:05.640 --> 00:55:07.460
model driven of model based

961
00:55:07.460 --> 00:55:11.040
en dat is wel heel jammer

962
00:55:11.040 --> 00:55:13.220
want je kunt er wel heel veel mee doen

963
00:55:13.220 --> 00:55:16.920
en de gewoondheid in onze IT industrie

964
00:55:16.920 --> 00:55:18.400
is wel een beetje om van nou ja goed

965
00:55:19.520 --> 00:55:20.160
programmeer te houden

966
00:55:20.160 --> 00:55:21.680
daar kennen we er een paar van

967
00:55:21.680 --> 00:55:23.200
we weten hoe we applicaties maken

968
00:55:23.820 --> 00:55:25.080
dus elk probleem

969
00:55:25.080 --> 00:55:27.400
dus dat is de grote hamer die we hebben

970
00:55:27.400 --> 00:55:28.920
dus kom maar met je probleem

971
00:55:28.920 --> 00:55:30.440
dan pakken wij die grote hamer

972
00:55:30.440 --> 00:55:33.440
en dan gaan wij wel voor je programmeren

973
00:55:33.440 --> 00:55:34.460
gaan wij wel software developpen

974
00:55:34.460 --> 00:55:38.920
En ja, maar misschien is dat niet de beste hamer die je hebt.

975
00:55:39.120 --> 00:55:43.580
Misschien moet je wel gewoon een heel andere soort hamer, misschien ook een soort van kleinere,

976
00:55:44.380 --> 00:55:50.600
maar scherpere hamer aan je domain express, aan de mensen die het probleem daadwerkelijk hebben,

977
00:55:51.380 --> 00:55:54.660
geven en het daarmee vervolgens zelf laten oplossen.

978
00:55:56.000 --> 00:55:59.660
In plaats van dat jij altijd maar met die enorme toolbox, met die enorme hamerzaak komt.

979
00:56:00.360 --> 00:56:05.360
Ja, want het blijft elke keer een vertaalslag die natuurlijk ook vaak wel eens misgaat.

980
00:56:05.560 --> 00:56:10.480
Een soort van Chinese whispers, dus dan kan me nog wel herinneren toen ik bij Stater zat,

981
00:56:11.540 --> 00:56:15.780
ja dat ging allemaal over hele ingewikkelde hypotheekberekeningen.

982
00:56:17.260 --> 00:56:22.060
En ja, weet je, daar zitten ook veel consultants over over de algemene en die

983
00:56:22.060 --> 00:56:28.260
hebben allemaal andere ervaringen en kan zo ineens zomaar verkeerd geïmplementeerd zijn.

984
00:56:29.080 --> 00:56:33.780
En wat ik dus van jou hoor, is dat je toch ook die kracht van die domeinexperts

985
00:56:33.780 --> 00:56:38.020
gewoon beter tot z'n recht kan zetten in het systeem door ze het inderdaad iets aan te bieten,

986
00:56:38.200 --> 00:56:50.140
waardoor ze zelf in staat zijn om die regels vast te leggen en door te gaan zonder de vertaling elke keer te doen.

987
00:56:50.440 --> 00:56:53.740
Exact, ja, je slaat echt de vertaalslag over of eigenlijk doe je de

988
00:56:53.740 --> 00:57:01.540
vertaalslag één keer, maar op een hoge niveau is een afgezaagd woord, maar je probeert het een

989
00:57:01.540 --> 00:57:09.640
één keer voor alles wat je tegen kunt komen te doen. En dat is wel moeilijker. Dat is echt

990
00:57:09.640 --> 00:57:14.140
vooral een stuk moeilijker, maar dat is ook een heel stuk interessanter dan weer een schermpje

991
00:57:14.140 --> 00:57:19.860
maken en dan weer een tabelletje erbij maken, dat soort werk.

992
00:57:19.860 --> 00:57:27.140
Ja, precies. Nou, hartstikke goed. Ja, we zijn nu inmiddels al door de vragen heen.

993
00:57:27.340 --> 00:57:33.340
In ieder geval heel erg bedankt dat je ons hier even te woord in wilde staan. Ik denk dat het

994
00:57:33.340 --> 00:57:37.600
in ieder geval van mij heel erg duidelijk is geworden wat de verschillen zijn tussen

995
00:57:37.600 --> 00:57:43.200
model-driven engineering, architecture en DSL's en de verhouding daarvan.

996
00:57:44.400 --> 00:57:49.340
Nou, ik stel voor dat wij nu doorgaan naar het volgende onderdeel van onze podcast.

997
00:57:50.080 --> 00:57:54.740
En ja, dat is eigenlijk iets wat in het leven is geroepen na de tiende aflevering.

998
00:57:55.400 --> 00:58:01.340
Dus we dachten, joh, we houden dat gewoon even erin. En dat heet de Rance on Twitter.

999
00:58:04.600 --> 00:58:06.360
Inclusive sound effects, wow.

1000
00:58:09.880 --> 00:58:12.600
Daar heb ik echt de hele avond op gestudeerd.

1001
00:58:13.000 --> 00:58:15.740
Ja, dit had je nog niet verteld dat je dit ging doen.

1002
00:58:15.920 --> 00:58:18.600
Nee, cool hè. Echt een mooie verrassing.

1003
00:58:18.600 --> 00:58:19.940
Ik ben trots op je.

1004
00:58:20.200 --> 00:58:21.380
Dank je wel, dank je wel.

1005
00:58:21.520 --> 00:58:25.780
Nou, de Rance on Twitter, maar is heel Twitter niet een grote rant?

1006
00:58:26.400 --> 00:58:28.040
Of heb ik dat dan nu verkeerd?

1007
00:58:28.520 --> 00:58:29.760
Tegenwoordig wel, ja.

1008
00:58:32.180 --> 00:58:35.600
Ja, ik moet zeggen, ja, ik heb de vorige aflevering ook al verteld,

1009
00:58:35.600 --> 00:58:38.180
maar ja, het is toch niet goed voor mijn bloeddruk, die website.

1010
00:58:39.800 --> 00:58:41.640
Maar misschien zit ik een beetje op de verkeerde kant dan.

1011
00:58:42.400 --> 00:58:44.280
Ja, hangt een beetje af wie je allemaal volgt.

1012
00:58:44.280 --> 00:58:51.820
Ja, we hebben het in de Slack kanaal ook even over gehad.

1013
00:58:53.340 --> 00:59:00.300
Ja, iets wat mij deze week toch wel een beetje opviel was die muis gebruiken van developers.

1014
00:59:01.120 --> 00:59:04.820
En je meint, maak jij gebruik van een muis als developer?

1015
00:59:06.480 --> 00:59:08.340
Ja, absoluut ja.

1016
00:59:10.020 --> 00:59:13.440
En ja, wat zegt dat over jouw development skills?

1017
00:59:13.440 --> 00:59:16.080
Nou ja, het schijnt dat ik daarmee automatisch een junior ben.

1018
00:59:19.540 --> 00:59:22.500
Maar gebruik je dan een touchpad of gebruik je een echte muis?

1019
00:59:22.720 --> 00:59:27.520
Ik gebruik een echte muis. Ja, dat is denk ik gewoon een beetje

1020
00:59:27.520 --> 00:59:30.340
persoonlijke voorkeur. Een touchpad kan ik best mee overweg,

1021
00:59:30.400 --> 00:59:34.510
maar uiteindelijk vind ik een echte muis toch wat handig aan werken.

1022
00:59:35.600 --> 00:59:36.620
Maar gebruik je Mac of niet?

1023
00:59:36.700 --> 00:59:37.460
Ik gebruik Mac, ja.

1024
00:59:37.960 --> 00:59:39.300
Heb je dan ook zo'n Magic Mouse?

1025
00:59:39.300 --> 00:59:43.900
Ja, ja, ja, ja. Ja, en dat vind ik heel prettig, want daarmee kun je,

1026
00:59:43.900 --> 00:59:48.600
nou ja, zoals je wel weet Johnny, je kunt links, rechts en omhoog naar beneden, omhoog

1027
00:59:48.600 --> 00:59:55.600
en omlaag scrollen. Met name dat links en rechts is vaak best praktisch om Windows goed

1028
00:59:55.600 --> 00:59:58.700
te centreren, om een goede plek op te zoeken in je code enzo.

1029
00:59:59.420 --> 01:00:04.640
Ja, ja, ik moet zeggen dat is het enige wat ik een beetje mis, want ik ben een tijd,

1030
01:00:04.820 --> 01:00:08.240
even kijken, een jaar geleden of zo ben ik overgestapt van een Magic Mouse naar zo'n

1031
01:00:08.240 --> 01:00:12.800
Logitech MX Master, met name gewoon vanwege kramp in mijn handen.

1032
01:00:14.280 --> 01:00:17.220
Dus ja, een beetje lichte RSI klachten en toen dacht ik nou,

1033
01:00:17.340 --> 01:00:22.080
laat ik dan toch maar iets ergonomisch verantwoordelijk muis aanschaffen.

1034
01:00:23.020 --> 01:00:26.560
Maar dat is inderdaad wel iets wat ik toch mis, dat makkelijke heen en weer

1035
01:00:26.560 --> 01:00:30.720
vliegen met die, ja, die lekker gladde plastic bovenkant van die Magic Mouse.

1036
01:00:31.640 --> 01:00:36.640
Ja, ik heb zelf nu ook een Magic Mouse en ik heb het nu denk ik zo'n halfjaartje

1037
01:00:37.160 --> 01:00:40.500
ben ik hem aan het gebruiken. Ja, ik vind het wel heel lekker hoor,

1038
01:00:40.780 --> 01:00:44.860
dat met die, dus ik ben niet meer gewend om echt een muis in mijn hand te hebben en

1039
01:00:44.860 --> 01:00:51.620
te klikken en ik voel me ook veel meer professioneeler of zo, als ik dat ding gebruik.

1040
01:00:53.000 --> 01:00:56.180
Dat is ook wel knap, ja. Ja, nee, maar even de mensen thuis die

1041
01:00:56.180 --> 01:01:00.320
misschien niet de rant hebben gezien op Twitter. Ik ben even de naam kwijt,

1042
01:01:01.660 --> 01:01:05.320
wie nou de thread startte, weet jij dat misschien Johnny?

1043
01:01:05.700 --> 01:01:08.360
Nee, ik weet dat niet aan mijn hoofd, daar zou ik ook echt even op moeten zitten.

1044
01:01:08.400 --> 01:01:10.240
Ja, goed, zullen we het in de show notes stoppen?

1045
01:01:10.520 --> 01:01:13.540
We zetten hem in de show notes erbij. Er staan ook een hele hoop leuke reacties op.

1046
01:01:14.000 --> 01:01:18.100
Ja, bijvoorbeeld een iemand die heeft vier muizen aan zijn laptop gekoppeld en die

1047
01:01:18.100 --> 01:01:23.920
vroeg zichzelf af of die dan nu ook echt, ja, wel aan het ene extreme van het spectrum.

1048
01:01:24.700 --> 01:01:29.600
Ja, want het tweetje waar het over ging, dat was dus iemand die had,

1049
01:01:30.880 --> 01:01:34.140
ja, ik weet niet eens of het een grapje was of dat hij echt serieus twitterde,

1050
01:01:34.140 --> 01:01:42.880
maar hij koppelde, ja, je ervaring en je kennis als developer aan het gebruik van je muis.

1051
01:01:43.840 --> 01:01:48.780
Dus als jij een muis zou gebruiken, dan werd je volgens hem als junior verklaard.

1052
01:01:50.440 --> 01:01:52.660
Ja, bizar. Maar goed, wat vind jij ervan?

1053
01:01:52.920 --> 01:01:57.520
Ik denk dat hij het als grapje bedoelde. Dat hoop ik wel. Ik denk ook dat heel veel

1054
01:01:57.520 --> 01:02:03.900
mensen het er wel serieus zou overdenken. Helaas. Ik vind het echt onzin.

1055
01:02:05.800 --> 01:02:10.400
Hij gebruikt zelf een muis, dus er is maar wat aan gelegen om wat onzin te vinden,

1056
01:02:10.420 --> 01:02:16.460
natuurlijk. Ik zou zelf wel minder van de muis gebruik willen maken dan ik nu doe.

1057
01:02:17.140 --> 01:02:21.800
Een bepaalde luiigheid in het aanleren van keyboard shortcuts en zo.

1058
01:02:22.780 --> 01:02:30.660
Maar in het algemeen, ik vind het zo onzin om zo'n één enkel gebruiksdingetje als metriek

1059
01:02:30.660 --> 01:02:35.720
voor je mate van professionaliteit of de mate van je skills te pakken.

1060
01:02:36.780 --> 01:02:43.480
Je kunt ook zo'n discussie hebben over, die zie je ook nog wel eens een keer voorbij

1061
01:02:43.480 --> 01:02:48.380
komen. Die gaat misschien wat minder viral, maar als je een IDE gebruikt, dan ben je blijkbaar

1062
01:02:48.380 --> 01:02:55.540
geen echte developer. Je moet alles op de command line en vim gebruiken. Vim is dan

1063
01:02:55.540 --> 01:02:57.620
altijd geavanceerd en dan moet je via je doen of zoiets.

1064
01:02:59.480 --> 01:03:04.400
Maar ik moet zeggen, mijn IDE zorgt ervoor dat ik de muis minder gebruik. Dus dat is dan wel

1065
01:03:04.400 --> 01:03:10.500
een beetje tegenstrijdig als we die twee metrics naast elkaar leggen. Ik moet zeggen,

1066
01:03:10.620 --> 01:03:16.820
ik voel me altijd echt de koning van de aprots als ik gewoon met mijn toetsenbord

1067
01:03:16.820 --> 01:03:22.480
alle shortcuts aan het uitvoeren ben en gewoon door mijn hele project heen navigeren ben. Het

1068
01:03:22.480 --> 01:03:28.060
voelt wel lekker. Ik denk ook wel dat je er uiteindelijk productiever van wordt

1069
01:03:29.460 --> 01:03:33.580
door keyboard shortcuts te nemen. Want de bandbreedte is natuurlijk gewoon groter.

1070
01:03:34.020 --> 01:03:42.220
Je hebt eigenlijk iets van drie assen namelijk links, rechts, boven, beneden en nog iets

1071
01:03:42.220 --> 01:03:48.500
met klikjes doen. Dat is alle informatie die je op die manier naar de computer kunt overbrengen

1072
01:03:48.500 --> 01:03:52.380
om iets te gaan doen. En met een keyboard, ja, je hebt natuurlijk veel meer toetsen.

1073
01:03:52.420 --> 01:03:58.460
Je hebt gelijk, zeker als je tien vingers kunt typen, je hebt gelijk tien vingers waar je

1074
01:03:58.460 --> 01:04:03.620
wat mee kunt doen. Dus kun je veel meer combinaties zo mee maken. Dus het is wel

1075
01:04:03.620 --> 01:04:12.200
logisch dat je daar productiever mee kunt worden. Maar ja, je moet wel investeren om al die

1076
01:04:12.200 --> 01:04:15.740
dat er inderdaad ook alles mee kan via keyword shortcuts, et cetera.

1077
01:04:16.560 --> 01:04:20.540
Ja, ik kwam een tijdje geleden. Een collega van mij attendeerde mij erop.

1078
01:04:20.940 --> 01:04:24.660
Ik gebruik zelf IntelliJ of in ieder geval RubyMine in mijn geval.

1079
01:04:25.380 --> 01:04:27.620
En er is dus een plugin die je kunt installeren.

1080
01:04:27.680 --> 01:04:31.660
En dan als je heel vaak met je muis door bepaalde menu'tjes heen gaat en bepaalde

1081
01:04:31.660 --> 01:04:34.960
dingen aanklikt, dan suggereert hij na een keer of vijf van hey,

1082
01:04:35.120 --> 01:04:37.160
wist je dat er hier ook een shortcut voor is?

1083
01:04:38.060 --> 01:04:38.920
Ja, het is geniaal.

1084
01:04:38.980 --> 01:04:40.340
Ja, dat is een hele goede inderdaad, ja.

1085
01:04:40.340 --> 01:04:42.520
Het was echt van, oh, my.

1086
01:04:44.780 --> 01:04:47.440
Het is een soort van AI, een soort van machine.

1087
01:04:48.920 --> 01:04:48.980
Ja, ja, ja.

1088
01:04:49.060 --> 01:04:51.540
Ja, maar dat is ook een beetje het refereert ook een beetje naar het

1089
01:04:51.540 --> 01:04:54.140
voorbeeld die je gaf over bij de Belastingdienst.

1090
01:04:54.320 --> 01:04:56.980
Dat als je een natuurlijk persoon bijvoorbeeld ergens gebruikt,

1091
01:04:57.040 --> 01:04:59.240
dat die dan jouw adviseert, als het ware.

1092
01:04:59.660 --> 01:05:02.600
Ja, ja, het is gewoon assistentie van van hey, ik zie dat je

1093
01:05:03.340 --> 01:05:06.020
ik zie dat je hiermee bezig bent, steeds hetzelfde doet.

1094
01:05:07.000 --> 01:05:09.880
Nou, hier komt een suggestie om dat om dat wat productiever

1095
01:05:09.880 --> 01:05:10.900
wat sneller te kunnen doen.

1096
01:05:12.340 --> 01:05:13.220
Ja, precies.

1097
01:05:13.380 --> 01:05:14.420
Nou, ja.

1098
01:05:14.520 --> 01:05:16.100
Hey, het trouwens nog even terugkomen.

1099
01:05:16.200 --> 01:05:19.400
Het is O'Shell op Twitter of underscore O'Shell.

1100
01:05:19.500 --> 01:05:21.100
Hij gaat uiteraard in de show notes.

1101
01:05:22.440 --> 01:05:26.160
Hij heeft de eerste tweet, de originele tweet.

1102
01:05:26.460 --> 01:05:29.480
If you call yourself a developer and use a mouse for editing code,

1103
01:05:29.620 --> 01:05:30.940
I just assume you're a junior.

1104
01:05:31.160 --> 01:05:32.320
Dat was letterlijk een quote.

1105
01:05:33.880 --> 01:05:35.420
En ja, hij zegt er later over.

1106
01:05:35.600 --> 01:05:37.420
I made a stupid post and I apologize.

1107
01:05:38.080 --> 01:05:39.820
Dus hij had het toch wel echt serieus.

1108
01:05:39.880 --> 01:05:40.400
Serieus.

1109
01:05:43.060 --> 01:05:44.900
Ja, ja, ik moest.

1110
01:05:45.000 --> 01:05:47.580
Ik dacht echt wel in het begin dat het moet een grapje zijn.

1111
01:05:47.660 --> 01:05:49.040
Weet je wel?

1112
01:05:49.240 --> 01:05:51.540
Ja, ik ik ik zag ook gewoon een paar mensen.

1113
01:05:51.720 --> 01:05:55.160
Ik dacht ook Saber dacht ik gewoon even echt serieus erop reageren.

1114
01:05:55.880 --> 01:05:58.160
En toen dacht ik ineens van hee, wat, wat, wat?

1115
01:05:58.320 --> 01:05:59.740
Is het nou echt? Wat bedoelt hij nou?

1116
01:06:00.420 --> 01:06:02.060
En en toen toen zag ik ook op een gegeven moment.

1117
01:06:02.160 --> 01:06:04.520
Volgens mij was jij dat Johnny die een tweetje stuurde

1118
01:06:04.520 --> 01:06:08.340
of wat minstens een retweet deed van iemand die had dan vier muizen

1119
01:06:08.340 --> 01:06:10.540
aan z'n laptop gehangen.

1120
01:06:12.300 --> 01:06:14.280
Ja, ja, ja. Nou goed, het moet wel gezegd.

1121
01:06:14.340 --> 01:06:15.720
Hij heeft netjes excuses aangeboden.

1122
01:06:16.240 --> 01:06:17.780
Ja, nou goed, dat dan wel.

1123
01:06:17.980 --> 01:06:19.180
Ja, dat is wel weer goed.

1124
01:06:19.900 --> 01:06:21.620
De rent van de week zit er weer.

1125
01:06:22.000 --> 01:06:23.240
Ja, die zitten er weer op.

1126
01:06:23.460 --> 01:06:24.460
Langer dan kunnen we lachen.

1127
01:06:25.000 --> 01:06:26.300
Ja, ja, ja.

1128
01:06:26.300 --> 01:06:28.360
En ja, ook voor de volgende aflevering.

1129
01:06:28.440 --> 01:06:30.060
Mocht je er eentje willen tippen.

1130
01:06:30.060 --> 01:06:31.380
Ja, graag.

1131
01:06:31.700 --> 01:06:33.460
Zeker. Ja, dan kunnen we meer gebruiken.

1132
01:06:33.540 --> 01:06:35.560
Dan kunnen we weer lekker toepassen.

1133
01:06:36.180 --> 01:06:37.900
Je kan hem tippen via Twitter.

1134
01:06:38.860 --> 01:06:39.740
Het CodeKlets.

1135
01:06:40.160 --> 01:06:43.640
Het is weer tijd voor onze volgende thema.

1136
01:06:47.360 --> 01:06:48.440
Dat was fout, hè dit?

1137
01:06:49.400 --> 01:06:52.600
Nou, we hebben vorige week ook een hele leuke,

1138
01:06:52.600 --> 01:06:56.460
ja, leuke, leuke gedeelte gehad in onze podcast.

1139
01:06:56.980 --> 01:06:59.220
Dat was de developer dilemma's.

1140
01:06:59.540 --> 01:07:02.480
En ja, het leek ons wel leuk om dit weer een keertje te doen.

1141
01:07:02.820 --> 01:07:06.460
En misschien ook dan, ja, ook in dit geval meint even zijn mening

1142
01:07:06.460 --> 01:07:08.460
daarin te laten vragen.

1143
01:07:10.060 --> 01:07:13.340
Nou, ik weet niet of je het kent toevallig Meinte developer dilemma's.

1144
01:07:13.340 --> 01:07:13.880
Wat is het?

1145
01:07:14.280 --> 01:07:16.440
Developer Dilemma's.com of zo?

1146
01:07:16.480 --> 01:07:17.900
Correct. Ik denk nog niet.

1147
01:07:18.620 --> 01:07:19.920
Oké, nou zou je eens een keer moeten doen.

1148
01:07:20.000 --> 01:07:22.860
Het is wel leuk. Dan krijg je twee opties.

1149
01:07:22.980 --> 01:07:26.320
En het is de bedoeling dat je toch echt echt het moet het moet.

1150
01:07:26.320 --> 01:07:29.380
Het moet gewoon. Je moet één van ze kiezen.

1151
01:07:29.740 --> 01:07:33.200
Oké, geen flauwe antwoorden van ja, depends en bla bla bla.

1152
01:07:33.300 --> 01:07:35.040
Nee, je moet gewoon eentje kiezen.

1153
01:07:35.880 --> 01:07:38.380
Yes. Ja, nou ben je er klaar voor meenten?

1154
01:07:39.860 --> 01:07:43.300
Nee, maar ja, ja, je moet kiezen.

1155
01:07:43.860 --> 01:07:45.870
Ja, ja, ja. Oké, daar komt hij.

1156
01:07:46.860 --> 01:07:49.360
Een monolith of microservices.

1157
01:07:51.840 --> 01:07:53.160
Ja, je maakt gelijk wat moeilijk.

1158
01:07:54.360 --> 01:07:55.200
It depends.

1159
01:07:57.020 --> 01:08:02.380
Dat altijd heel goed in software altijd.

1160
01:08:05.960 --> 01:08:08.640
Maar laten we maar voor de microservices gaan.

1161
01:08:10.740 --> 01:08:11.700
Oké, oké.

1162
01:08:12.240 --> 01:08:13.480
We hadden het net over Twitter.

1163
01:08:14.040 --> 01:08:17.800
Ik had ook nog een tweetje gevonden. Ik zal hem er ook even straks onder plaatsen.

1164
01:08:18.360 --> 01:08:22.740
Die kreeg ik getippt van Bart de Water trouwens, een vorige gast uit de podcast.

1165
01:08:23.640 --> 01:08:27.700
En dat was iemand die zei de longer I'm in tech, the more I'm convinced

1166
01:08:27.700 --> 01:08:30.980
microservices were a technical solution to an organisational problem.

1167
01:08:32.520 --> 01:08:34.540
Die heb ik inderdaad ook gezien.

1168
01:08:35.320 --> 01:08:36.280
Wat denken we daarvan?

1169
01:08:37.300 --> 01:08:38.660
Ja, ik ben er wel mee eens.

1170
01:08:39.980 --> 01:08:42.740
Ik ben er ook zeker wel mee eens. Ja, ja.

1171
01:08:42.960 --> 01:08:47.280
Ja, denken we dat de ja, de kwaliteit van de code een afspiegeling is

1172
01:08:47.280 --> 01:08:50.200
van de kwaliteit van de organisatie of we het niet zo ver trekken?

1173
01:08:50.340 --> 01:08:53.100
Nou, dat is toch Brookes law dat dat uiteindelijk.

1174
01:08:53.180 --> 01:08:57.560
Ik weet niet meer de quote precies, maar dat uiteindelijk elk stuk software

1175
01:08:57.560 --> 01:09:00.580
of de architectuur van elk stof een stuk software een afspiegeling is

1176
01:09:00.580 --> 01:09:03.920
van de organisatie die die software heeft voortgebracht.

1177
01:09:04.420 --> 01:09:05.040
Ja, precies.

1178
01:09:05.640 --> 01:09:09.100
Dus ja, daarom was mijn antwoord ook net van microservices in plaats van monolith.

1179
01:09:09.900 --> 01:09:11.700
Want proberen is maar is microservices.

1180
01:09:11.800 --> 01:09:15.040
Als dat niet lukt, dan heb je waarschijnlijk

1181
01:09:15.040 --> 01:09:18.420
een ander probleem of misschien wel een grote probleem dan

1182
01:09:19.380 --> 01:09:21.120
dan alleen een beetje het maken van je software.

1183
01:09:21.980 --> 01:09:25.940
En ik denk ook dat je met microservices daar wat sneller,

1184
01:09:25.940 --> 01:09:30.500
wat harder achter komt dan als je een monolith gaat proberen te bouwen.

1185
01:09:31.000 --> 01:09:33.540
Het voordeel van microservices is natuurlijk echt die keiharde boundaries

1186
01:09:33.540 --> 01:09:35.200
die je op een gegeven moment gewoon gewoon hebt.

1187
01:09:35.420 --> 01:09:39.520
Dus je moet je wordt gewoon gedwongen eigenlijk veel meer na te denken over

1188
01:09:39.520 --> 01:09:41.380
ja, over die grenzen.

1189
01:09:41.860 --> 01:09:45.860
Nou ja, dit haakt natuurlijk ook weer aan bij DSL's, want het kan best zijn

1190
01:09:45.860 --> 01:09:52.220
dat de grenzen die je voor een microservice maakt in stijl dat dat daar binnen

1191
01:09:54.140 --> 01:09:59.320
een betere of makkelijker en goede DSL te vinden is dan als je een monolith gaat bouwen.

1192
01:09:59.560 --> 01:10:03.260
Want een monolith daar moet alles in zitten bij definitie.

1193
01:10:03.720 --> 01:10:05.240
Dus dat moet ook alles kunnen en zo.

1194
01:10:05.320 --> 01:10:09.900
Dus dat is vaak veel moeilijker om daar een DSL in te herkennen

1195
01:10:10.540 --> 01:10:14.720
en een goede eruit te filteren of te extrageren als het ware.

1196
01:10:15.000 --> 01:10:21.760
Als je kijkt naar één ding dan heb je toch iets meer kans om daar eerder een DSL in te herkennen.

1197
01:10:23.140 --> 01:10:27.340
Dan hebben we gelijk een bruggetje naar eigenlijk de tweede developer dilemma,

1198
01:10:27.820 --> 01:10:32.900
want dat komt wel goed uit dat je microservices dan toch als favoriet kiest.

1199
01:10:33.480 --> 01:10:35.100
Deze ga je echt leuk vinden Meinte.

1200
01:10:36.760 --> 01:10:38.660
Mano repo of multiple repo?

1201
01:10:40.320 --> 01:10:41.360
Kishen, heb jij die uitgezocht?

1202
01:10:43.080 --> 01:10:43.640
Speciaal voor jou.

1203
01:10:46.180 --> 01:10:47.760
Mano, zonder twijfel.

1204
01:10:48.640 --> 01:10:49.500
Kun je uitleggen waarom?

1205
01:10:51.260 --> 01:10:55.500
Ik heb heel veel pijnlijke ervaringen met multi-repo gehad.

1206
01:10:57.080 --> 01:10:58.360
Bij voorduringen eigenlijk.

1207
01:10:58.700 --> 01:11:03.160
Elke keer dat mensen weer, ja, we moeten wel in meerdere repos stoppen.

1208
01:11:03.420 --> 01:11:08.780
Eigenlijk is dat, het is wel grappig, want het is een beetje tegengesteld aan microservices,

1209
01:11:08.960 --> 01:11:11.160
want een mono repo is helemaal niet micro.

1210
01:11:12.740 --> 01:11:18.240
Maar juist bij een repo vind ik dat, begin maar eens een keertje met alles gewoon bij elkaar houden.

1211
01:11:18.240 --> 01:11:23.680
Als het op een gegeven moment duidelijk wordt dat het echt zin heeft om dingen af te gaan splitsen,

1212
01:11:23.940 --> 01:11:25.200
splits dan nog een keer af.

1213
01:11:26.640 --> 01:11:29.380
Maar tot die tijd houden we het alsjeblieft gewoon bij elkaar

1214
01:11:29.380 --> 01:11:35.800
en zorg dat je met z'n allen in één grote codebase kunt gaan bewegen.

1215
01:11:37.540 --> 01:11:41.300
Ja, ik weet nog wel dat we ook bij Mendix, daar was er heel veel discussie over,

1216
01:11:41.460 --> 01:11:44.140
ik vond dat echt een hele goede beslissing dat we dat gedaan hebben.

1217
01:11:44.140 --> 01:11:48.820
Want een van de belangrijkste dingen wat ons elke keer tegenhield was,

1218
01:11:50.320 --> 01:11:52.540
als je dan aan een story werkt met verschillende teams,

1219
01:11:54.240 --> 01:11:57.240
dus een stukje of een feature, laat ik het even zo noemen,

1220
01:11:58.120 --> 01:12:02.140
ja dan blijft het elke keer met de integraties tussen die verschillende repos en lenden

1221
01:12:02.140 --> 01:12:04.320
en dat gaat je dan op een gegeven moment vertragen.

1222
01:12:04.780 --> 01:12:07.700
En ik kan me nog ook wel herinneren dat Michel volgens mij toen de tijd,

1223
01:12:07.820 --> 01:12:10.280
Michel Westrater die toen bij ons in teams zat,

1224
01:12:11.160 --> 01:12:13.280
dat hij zei dat het echt een verademing was,

1225
01:12:13.280 --> 01:12:17.400
want ja je werkt gewoon aan één story en het zijn gewoon verschillende componenten

1226
01:12:17.400 --> 01:12:21.180
of verschillende, laat het even componenten noemen,

1227
01:12:21.920 --> 01:12:25.540
en dat is gewoon zo heerlijk dat je dat in one go gewoon lekker kan committen

1228
01:12:25.540 --> 01:12:28.380
en dan ook onder die story number of feature number

1229
01:12:29.620 --> 01:12:33.900
en dan ook gelijk geïntegreerd kan testen lokaal, dat soort dingen.

1230
01:12:34.880 --> 01:12:37.980
Dus ja ik denk dat dat wel een hele goede move is geweest.

1231
01:12:38.620 --> 01:12:42.520
Maakten jullie dan ook gebruik van gitseptory of submodules ofzo?

1232
01:12:43.700 --> 01:12:46.680
Ik geloof in de model server wel he, geloof ik toch mate?

1233
01:12:47.420 --> 01:12:49.460
Ja, ja, ja en oorspronkelijk dus in de webmodeler ook,

1234
01:12:49.560 --> 01:12:51.920
maar dat is er op een gegeven moment uitgegaan.

1235
01:12:52.980 --> 01:12:55.940
En iedereen weet trouwens wat hoe submodules ook wel genoemd worden.

1236
01:12:57.160 --> 01:12:58.120
Sab-modules.

1237
01:12:58.440 --> 01:12:59.960
Sab-modules, als in heil-modules.

1238
01:13:01.720 --> 01:13:03.480
Sab-modules, ja.

1239
01:13:03.960 --> 01:13:05.000
Wacht even, wacht even.

1240
01:13:07.100 --> 01:13:08.900
Ja, die is wel van toepassing.

1241
01:13:09.120 --> 01:13:10.280
Die was echt van toepassing.

1242
01:13:12.040 --> 01:13:12.440
Oké.

1243
01:13:13.040 --> 01:13:18.500
Ja, soms is het een heetveel necessity om iets met submodules te moeten doen,

1244
01:13:19.640 --> 01:13:21.460
maar meestal is het gewoon alleen maar pijn.

1245
01:13:24.120 --> 01:13:24.880
Ja, goed man.

1246
01:13:25.080 --> 01:13:27.260
Dat is echt iets leuks uitgekomen vind ik.

1247
01:13:27.660 --> 01:13:30.180
Dank dat je aan dit onderdeel wilde meedoen.

1248
01:13:31.840 --> 01:13:32.240
Oké.

1249
01:13:32.300 --> 01:13:34.200
Doe maar niet nog eentje, ik wilde best nog maar eentje doen.

1250
01:13:34.320 --> 01:13:34.920
Nog eentje?

1251
01:13:35.200 --> 01:13:36.400
Nou, dan moeten we even naar de website.

1252
01:13:36.980 --> 01:13:38.520
Had je geen reserve uitgezocht?

1253
01:13:39.440 --> 01:13:40.760
Nee, nee, we hadden er twee he.

1254
01:13:40.760 --> 01:13:43.820
We moeten ook een beetje op de tijd letten, maar we kunnen wel even nog eentje even inknallen.

1255
01:13:44.600 --> 01:13:45.620
Wil jij iets doen Johnny?

1256
01:13:45.940 --> 01:13:48.140
Ja, ik heb het net geopend.

1257
01:13:48.180 --> 01:13:51.180
De eerste die ik krijg is conference or meet-up.

1258
01:13:52.860 --> 01:13:53.520
Ik ben wel benieuwd.

1259
01:13:54.360 --> 01:13:56.060
Ben jij zo open?

1260
01:13:56.720 --> 01:13:59.100
Ja, goed, jij hebt al een paar keer gesproken, vertelde je net.

1261
01:13:59.400 --> 01:14:00.600
Ja, wat is het verschil eigenlijk?

1262
01:14:02.440 --> 01:14:06.100
Ja, ik denk toch een meet-up is een beetje meer kleinschalig en gezellig,

1263
01:14:06.100 --> 01:14:09.900
en een conference is ja groot en georganiseerd.

1264
01:14:09.940 --> 01:14:11.100
Een beetje dat denk ik.

1265
01:14:12.740 --> 01:14:13.160
Ja, zeker.

1266
01:14:14.220 --> 01:14:17.720
Ja, misschien is dit dan de vraag waar ik weer zo'n oranje kaart moet gaan trekken van in de bands.

1267
01:14:19.500 --> 01:14:20.620
Mag niet, mag niet.

1268
01:14:23.000 --> 01:14:27.080
Ik zou zeggen, als ik echt moet kiezen een meet-up.

1269
01:14:28.420 --> 01:14:33.300
Een meet-up is inderdaad wat kleinschaliger, maar ook makkelijker te organiseren en ook makkelijker virtueel te organiseren.

1270
01:14:33.300 --> 01:14:40.100
En een conferentie, dat merk je ook als je, nu zijn alle conferenties eigenlijk online.

1271
01:14:42.440 --> 01:14:46.320
Je merkt ook dat een beetje de meerwaarde van conferenties,

1272
01:14:46.320 --> 01:14:53.700
er zit hem toch in het sociale aspect en het tegenkomen van mensen die je anders niet zo snel tegenkomt.

1273
01:14:54.580 --> 01:14:59.340
En dat is bij een online conferentie toch best wel weg op het moment.

1274
01:14:59.820 --> 01:15:06.340
Bij een meet-up is dat juist wat een klein schaliger is, wat makkelijker te organiseren, dat je dat soort momenten wel hebt.

1275
01:15:08.260 --> 01:15:13.280
Je moet het explosieter organiseren, maar dat is bij een meet-up ook gewoon beter te doen, heb ik het idee.

1276
01:15:14.380 --> 01:15:18.680
Vaak ook met een kleinere club mensen, dus dat werkt dan ook beter.

1277
01:15:19.700 --> 01:15:23.380
Dus daarom zou ik zeker, in ieder geval op dit moment zeggen meet-up.

1278
01:15:23.380 --> 01:15:32.620
Op het moment dat het allemaal weer voorbij is, dan zou ik ook graag weer conferenties doen, maar nu graag eventjes meet-ups.

1279
01:15:33.400 --> 01:15:36.560
Dat heb je al deelgenomen aan digitale meet-ups?

1280
01:15:39.280 --> 01:15:42.660
Nee, nog niet.

1281
01:15:43.680 --> 01:15:51.660
Wel elke week is er een meet-up vanuit een community rondom software language engineering,

1282
01:15:51.660 --> 01:15:55.760
dat is de strumenta-community, dat we ook maar even in de show notes zetten.

1283
01:15:56.960 --> 01:15:59.220
Dus daar is elke week een meet-up van.

1284
01:15:59.400 --> 01:16:03.020
Dus daar heb ik wel aan deeg genomen en je merkt gewoon dat dat erg goed werkt.

1285
01:16:03.340 --> 01:16:08.340
Dat is de deelnemer aantal tussen de 10 en 30 zo'n beetje.

1286
01:16:08.920 --> 01:16:14.140
En daar merk je gewoon dat je erg goed vragen kunt stellen aan de presenter,

1287
01:16:14.960 --> 01:16:17.940
dat er echt goede interactie uitkomt en zo.

1288
01:16:18.340 --> 01:16:20.120
Eigenlijk ook wel beter dan bij conferenties.

1289
01:16:20.120 --> 01:16:26.300
Een conferentie is meestal gewoon, je houdt een praatje en de echte interactie zit meer in de pauze

1290
01:16:27.240 --> 01:16:29.120
dan tijdens het praatje zelf.

1291
01:16:29.660 --> 01:16:31.800
Dan zit dat veel meer in de meet-up zelf.

1292
01:16:34.340 --> 01:16:39.600
En jij Kishen, heb je al deelgenomen aan een online meet-up sinds de coronacrisis?

1293
01:16:39.760 --> 01:16:40.940
Nee, nog niet.

1294
01:16:41.820 --> 01:16:44.300
Maar we zijn wel binnen het bedrijf waar ik werk, Salves,

1295
01:16:44.960 --> 01:16:50.760
om een interne meet-up te doen met alle medewerkers van Salves.

1296
01:16:52.540 --> 01:16:58.800
Dus wij gaan dus ook de breakout-sessie van teams toepassen daarin.

1297
01:16:59.580 --> 01:17:03.500
Er schijnt dat er een nieuwe feature uitgerold is, of een beta in ieder geval.

1298
01:17:03.720 --> 01:17:04.960
Maar goed, we moeten het nog even uitzoeken.

1299
01:17:05.080 --> 01:17:07.580
Het is pas over een paar weken, dus we hebben nog even de tijd.

1300
01:17:08.640 --> 01:17:12.440
Maar we gaan dus die breakout-gedachten toepassen.

1301
01:17:12.440 --> 01:17:16.460
Dus dan gaan we één kanaal maken, en dan komen we allemaal bij elkaar.

1302
01:17:17.840 --> 01:17:21.060
En dan kondigen we het programma aan.

1303
01:17:21.400 --> 01:17:28.440
En dan is het aan iedereen om hetzelfde te bepalen of je in Room 1 tot en met X zou willen deelnemen.

1304
01:17:29.840 --> 01:17:34.420
Ja, ik had bij mijn vorige week gegeven, inderdaad hadden we dan breakout-sessions in Zoom.

1305
01:17:35.840 --> 01:17:38.160
Dus het is eigenlijk gewoon een kopie, denk ik, daarvan.

1306
01:17:38.400 --> 01:17:38.960
Ja, zeker.

1307
01:17:39.780 --> 01:17:43.960
Je kan het natuurlijk met de hand ook gewoon in Teams helemaal zelf organiseren.

1308
01:17:45.060 --> 01:17:49.800
Maar ik heb wel begrepen, ik had het ergens gezien op LinkedIn, volgens mij, dat ze een nieuwe feature,

1309
01:17:50.080 --> 01:17:55.160
omdat Zoom natuurlijk al daar zo populair in was, gaan ze dat bij Teams ook doen.

1310
01:17:55.700 --> 01:17:57.700
Ik denk dat het een hele slimme toevoeging is.

1311
01:17:58.080 --> 01:17:58.560
Ja, zeker.

1312
01:17:58.840 --> 01:18:04.880
En dat maakt het ook echt veel gemakkelijker om ook van het ene naar het andere toe te gaan, denk ik.

1313
01:18:04.880 --> 01:18:15.320
Ja, ik vind het wel leuk om te zien dat die hele coronacrisis toch wel een beetje een soort paper in de kont is geweest voor bedrijven die dit soort collaboration tools maken.

1314
01:18:15.400 --> 01:18:21.040
Want je ziet ook, vandaag kondigde Slack aan ook weer twee nieuwe features te gaan lanceren.

1315
01:18:21.540 --> 01:18:29.300
Ze gaan bijvoorbeeld een soort voice chat implementeren, dus ala Discord, dus dat je voice channels hebt.

1316
01:18:29.460 --> 01:18:33.540
Nou goed, er zijn ook een aantal losse applicaties voor heel populair geworden de laatste tijd.

1317
01:18:34.420 --> 01:18:39.540
En er was nog iets wat ze ging introduceren.

1318
01:18:40.440 --> 01:18:50.820
En ja, ik vind het wel leuk om te zien dat echt die coronacrisis een enorme vlucht laat nemen in die software ontwikkeling van dit soort tooling.

1319
01:18:51.440 --> 01:18:59.320
Ja, en ik denk ook wel in bredere zin in hoe mensen met elkaar samenwerken, want dat wordt heel erg gefaciliteerd door software uiteraard.

1320
01:18:59.320 --> 01:19:05.800
Maar uiteindelijk zijn het wel de mensen zelf en de bedrijven zelf die ook daadwerkelijk moeten willen veranderen.

1321
01:19:05.860 --> 01:19:08.360
En nu moeten ze natuurlijk wel.

1322
01:19:09.240 --> 01:19:11.700
Dat is een goede zet in de goede richting.

1323
01:19:11.960 --> 01:19:18.960
Ik vind het wel heel fijn om te zien dat bijvoorbeeld dingen als thuiswerken, dat er nu veel meer over nagedacht wordt.

1324
01:19:20.100 --> 01:19:26.180
Je moet het aan de ene kant wel doen, maar aan de andere kant, het wordt dus ook veel beter gefaciliteerd door de bedrijven zelf.

1325
01:19:26.180 --> 01:19:30.140
Wat je voorheen nog wel eens een keertje had van, ja, je mag gewoon pantoor zijn,

1326
01:19:30.840 --> 01:19:37.000
is, nou ja, de managers die dat riepen, die riepen nu als eerste van, ja, maar dan moet je wel thuis gaan werken.

1327
01:19:38.200 --> 01:19:39.720
Dat werk moet gewoon doorgaan.

1328
01:19:40.020 --> 01:19:40.980
Ja, precies.

1329
01:19:42.520 --> 01:19:48.500
Ja, ik vind het ook prettiger of zo, want ik ben ook wat beter in mijn time management.

1330
01:19:49.680 --> 01:19:54.840
Dus gewoon het idee dat iemand even je aandacht nodig geeft en dat hij dan eerst even een berichtje stuurt, weet je wel,

1331
01:19:54.840 --> 01:20:00.420
die je dan zelf kiest om te lezen of niet, en dan daarna pas door te gaan.

1332
01:20:01.260 --> 01:20:05.180
Kijk, het is even persoonlijk hoor, het kan zijn dat anderen het minder prettig vinden,

1333
01:20:05.980 --> 01:20:08.800
maar van mij werkt het in ieder geval wel lekker, moet ik zeggen.

1334
01:20:10.520 --> 01:20:11.340
Nou, hartstikke mooi.

1335
01:20:12.000 --> 01:20:16.020
Nou goed, dan zijn we weer toe aan het volgende en tevens ook het laatste onderdeel.

1336
01:20:17.180 --> 01:20:18.440
Dat is eigenlijk de goodies.

1337
01:20:19.260 --> 01:20:23.380
Ja, dat is misschien niet elke aflevering, maar we proberen het natuurlijk wel zoveel mogelijk.

1338
01:20:23.380 --> 01:20:28.360
Maar we willen even bij dit onderdeel even stilstaan bij Manning.

1339
01:20:28.840 --> 01:20:35.440
Manning, heel erg bedankt dat wij namens Manning ook Mijnt ook in de show hebben gekregen.

1340
01:20:36.240 --> 01:20:40.080
Die heeft ons getippt van is het misschien leuk om eens Mijnt uit te nodigen,

1341
01:20:40.180 --> 01:20:43.280
en dat is het zeker, want het is heel erg interessant geweest het onderwerp,

1342
01:20:43.440 --> 01:20:46.560
want om model driven development of engineering.

1343
01:20:48.300 --> 01:20:51.660
En Manning die wilde ook als bedankje, ja,

1344
01:20:51.780 --> 01:20:56.560
eigenlijk alle podcast luisteraars 35 procent discount code afleveren.

1345
01:20:58.260 --> 01:21:02.460
En dat geldt ook echt voor alle producten die ze hebben op de Manning website,

1346
01:21:02.960 --> 01:21:03.780
ook in alle formaten.

1347
01:21:04.760 --> 01:21:07.240
Dus mocht je geïnteresseerd zijn, ja,

1348
01:21:07.300 --> 01:21:11.080
kom naar onze Slack channel, DM een van ons en ja,

1349
01:21:11.180 --> 01:21:12.380
we delen de code uit.

1350
01:21:13.660 --> 01:21:15.020
Dus ik zou ook snel zijn,

1351
01:21:15.020 --> 01:21:18.020
want het is twee maanden geldig heb ik begrepen.

1352
01:21:19.520 --> 01:21:20.960
Dus ja, meld je aan.

1353
01:21:21.540 --> 01:21:25.640
En ja, de Slack kanaal die staat natuurlijk in onze codeklets.nl website.

1354
01:21:27.540 --> 01:21:30.620
En daarnaast hebben ze ook een leuke actie.

1355
01:21:31.040 --> 01:21:34.840
En ik denk dat we daar natuurlijk ook Mijnt heel blij mee gaan maken,

1356
01:21:35.040 --> 01:21:37.820
is om meer lezers van zijn boek te krijgen.

1357
01:21:37.920 --> 01:21:39.300
En dat heeft hij natuurlijk al heel veel,

1358
01:21:40.000 --> 01:21:41.560
maar om dat nog meer op te krikken.

1359
01:21:41.560 --> 01:21:45.860
Mening geeft ook vier gratis e-book coders weg.

1360
01:21:47.060 --> 01:21:48.820
En dus dan kan je met die code,

1361
01:21:49.340 --> 01:21:52.520
de domain specific languages made easy van Mijnt,

1362
01:21:52.620 --> 01:21:53.640
kan je dan downloaden.

1363
01:21:55.180 --> 01:21:57.280
En uiteraard zijn we nieuwsgierig wat je er van vindt.

1364
01:21:57.840 --> 01:22:00.600
En ja, we komen ook graag terug bij de Slack channel

1365
01:22:00.600 --> 01:22:02.860
om je kennis en ervaring te delen.

1366
01:22:03.040 --> 01:22:06.280
Het zou ook leuk zijn als misschien Mijnt ook ons joint.

1367
01:22:06.660 --> 01:22:09.760
Wellicht krijg je ook nog wel een leuke vraag van de luisteraars.

1368
01:22:09.760 --> 01:22:12.760
Dus dan kunnen we deze vibe nog een beetje doorpakken.

1369
01:22:14.920 --> 01:22:17.000
Dus ja, en hoe je die kan winnen?

1370
01:22:17.080 --> 01:22:19.160
Nou, daar hebben we wel even over nagedacht, Johnny.

1371
01:22:19.820 --> 01:22:23.840
Ja, we gaan dat natuurlijk niet zomaar uitdelen.

1372
01:22:24.200 --> 01:22:26.040
Iedereen krijgt wel 35 procent korting,

1373
01:22:26.140 --> 01:22:28.220
maar als je 100 procent korting op het boek van Mijnt,

1374
01:22:28.240 --> 01:22:29.420
dan moet je er wel wat voor doen natuurlijk.

1375
01:22:30.720 --> 01:22:35.160
En ja, we hebben sinds een aantal afleveringen nu vijf hosts.

1376
01:22:35.680 --> 01:22:37.760
En deze vraag gaat eigenlijk vrij specifiek

1377
01:22:38.560 --> 01:22:43.140
over een van de hosts en dat is Pauline in dit geval.

1378
01:22:43.880 --> 01:22:46.940
En ja, ze heeft in het verleden bij aflevering 1 was ze te gast.

1379
01:22:47.140 --> 01:22:49.620
Ze is al een aantal keer als host ook heeft ze deelgenomen.

1380
01:22:49.980 --> 01:22:51.400
Ze zit ook op Slack.

1381
01:22:52.540 --> 01:22:56.340
Maar eigenlijk de vraag die wij willen stellen aan de luisteraars is

1382
01:22:56.340 --> 01:23:00.020
in welk land heeft Pauline vorig jaar gewerkt?

1383
01:23:00.440 --> 01:23:01.620
Inmiddels is ze weer terug in Nederland,

1384
01:23:01.820 --> 01:23:04.160
maar vorig jaar heeft ze in het buitenland een tijdje gewerkt.

1385
01:23:04.160 --> 01:23:08.400
En wij willen graag van jou horen welk land dat dan was.

1386
01:23:08.700 --> 01:23:10.140
Dit kun je vinden.

1387
01:23:10.320 --> 01:23:11.840
Ik ga er verder niet vertellen hoe, natuurlijk.

1388
01:23:12.160 --> 01:23:13.780
Maar het is zeker de vindbaar.

1389
01:23:14.980 --> 01:23:20.120
En ja, ook weer via het Slack kanaal kun je dat aan ons doorgeven.

1390
01:23:20.700 --> 01:23:23.200
En dan inderdaad, als je een van de allereerste vijf bent,

1391
01:23:23.640 --> 01:23:27.160
dan krijg je een code waarmee je het boek van Mijnt kunt bestellen.

1392
01:23:30.860 --> 01:23:31.280
Super.

1393
01:23:32.740 --> 01:23:33.480
Super, hè?

1394
01:23:34.280 --> 01:23:35.780
Nou, helemaal goed.

1395
01:23:36.760 --> 01:23:37.980
Hartstikke bedankt, Mijnte,

1396
01:23:38.020 --> 01:23:43.640
dat je in deze elfde aflevering van de CodeKlets podcast aanwezig kon zijn.

1397
01:23:45.420 --> 01:23:47.540
Nog wel een belangrijk vraagje, Mijnte.

1398
01:23:48.040 --> 01:23:50.180
De status van het boek, wat is dat?

1399
01:23:50.400 --> 01:23:51.320
Kunnen we het al lezen?

1400
01:23:52.840 --> 01:23:55.200
Ja, we kunnen het gratis krijgen, dat is duidelijk.

1401
01:23:55.440 --> 01:23:56.880
Maar hoe gaat het met het werk hier?

1402
01:23:57.420 --> 01:23:59.580
Nou, je kunt de eerste zes hoofdstukken al lezen.

1403
01:23:59.580 --> 01:24:04.320
Het is namelijk in voorpublicatie, of zoals dat bij Manning heet,

1404
01:24:04.600 --> 01:24:07.260
Manning Early Access Program, de MIEP.

1405
01:24:09.180 --> 01:24:13.920
Dat kun je vinden via de website van Manning inderdaad.

1406
01:24:14.960 --> 01:24:19.680
En het is de bedoeling om in komend voorjaar klaar te zijn.

1407
01:24:20.720 --> 01:24:24.660
Dus dan gaat het als het goed is naar de drukker en is het helemaal af.

1408
01:24:25.120 --> 01:24:25.740
Nou, mooi.

1409
01:24:27.120 --> 01:24:29.580
Als ik het goed begrijp, voorjaar zeg je dus?

1410
01:24:29.940 --> 01:24:30.360
Ja, voorjaar.

1411
01:24:30.840 --> 01:24:33.080
Niet met de kerst helaas, maar goed.

1412
01:24:33.680 --> 01:24:35.220
Nee, dat ga ik niet redden, dat ben ik bang aan.

1413
01:24:36.980 --> 01:24:39.220
Hartstikke goed, dank je wel voor het delen ervan.

1414
01:24:39.780 --> 01:24:42.000
Nou, ja, nogmaals bedankt voor het aanwezig zijn.

1415
01:24:43.860 --> 01:24:48.780
En Johnny natuurlijk, ik vond het leuk om deze podcast samen met jou op te nemen.

1416
01:24:49.200 --> 01:24:51.400
Ja, is het nou de eerste keer zonder Saber, of niet?

1417
01:24:51.500 --> 01:24:52.640
Ja, dat denk ik wel, ja.

1418
01:24:52.640 --> 01:24:55.660
Ik probeerde een beetje zijn zoele stem erin te houden,

1419
01:24:55.760 --> 01:24:57.520
maar dat is volgens mij een beetje mislukt.

1420
01:24:57.680 --> 01:24:58.900
Nou, je hebt nog een kans bij de outro.

1421
01:24:59.540 --> 01:25:00.620
Oké, nou goed.

1422
01:25:01.260 --> 01:25:02.400
Nou, dat was hem weer.

1423
01:25:04.580 --> 01:25:06.380
Hé jongens, hartstikke bedankt.

1424
01:25:06.740 --> 01:25:09.300
Zoals ik al zei, we gaan naar de outro.

1425
01:25:09.680 --> 01:25:15.340
Zoals altijd, zoals we altijd zeggen, dat je je altijd kan abonneren bij ons.

1426
01:25:15.920 --> 01:25:18.820
Doe dat vooral in je favoriete podcast speler.

1427
01:25:20.140 --> 01:25:21.100
Spotify, iTunes.

1428
01:25:21.100 --> 01:25:22.320
Ja, mis ik iets?

1429
01:25:22.400 --> 01:25:23.820
Nee, het is niet iTunes tegenwoordig.

1430
01:25:23.940 --> 01:25:24.460
Het is Music.

1431
01:25:24.920 --> 01:25:30.100
Ja, zoek ons ook op kodeklets.nl.

1432
01:25:32.420 --> 01:25:34.100
En wil je met ons gaan babbelen?

1433
01:25:34.360 --> 01:25:36.540
Ja, graag ook op ons Slack kanaal.

1434
01:25:36.920 --> 01:25:39.320
Daar hebben we ook een speciale link voor gemaakt.

1435
01:25:40.960 --> 01:25:44.200
En het gemakkelijkste is inderdaad gewoon om via die kodeklets.nl te gaan

1436
01:25:44.200 --> 01:25:45.820
en daar alle linkjes te vinden

1437
01:25:45.820 --> 01:25:48.540
en de favoriete spelers er aan te selecteren.

1438
01:25:49.320 --> 01:25:52.180
En op de site staat link naar Slack bovenaan.

1439
01:25:52.280 --> 01:25:53.200
Daar is hij niet zo verstopt meer.

1440
01:25:53.340 --> 01:25:54.680
Dus dat is wel beter.

1441
01:25:54.880 --> 01:25:56.340
Dat is zeker beter, ja.

1442
01:25:57.080 --> 01:25:58.020
Nou, goed, mooi.

1443
01:25:58.940 --> 01:26:03.660
En ik heb ook begrepen dat de site gegeneerd is.

1444
01:26:04.140 --> 01:26:06.980
Even kijken, gek genoemd, staat er in de gegeneerde site

1445
01:26:07.520 --> 01:26:09.000
handige links van ons allemaal.

1446
01:26:09.100 --> 01:26:09.760
Dus dat is mooi.

1447
01:26:10.540 --> 01:26:12.440
Dus het is helemaal geautomatiseerd, blijkbaar.

1448
01:26:12.640 --> 01:26:13.540
Ja, helemaal mooi, joh.

1449
01:26:13.780 --> 01:26:15.260
Heb je daar dan een belletje voor gebruikt?

1450
01:26:16.160 --> 01:26:20.720
Ja, dat zouden we nog eens een keer samen kunnen voorleggen.

1451
01:26:21.100 --> 01:26:25.600
Dan zouden we niet model-driven development moeten doen op die site.

1452
01:26:27.040 --> 01:26:30.880
Ja, en we hebben het al een paar keren genoemd in de podcast.

1453
01:26:31.000 --> 01:26:33.740
We zullen de show notes ook daarbij zetten.

1454
01:26:34.740 --> 01:26:37.660
En dan is het toch heel gemakkelijk voor iedereen om even achteraf

1455
01:26:37.660 --> 01:26:39.320
nog even door te kletsen.

1456
01:26:39.320 --> 01:26:41.800
Of ja, te kletsen, sowieso, maar door te lezen.

1457
01:26:42.480 --> 01:26:44.080
En natuurlijk zitten wij ook op Twitter.

1458
01:26:44.080 --> 01:26:45.500
We hebben een Instagram-account.

1459
01:26:45.620 --> 01:26:48.100
Op LinkedIn ook tegenwoordig, heb ik begrepen.

1460
01:26:48.620 --> 01:26:50.180
Dus ja, join us, join the fun.

1461
01:26:51.860 --> 01:26:55.180
En ja, retweeten en likes, die zijn ook altijd lief als je dat voor ons doet.

1462
01:26:56.060 --> 01:26:57.460
Nou, in ieder geval, als ik er bedankt.

1463
01:26:57.720 --> 01:26:58.460
En tot ziens.

1464
01:26:58.780 --> 01:26:59.320
Dank je wel.

1465
01:26:59.640 --> 01:27:00.300
Doei doei.

1466
01:27:00.420 --> 01:27:01.040
Doei doei.

1467
01:27:01.900 --> 01:27:02.260
Hoi.
