Fun with Lambdas: A Lambda Calculus Journey | GOTO Conference 2015

UGtastic Archive
Full Transcript Available
LIVE CC UGtastic Archive

Press play or click any turn in the transcript to start real-time synchronized playback...

🚀 Dive into Corey Haines' talk on 'Fun with Lambdas' at GOTO Conference 2015! Learn how programming with constraints can lead to innovative solutions and explore the power of sensory deprivation. Don't miss this unique and engaging talk! 🧠💻 #GOTO2015 #LambdaCalculus #ProgrammingConstraints #SensoryDeprivation #LiveCodingCTA: https://just3ws.github.io/interviews/corey-haines-goto-conference-2015
The Interviewer

Mike Hall

Interviewer, UGtastic

The Guest

Corey Haines

conference speaking and presentation skills

The Conversation


Mike Hall Interviewer, UGtastic ▶ Speaking
Hi, it's Mike with UGtastic. I'm here at the end of GOTO Conference 2015. I'm sitting here with Corey Haynes who gave a talk about fun with Lambdas. Thank you very much for taking the time to speak with me. So fun with Lambdas, they sound, you know, Lambdas are always one of those comp sci kind of sounding scary things. What is so fun about them?
Corey Haines conference speaking and presentation skills ▶ Speaking
Well, it's along those lines of coding can be a joy when you put really crazy constraints on what you're doing. And so the idea is what can you do If all you have is a lambda that takes one argument, can return one thing, start with nothing, and then slowly build up things. So what we did was we went through what are called the piano axioms, which are statements about the natural numbers. They were developed by an Italian mathematician named Giuseppe Piano. And they just say things like, hey, zero is a number. And hey, x equals x. So it's these very basic truths, stuff you learned in grade school about equality, that it's like, you know, transitive. X equals Y, Y equals Z, X equals Z.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Corey Haines conference speaking and presentation skills ▶ Speaking
And so if you start with these, and then all you have is a lambda, can you actually build up enough to have a numbering system? And so we start with, you know, zero, you know, and build a function called is zero. But then to actually see if you're right, you have to build an assert function.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Corey Haines conference speaking and presentation skills ▶ Speaking
Well, to build an assert, you have to have an if statement. To have an if statement, you need true and false. And so starting with nothing, you end up having to go back and build these fundamental structures and these fundamental sort of concepts in programming.
Mike Hall Interviewer, UGtastic ▶ Speaking
And it's really just like, hey, what happens if you do it? Yeah.
Corey Haines conference speaking and presentation skills ▶ Speaking
You know, there's the saying of, like, don't try this at home.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Corey Haines conference speaking and presentation skills ▶ Speaking
This is more don't try this at work, but do try it at home.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Corey Haines conference speaking and presentation skills ▶ Speaking
This is stuff that you should do at home, delete, have a good time, and, you know, one of the things I really like to do is do exercises that take you away from, like, the work you do.
Mike Hall Interviewer, UGtastic ▶ Speaking
And we all, you know, like to program, so why not program in the craziest possible way?
Corey Haines conference speaking and presentation skills ▶ Speaking
Right, yeah, and it just makes me think about the code retreat exercises you do. Did this talk, well, just to put some backstory in it, at the code retreats, you would do, well, I don't need to tell you, but you would do different exercises where you would not do an if, or only use objects, or don't use a number, things like that.
Mike Hall Interviewer, UGtastic ▶ Speaking
Did this talk kind of evolve from those thought exercises?
Corey Haines conference speaking and presentation skills ▶ Speaking
The idea of programming with really heavy constraints always does. That's one of the things I like to do in workshops and things. The idea for this talk and the reason that I'm doing it actually came about from being in a sensory deprivation tank.
Mike Hall Interviewer, UGtastic ▶ Speaking
Oh, really? Yeah.
Corey Haines conference speaking and presentation skills ▶ Speaking
So I went, you know, here in Chicago, there's a place that you can do it. So I went and did this one time. And, of course, you get into this booth or you're floating and it's dark.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. And, like, I remember getting in and going, well, what am I going to think about?
Corey Haines conference speaking and presentation skills ▶ Speaking
Because I've got an hour in, like, pitch black and no sound. you gotta think about something yeah so I was like oh hey well let me think about what are called church numerals and I started doing that and then just started to kind of think about lambdas and like a little bit of this lambda calculus stuff and that came out of that and I started actually working on a book about the lambda calculus and understanding lambdas and things like that which is kind of on pause right now but started doing that incidentally I did find out that they do not put eels into sensory deprivation tanks do you just hallucinate the eels then no no I thought they might put them in there I remember being in there laying there going what if there were eels yeah but there's not well I've heard of just I've heard of people going into those and actually hallucinating that like our minds are so used to the constant stimulation that plays tricks on you. Yeah, that's what they say. I didn't. I mostly just thought about lambdas. Well, I guess maybe you kind of already had a topic where somebody goes in and it's like, okay, now what?
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah, now what?
Corey Haines conference speaking and presentation skills ▶ Speaking
Then you let it go. I was also worried about regressing to being a Neanderthal, like in alternate states, but that also did not happen. I did not regress. You did not come out and hit somebody with a club. I did not. I was actually worried about that because you never know. I saw it in a movie. But that's where this sort of this idea came from. And then I want to start doing a lot more talks. I've taken the last probably about a year, year and a half off of speaking at conferences. And I wanted to come back and do more like live coding. And just like talks where I'm up there. It's me. It's Vim. Just writing code.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Corey Haines conference speaking and presentation skills ▶ Speaking
And things like that. And this is a fun, it's a talk that you don't see a lot.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Corey Haines conference speaking and presentation skills ▶ Speaking
And I'm not really one to give talks that are useful, I think. And especially my coding talks. It's like there's, you know, the talks here at GoTo have been wonderful. You know, they've, one of the great things about this conference is they cover, like, Java and they cover C Sharp. They had a Futures of Java and Futures of C Sharp talk. Yes. And so they cover all of this great stuff. And I like to think, you know, it never hurts to have a talk that is completely useless.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Corey Haines conference speaking and presentation skills ▶ Speaking
And that's where I come into it. Well, I mean, it's not entirely as you've described it, and the code retreat exercises kind of prove that it's not a useless exercise. Sometimes it's, let's think about something that isn't just the stay dry, how do I execute X things. And it's like one of the things I always liked about Bob Martin's talks is how he starts off with those little off topic, totally irrelevant, but fun. And you never know what to expect. I mean, you know to expect that he's going to talk about something about gravity and he's going to be really exuberant about it.
Mike Hall Interviewer, UGtastic ▶ Speaking
But what is it going to be and what does it have to do with the topic?
Corey Haines conference speaking and presentation skills ▶ Speaking
It may or may not have any relevance at all, but it's fun. It's so fun. I mean, you know, when you go to, when you're educated at all, there has to be fun. There has to be something to kind of hook you. Otherwise, it's just lectures. Yeah, yeah. And why not, you know, sit there and watch somebody code up something that is not directly applicable, but is still like coding and like, oh, hey, you know, a lot of people have heard about building up number systems for Lambda and all of that. But actually seeing it done and justified with these axioms is more of, it's a little bit of entertainment, but also that learning a little bit. It's very relevant. It's salient. it's it's on topic it's just not day-to-day yeah you shouldn't do it at work yeah but always you should do it at night it's a good way to sort of get into the mood of programming you know doing something that you don't mind throwing away I mean I've done this and thrown it away many many times yeah while preparing for the talk so yeah so it made a little bit fun to even prepare for oh it was a blast to prepare for I like I really enjoy preparing for live coding talks because it is like you can't get up there and have an unexpected error happen because standing up there you know it's horrible standing up there when you're trying to debug something yeah and it's horrible sitting in the audience because everyone in the audience sees where the bug is yeah except that you can't tell the speaker because they can't hear you and so live Coding talks are always like you have to have them down. Yeah, well, I mean, but maybe when you're doing something that's a little bit more of a freeform performance, if you make a bug, you know, it's jazz. You know, they, what they say, there's no such thing as a wrong note. There's just the right note played in a different way. Yeah, there we go. Something along those lines. There we go. But if you're doing it like, oh, you have to do X, Y, and Z. Yeah, there's definitely. Yeah, and that's like my talk. If, you know, you start with nothing. and 50 minutes later we have a number system yeah if I like lose track somewhere then we're not gonna have that at the end and it's like you can't and then it's just like why did you know what did we get out of this thing there's only Ben Orenstein is a master at live coding talks he's really really good at it I don't know if he practices it like has all this keystrokes memorized I know I do like I I practice it over and over again until I know the flow of the code oh yeah you were big in the kata's and things like that so is it is it a similar kind of preparation that you go through yeah and it feels a lot the same way too of just like that writing the same code over and over again until you stop really thinking about the code and you start thinking more about the flow of the code and the way that the concepts flow through it one of the things about this is that we in this talk I talk about assert and then that leads to if and then that leads to true and false and one of the things I tried to do is have it where I was sort of defining them above the previous thing okay and then having it where when I implemented it it made something lower easier to implement and clear and then eventually like the test passed. Okay, so you felt like going up and down and up and down. Yeah, and so I really worked on the flow not just of the code, but of where it is in the file. So even like having a tempo and a rhythm. Yeah, yeah. Well, thank you very much. Awesome. Thanks a lot. Appreciate it. Bye-bye. So there we go. That's the end of the conference. Awesome. Yeah, so it ended up, it started a little slow today, but I ended up getting interviews with Jay Fields, Trisha Gee, a whole bunch of people. I'm just drawing a blank on my note.
Mike Hall Interviewer, UGtastic ▶ Speaking
Did you get Chris Michael-John?
Corey Haines conference speaking and presentation skills ▶ Speaking
No, no, but I got Josh, we got, what am I going to do with my, oh, there it is. We got Jay Fields, Attila, Segeti, you know, he's Hungarian, yeah, and because I wanted to pronounce his name correctly, and I said, is he Bulgarian? He said, no, Hungarian.
Mike Hall Interviewer, UGtastic ▶ Speaking
Okay.
Corey Haines conference speaking and presentation skills ▶ Speaking
jay fields we had some fun uh rescheduling kyle um this guy oh my god we're going to be having a second interview because we finished the interview and then he and i walked downstairs and we're talking and he's talking about java and then he basically explained to me in a few minutes the entire java life cycle now i don't mean like programming i mean the community process and that like oh yeah oracle says they're end of life in java 7 but that doesn't really mean what what it sounds like it means yeah and that you know like the jdk is actually just the reference implementation here on the job oh yeah yeah and um you know and there's so much more involved in the community and how things um actually work between different uh organizations uh so like their java 6 is still actually being supported but it's being supported by red hat because when oracle drops support for a product they basically signed it over to there's all kinds of cool things about that so i was talking with him and i'm just kind of looking at him i remember some of the things you said but there was so much dense information that even he agreed that yeah we probably should have talked about this on camera but i'm like i think this is another conversation yeah get another conversation so we're going to do a skype interview in the next few weeks that's awesome yeah that um that's a really great thing to get into is since you've got all these connections So, we're going to go to the next one. So, let's go. So, let's go. So, let's go. So, we're going to go to the next one. We'll be right back. So, let's go. We'll be right back. So, let's go. So, let's go. So, let's go. So, let's go. We'll be right back. So, let's go. On the right side of the hill, the other side of the hill is set on the right side of the hill. On the right side of the hill, we are on the right side of the hill. On the right side of the hill, we are on the right side of the hill. On the right side of the hill, we are on the right side of the hill. So, let's go. So, let's go. So, let's go. We'll be right back. So, let's go. So, let's go. So, let's go. So, we're going to go to the next one. So, let's go. So, let's go. So, we're going to go to the next one. Thank you.