@@ -13,7 +13,7 @@ building a Haskell community. So even though my personal website is proudly
13
13
generated by Hakyll, I met Jasper when we served together at haskell.org. So
14
14
Jasper, can you tell us a little bit about haskell.org?
15
15
16
- _ Jasper van der Jeugt_ : Hi yeah, so thank you for having me first and for all. Um so haskell.org is
16
+ _ Jasper Van der Jeugt_ : Hi yeah, so thank you for having me first and for all. Um so haskell.org is
17
17
the foundation that's legally responsible I think for a lot of the stuff
18
18
that's going on in the Haskell community. It has a board and you know there's
19
19
um, people serve terms on it. Um I think it was originally started because
@@ -57,7 +57,7 @@ goal of Haskell Foundation is to achieve more things, and as you said, but
57
57
maybe you can clarify, to make change under a more official organization. But
58
58
it's a collaboration, right?
59
59
60
- _ JvdJ :_ Right. And I think the goals are really largely the same for both
60
+ _ JVdJ :_ Right. And I think the goals are really largely the same for both
61
61
organizations, like we both want to see basically increase Haskell adoption,
62
62
make it more easier for new people to get into Haskell, and make everything
63
63
sort of smooth run, make sure there's no large bad disagreements in the
@@ -69,7 +69,7 @@ board, existing for so long, could just have grown into this new thing and and
69
69
why was that not done then? Why do we now have two foundations that at least by
70
70
surface value seem to be rather similar in their goals and scope?
71
71
72
- _ JvdJ :_ I think that's a great question. Um, so yeah, I think Simon Peyton Jones
72
+ _ JVdJ :_ I think that's a great question. Um, so yeah, I think Simon Peyton Jones
73
73
together with Mathieu Boespflug from Tweag, and a few other people were, I
74
74
think, Tim Sears as well, were the people who sort of came up with the the idea
75
75
of the Haskell Foundation. Um, and haskell.org was really one of the first
@@ -86,7 +86,7 @@ speaking for the committee or or whatsoever.
86
86
87
87
_ JB:_ Sure.
88
88
89
- _ JvdJ :_ I think it's feasible that in a couple of years there will be only one
89
+ _ JVdJ :_ I think it's feasible that in a couple of years there will be only one
90
90
organization, um, that drives, because as you said they have very similar
91
91
goals and so on. But also on the other hand haskell.org has existed for maybe
92
92
10, 12 years now ... No, it must have been must be way more than, I'm actually
@@ -104,27 +104,27 @@ this microservice running and it does one thing well and let's just build a
104
104
second microservice next to it instead of just of redoing it and if it goes
105
105
wrong, breaking the running foundation in a way.
106
106
107
- _ JvdJ :_ Yeah.
107
+ _ JVdJ :_ Yeah.
108
108
109
109
_ JB:_ Yeah, that makes sense.
110
110
111
- _ JvdJ :_ Obviously due to, like the Haskell Foundation has a lot of potential to be
111
+ _ JVdJ :_ Obviously due to, like the Haskell Foundation has a lot of potential to be
112
112
better, I think, if only for the fact that the haskell.org committee is just a
113
113
couple of volunteers while Haskell Foundation is actually be able to employ
114
114
people, right, to work on so full time, which makes a huge difference. So yeah,
115
115
we'll see, I'm pretty excited for it, for the Haskell Foundation.
116
116
117
117
_ NV:_ Currently you keep, like, haskell.org keeps the Summer of Code, right?
118
118
119
- _ JvdJ :_ Right. Yeah.
119
+ _ JVdJ :_ Right. Yeah.
120
120
121
121
_ NV:_ Which is one of the most active, let's say contributions, that it is doing.
122
122
123
- _ JvdJ :_ Yes.
123
+ _ JVdJ :_ Yes.
124
124
125
125
_ NV:_ So maybe do you want to tell us what it is, for somebody who doesn't know?
126
126
127
- _ JvdJ :_ Yeah, um, so Google Summer of Code is a program in which Google pays
127
+ _ JVdJ :_ Yeah, um, so Google Summer of Code is a program in which Google pays
128
128
students who work on open source software. Obviously there's some, you know,
129
129
you need to have some kind of filter, right? You can't just have students apply
130
130
directly to Google, because then Google has to sift through millions of
@@ -158,7 +158,7 @@ it, because Styish Haskell is also pretty widely used now.
158
158
159
159
_ JB:_ What what is Stylish Haskell? Just for those who don't know?
160
160
161
- _ JvdJ :_ So Stylish Haskell is a code formatter that will take a Haskell program and
161
+ _ JVdJ :_ So Stylish Haskell is a code formatter that will take a Haskell program and
162
162
reformat it. So it differs from other formatters like Ormolu or maybe most
163
163
famously goformat, gofmt from golang, which I think is the formatter that kind
164
164
of introduced the idea that you just run your code through a tool, and
@@ -176,7 +176,7 @@ of things.
176
176
177
177
_ NV:_ Is it like HLint?
178
178
179
- _ JvdJ :_ Um, no. So HLint really looks at the meaning of your program, where Stylish
179
+ _ JVdJ :_ Um, no. So HLint really looks at the meaning of your program, where Stylish
180
180
Haskell really just looks at the syntax. And for example, it will make sure,
181
181
you know, if you have a Haskell program with a lot of imports. It will
182
182
sort of align them all nicely with the things that you're importing on
@@ -185,7 +185,7 @@ and, yeah, bunch of improvements like that.
185
185
186
186
_ JB:_ Okay, so you were talking about the GSOC project for Stylish Haskell.
187
187
188
- _ JvdJ :_ Right. Yeah, okay, to get back. Yeah, so that was a lot of fun. But ah, but
188
+ _ JVdJ :_ Right. Yeah, okay, to get back. Yeah, so that was a lot of fun. But ah, but
189
189
this year unfortunately I didn't really have too much time to mentor someone
190
190
myself, so I was just taking care of the admin work, um, but I'm still pretty
191
191
happy actually about GSOC, especially because it was the way I sort of
@@ -198,13 +198,13 @@ Meier and Johan Tibell ...
198
198
199
199
_ NV:_ So these were your mentors.
200
200
201
- _ JvdJ :_ These were my mentors, yeah. And I think that project is really where I
201
+ _ JVdJ :_ These were my mentors, yeah. And I think that project is really where I
202
202
learned Haskell. So even though I was writing Haskell before, that's a point
203
203
where I really learned Haskell.
204
204
205
205
_ NV:_ This blaze-html, what is that?
206
206
207
- _ JvdJ :_ So blaze-html is an HTML combinator library. So it's a Haskell library that
207
+ _ JVdJ :_ So blaze-html is an HTML combinator library. So it's a Haskell library that
208
208
gives you a number of functions like for example ... and basically these
209
209
functions map exactly to HTML elements. So for example, if you want to write a
210
210
paragraph in HTML you would use a "p" tag. And so blaze-html maps that to a "p"
@@ -227,7 +227,7 @@ the details of that current implementation, how it is different from your
227
227
approach back then, and what prevented that GSOC approach back then to
228
228
actually land in the main line of text.
229
229
230
- _ JvdJ :_ Yeah, um, that's indeed a pretty funny story. So after I did the blaze-html
230
+ _ JVdJ :_ Yeah, um, that's indeed a pretty funny story. So after I did the blaze-html
231
231
project for my first Google Summer of Code, one of the other things that also
232
232
came out of that was this library called blaze-builder, which I ... which was
233
233
more like Simon Meier's thing than it was my thing. He put a lot of effort into
@@ -261,7 +261,7 @@ answer for it. And so the main advantage ...
261
261
_ NV:_ Wait, what do you mean when you say better? Is it memory efficient, or
262
262
runtime, or what is the criteria?
263
263
264
- _ JvdJ :_ Well, that's also the hard question, right? What is the criteria? So like
264
+ _ JVdJ :_ Well, that's also the hard question, right? What is the criteria? So like
265
265
it could be either like it's just faster to process ... For example, UTF-16 is
266
266
faster to process in general, because for every character you process, there's
267
267
only going to be two cases, right? It's either two wide or four wide. On the
@@ -312,7 +312,7 @@ better choice for most of our users, or is there anything else that has changed
312
312
an ecosystem of text or the mentality of Haskell developers to make it possible
313
313
now?
314
314
315
- _ JvdJ :_ I think what's changed is that, and I'm not really sure, because I was a
315
+ _ JVdJ :_ I think what's changed is that, and I'm not really sure, because I was a
316
316
student at the time, of course, I didn't really know how the internet worked
317
317
and how companies work and that that kind of thing ... And it's only ten
318
318
years ago, so I think back then UTF-8 was already becoming sort of ubiquitous
@@ -332,7 +332,7 @@ story.
332
332
333
333
_ JB:_ Yeah I think that makes sense.
334
334
335
- _ JvdJ :_ And obviously the, I think, Haskell Foundation is also a bit directed, of
335
+ _ JVdJ :_ And obviously the, I think, Haskell Foundation is also a bit directed, of
336
336
course, by what the industry wants. And think especially for, yeah, in the
337
337
industry it makes just sense to use UTF-8 at this point.
338
338
@@ -341,12 +341,12 @@ plenty of that related to your work with Haskell as well. In particular very
341
341
recently you've organized the ICFP Programming Contest. So how do you get to do
342
342
that?
343
343
344
- _ JvdJ :_ That's an interesting question. I'm not really sure how I got to do that.
344
+ _ JVdJ :_ That's an interesting question. I'm not really sure how I got to do that.
345
345
Um ...
346
346
347
347
_ NV:_ Would you do it again?
348
348
349
- _ JvdJ :_ So first of all, no I would never do this again. It's been one of the best
349
+ _ JVdJ :_ So first of all, no I would never do this again. It's been one of the best
350
350
experiences, sort of programming-related, I have had, just because you
351
351
really um, okay so maybe we need to put a little bit more more context
352
352
here. So the ICFP contest is a programming contest that's held, so it's
@@ -378,7 +378,7 @@ a TV game show. So the real world application is not super important.
378
378
379
379
_ NV:_ Which TV show?
380
380
381
- _ JvdJ :_ Right, so this year the problem was based on this Japanese TV game show
381
+ _ JVdJ :_ Right, so this year the problem was based on this Japanese TV game show
382
382
where you're, so you're standing next to a pool and there's this giant
383
383
styrofoam wall coming towards you with a hole cut out, and the hole would
384
384
but be like some strange shape. Obviously for ICFP Programming Contest we
@@ -397,7 +397,7 @@ right? Because the edges are rigid so you can't really manipulate it or ...
397
397
398
398
_ NV:_ All of them are connected.
399
399
400
- _ JvdJ :_ Yeah, because all of them are connected. But if you get a square, yeah, if
400
+ _ JVdJ :_ Yeah, because all of them are connected. But if you get a square, yeah, if
401
401
you get a square or rectangle there's more you can do with it, right? Because
402
402
you can kind of squeeze it together or make it longer and then
403
403
especially if you have a bunch of squares and triangles and they're all
@@ -417,7 +417,7 @@ similar to the hole is better.
417
417
_ NV:_ And so I have two questions. One is: can somebody play the game now? Is it
418
418
still up?
419
419
420
- _ JvdJ :_ Yeah, yeah, so we, I mean, the PDF is still out there with the problem
420
+ _ JVdJ :_ Yeah, yeah, so we, I mean, the PDF is still out there with the problem
421
421
description and we also still have the website available where you can submit
422
422
solutions and so on, so you can still try it out and also all of our automated
423
423
searches and tools like basically everything is open source now. But of course
@@ -426,11 +426,11 @@ a lot of the participants have also open sourced their code.
426
426
_ NV:_ Okay. So my other question is: It sounds like all this has a lot of
427
427
graphics.
428
428
429
- _ JvdJ :_ Yeah.
429
+ _ JVdJ :_ Yeah.
430
430
431
431
_ NV:_ Did you develop all this in Haskell?
432
432
433
- _ JvdJ :_ Um, we did ... the, okay, to take small step back, I think one of the
433
+ _ JVdJ :_ Um, we did ... the, okay, to take small step back, I think one of the
434
434
constraints we really had when we were coming up with the problem is that
435
435
graphical is good. Likw it's very nice and draws people in if you can
436
436
visualize problems, and obviously I was explaining the problem to you just now
@@ -454,7 +454,7 @@ quite easy to generate as well from Haskell and you could ...
454
454
_ JB:_ I've heard that there's a blaze-based library for generating that. Maybe
455
455
you you knew about that already ...
456
456
457
- _ JvdJ :_ Yeah, there is. I'm not, I'm actually not ... Like, I know who did it, but
457
+ _ JVdJ :_ Yeah, there is. I'm not, I'm actually not ... Like, I know who did it, but
458
458
II'm not the author of that, actually, and we ended up making a small own
459
459
library actually for the contest to deal with SVGs just because we wanted to do
460
460
some sort of animations and so on. But yeah, please don't use this library, of
@@ -465,7 +465,7 @@ _NV:_ And okay, so you put all these efforts on Haskell, you developed your own
465
465
language, your own library and you have a most probably correct game
466
466
definition with graphics. And who won the contest?
467
467
468
- _ JvdJ :_ So the contest was won by RGB Team. Ah, they're a team of three programmers
468
+ _ JVdJ :_ So the contest was won by RGB Team. Ah, they're a team of three programmers
469
469
from Belarus, I think, and, I think one of them is quite well known in the
470
470
competitive programming community. It was quite ... so one of the interesting
471
471
things about the contest is that people were, rather than relying on fully
@@ -484,7 +484,7 @@ expect that people would go so far with this.
484
484
485
485
_ NV:_ C++ won the context as usual, no?
486
486
487
- _ JvdJ :_ Um, so yeah, the winners used C++ but I think the most interesting
487
+ _ JVdJ :_ Um, so yeah, the winners used C++ but I think the most interesting
488
488
observation is that all 3 Okay yeah.
489
489
490
490
_ NV:_ ICFP contest is generated by ICFP, which is this Haskell-friendly
@@ -493,7 +493,7 @@ problems that are designed to be solved by functional programming are still
493
493
better solved by C++, so is it the programmer or is it the language, and
494
494
how much at the end the language can improve the solution?
495
495
496
- _ JvdJ :_ That's a good question. So I think, first I don't think the problems are
496
+ _ JVdJ :_ That's a good question. So I think, first I don't think the problems are
497
497
designed to be better solvable with functional languages. Um, usually
498
498
there's some sort of functional programming references or components in
499
499
there. But that's really just because the people who organize it traditionally
@@ -507,7 +507,7 @@ after three days. Some things are helpful, I think.
507
507
_ NV:_ Is that important for the corner cases which is what most of this contest
508
508
try to ...
509
509
510
- _ JvdJ :_ Yeah, so I think in in our context there were a lot of corner cases and
510
+ _ JVdJ :_ Yeah, so I think in in our context there were a lot of corner cases and
511
511
edge cases especially with regards to geometry. So I think, I mean obviously
512
512
I'm speaking for myself, doing it in Haskell is much more enjoyable. I think in
513
513
general, if you're doing this sort of contest, just using anything with a type
@@ -523,11 +523,11 @@ competitive programming language of the future.
523
523
524
524
_ NV:_ In Rust. No C++ anymore.
525
525
526
- _ JvdJ :_ No, I think the winners still used C++.
526
+ _ JVdJ :_ No, I think the winners still used C++.
527
527
528
528
_ NV:_ As always.
529
529
530
- _ JvdJ :_ Although I'm not sure which parts were in C++ and which ones were in Rust.
530
+ _ JVdJ :_ Although I'm not sure which parts were in C++ and which ones were in Rust.
531
531
So it's also very common for in these programming contests to use multiple
532
532
languages. I don't really know why that is, I suspect you're just with
533
533
three or four people in a team just trying to get stuff done really as
@@ -542,7 +542,7 @@ briefly just pitching the game so that the listeners will after this
542
542
podcast go to your website and play these games and enjoy them. So what are
543
543
these games?
544
544
545
- _ JvdJ :_ So like many people, I think, I originally got interested in computer
545
+ _ JVdJ :_ So like many people, I think, I originally got interested in computer
546
546
programming because of game programming, or like you, you're a teenager, you
547
547
play video games, you're sort of creative like ah I want to try making some
548
548
video games. That's also one of the reasons C++ was my first language, I think,
@@ -607,15 +607,15 @@ programming contest.
607
607
608
608
_ JB:_ Because it's too simple, or ...?
609
609
610
- _ JvdJ :_ Um, I don't think it's too simple. I think the problem is if you're working
610
+ _ JVdJ :_ Um, I don't think it's too simple. I think the problem is if you're working
611
611
with this hyperbolic geometry, it has a really high barrier to entry, of
612
612
entry to just sort of you know, put down all the sort of primitive
613
613
functions and so on you're going to use. Also writing a visualizer becomes very
614
614
hard. So first of all, there's this really high barrier of entry. Second ...
615
615
616
616
_ JB:_ Because it's too mathy in a way ...
617
617
618
- _ JvdJ :_ Yeah, I think it's too mathy in a way. And secondly, then, once you sort
618
+ _ JVdJ :_ Yeah, I think it's too mathy in a way. And secondly, then, once you sort
619
619
of get past that hurdle, I think it would be in most problems you would just
620
620
kind of represent the grid of tiles as a graph, you know, where you have a
621
621
node and then you have neighboring nodes representing the neighbors of the
@@ -640,7 +640,7 @@ _NV:_ So I still find it amazing that you use Haskell to develop games and to
640
640
make them run in your browser. So I want to ask as somebody who doesn't know
641
641
anything on how to build all this stuff in Haskell, how can i start?
642
642
643
- _ JvdJ :_ So well, this is actually, these two games are actually written in
643
+ _ JVdJ :_ So well, this is actually, these two games are actually written in
644
644
PureScript, not in Haskell, and before that I also tried to do some games in
645
645
Elm as well and I also tried Haskell in the browser. Yeah, these three are
646
646
really the the ones I've tried: PureScript, Haskell, Elm. I would, I think
@@ -668,12 +668,12 @@ one.
668
668
669
669
_ NV:_ You support which? At which side are you?
670
670
671
- _ JvdJ :_ Oh I'm a lazy person both in terms of my life and programming language
671
+ _ JVdJ :_ Oh I'm a lazy person both in terms of my life and programming language
672
672
preferences.
673
673
674
674
_ NV:_ Makes sense.
675
675
676
- _ JvdJ :_ Yeah, composability by default is I think the way to go. But yeah, well, I
676
+ _ JVdJ :_ Yeah, composability by default is I think the way to go. But yeah, well, I
677
677
ran into this a couple of times in PureScript. When for example, something
678
678
would be just an infinite recursion error because the language is strict,
679
679
right? And I'm used to doing lazy things. But overall I think it's, PureScript
@@ -691,7 +691,7 @@ two hour forty minutes playthrough by some Twitch gamer on Youtube so if people
691
691
want to um, see it but they're too lazy to play themselves, they can actually
692
692
sit there for two hours and watch somebody else do it. Which is impressive.
693
693
694
- _ JvdJ :_ Yeah I think it's actually, I saw the video as well and I think it's very
694
+ _ JVdJ :_ Yeah I think it's actually, I saw the video as well and I think it's very
695
695
impressive, like the time he took to go through the puzzles. Because of, I mean
696
696
doing a puzzle game is quite fun, especially if you're designing it with more
697
697
than one person, because you can both kind of create puzzles, right, and
@@ -703,7 +703,7 @@ closing question. So yeah, I would like to ask what you think it's missing
703
703
maybe to be able to use only Haskell to develop these fancy games and
704
704
where do you see Haskell going.
705
705
706
- _ JvdJ :_ That's a very open-ended question. So obviously I do more than programming
706
+ _ JVdJ :_ That's a very open-ended question. So obviously I do more than programming
707
707
games, I also do some open source projects, and what I need for that is very
708
708
different than what I need for games. I don't feel like I need a lot from
709
709
Haskell. I'm a very I think sort of individualistic person, right? In terms of,
@@ -727,7 +727,7 @@ ways to do if-else in Haskell, right? But I ended up using it a lot now and, so
727
727
728
728
_ NV:_ And this is a language extension.
729
729
730
- _ JvdJ :_ Yeah, this is a language extension. So I would say I'm super happy with
730
+ _ JVdJ :_ Yeah, this is a language extension. So I would say I'm super happy with
731
731
Haskell as it is. I think you need to be, um, obviously if you start using
732
732
Haskell, you need to be a bit aware of which parts you want to use and which
733
733
parts you don't want to use. I would just say start with what you need and then
@@ -746,8 +746,8 @@ Haskell, because we're building on it, and if that doesn't, that starts not to
746
746
work, then we would have a big problem. So, yeah I think, thanks a lot for
747
747
working well for Haskell at this point.
748
748
749
- _ JvdJ :_ Yeah, thanks.
749
+ _ JVdJ :_ Yeah, thanks.
750
750
751
751
_ NV:_ Yeah, thank you very much and thank you for this podcast.
752
752
753
- _ JvdJ :_ Thanks, and nice talking to you.
753
+ _ JVdJ :_ Thanks, and nice talking to you.
0 commit comments