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

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

UGtastic Archive
Full Transcript Available
🚀 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
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
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 learn in grade school about equality, that it's like, you know, transitive x equals y, y equals z, x equals z, right. 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.
Mike Hall Interviewer, UGtastic
But then to actually see if you're right, you have to build an assert function, right?
Corey Haines conference speaking and presentation skills
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
And it's really just like, hey, what happens if you do it? Yeah.
Corey Haines conference speaking and presentation skills
You know, there's the saying of like, don't try this at home. Yeah, this is more don't try this at work. But do try it at home. Yeah, 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 exercise exercises that take you away from, like, the work you do. And we all, you know, like to program.
Mike Hall Interviewer, UGtastic
So why not program in the craziest possible way? Right. Yeah.
Corey Haines conference speaking and presentation skills
And it just makes me think about the code retreat exercises you do. Did this talk, well, just to put some backstory in it, the code retreats you would do, well, I don't need to tell you, he would do different exercises where you would not do an if or only use objects or don't use a number.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
Things like that.
Mike Hall Interviewer, UGtastic
Did this talk kind of evolve from those thought exercises?
Corey Haines conference speaking and presentation skills
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
Oh, really? Yeah.
Corey Haines conference speaking and presentation skills
So I went, you know, here in Chicago, there's a place that you can do it. So went and did this one time 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
Yeah. And like, I remember getting in and going, well, what am I going to think about?
Corey Haines conference speaking and presentation skills
Because I've got an hour in like pitch black and no sound. You got to think about something.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
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 I started to 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.
Mike Hall Interviewer, UGtastic
Do you just hallucinate the eels then?
Corey Haines conference speaking and presentation skills
No, no. I thought they might put them in there.
Mike Hall Interviewer, UGtastic
I remember being in there laying there going, what if there were eels? Yeah.
Corey Haines conference speaking and presentation skills
But there's not. Well, I've heard of people going into those and actually hallucinating that like our minds are so used to the constant stimulation that it plays tricks on you.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
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
Yeah. Now what?
Corey Haines conference speaking and presentation skills
Then you let it go. I was also worried about regressing to being a Neanderthal, like in altered 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 and things like that. And this is a fun, it's a talk that you don't see a lot.
Mike Hall Interviewer, UGtastic
Right.
Corey Haines conference speaking and presentation skills
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
Yeah.
Corey Haines conference speaking and presentation skills
And that's where I come into play. Well, I mean, it's not entirely as you've described it and the code retreat exercises kind of prove that they're not, 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 diverse, 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. Yeah, yeah.
Mike Hall Interviewer, UGtastic
But what is it going to be and what does it have to do with the topic?
Corey Haines conference speaking and presentation skills
It may or may not have any relevance at all, but it's fun. It's so fun, yeah. 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, it's very relevant. It's salient. It's, it's on topic. It's just, it's just not day to day.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
You shouldn't do it at work, but always you should do it at night. It's a good way to, um, 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 while preparing for the talk. So, yeah. So it made it a little bit fun to even prepare for. Oh, it was a blast to prepare for. I, 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 and it's horrible sitting in the audience because everyone in the audience sees where the bug is.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
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.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
Well, I mean, but maybe when you're doing something that's a little bit more of a free form performance, if you make a bug, you know, it's jazz, you know, they, they, what do they say? There's no such thing as a wrong note. There's just the right note played in a different way.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
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.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
There's definitely.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
And that's like my talk. If, you know, you start with nothing and 50 minutes later, we have a number system.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
If I like lose track somewhere, then we're not going to have that at the end. And it's like, you can't.
Mike Hall Interviewer, UGtastic
Yeah. And then it's just like, why did, you know, what did we get out of this thing?
Corey Haines conference speaking and presentation skills
There's only, um, Ben Orenstein is a master at live coding talks.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
He's really, really good at it. I don't know if he practices it and like has all of his keystrokes memorized. Um, I know I do. Like I, I practice it over and over again until I know the flow of the code. Oh yeah. You're, you were, uh, big in the katas and things like that.
Mike Hall Interviewer, UGtastic
So is it, is it a similar kind of preparation that you go through? Yeah.
Corey Haines conference speaking and presentation skills
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 was have it where I was sort of defining them above the previous thing.
Mike Hall Interviewer, UGtastic
Okay.
Corey Haines conference speaking and presentation skills
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.
Mike Hall Interviewer, UGtastic
Okay.
Corey Haines conference speaking and presentation skills
So you kind of like going up and down and up and down. 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.
Mike Hall Interviewer, UGtastic
Yeah. Okay. Yeah.
Corey Haines conference speaking and presentation skills
So.
Mike Hall Interviewer, UGtastic
Well, thank you very much for taking the time. 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, Tricia Gee, a whole bunch of people. I'm just drawing a blank on it. I have my notebook. Did you get, um, Chris, Michael John?
Corey Haines conference speaking and presentation skills
Uh, no, no, but I got, um, I got, um, I got, I'm going to do a thing. Oh, there it is. We got Jay Fields, uh, Attila, uh, Segeti. Segeti, uh-huh. Segeti. Uh, you know, he's, uh, Hungarian. Yep.
Mike Hall Interviewer, UGtastic
Yeah.
Corey Haines conference speaking and presentation skills
And, uh, because I was, I wanted to pronounce his name correctly.
Mike Hall Interviewer, UGtastic
And I said, is he Bulgarian?
Corey Haines conference speaking and presentation skills
He said, no, Hungarian.
Mike Hall Interviewer, UGtastic
Okay.
Corey Haines conference speaking and presentation skills
Uh, Jay Fields, we had some fun, uh, rescheduling. Uh-huh. Uh-huh. Kyle, uh, this guy, Gail Tana, oh my God, we're going to be having a second interview. Uh-huh. 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 it sounds like it means, yeah. And that, you know, like, the open JDK is actually just the reference implementation here on the Java 7. 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, Java 6 is still actually being supported, but it's being supported by, uh, Red Hat, because when, uh, Oracle drops support for a product, they, uh, basically sign it over to Red Hat. Oh, okay. So, there's all kinds of, oh, here's the one. Oh, that's cool. Oh, yeah. Um, there's all kinds of cool things about that, so, I was talking with him, and I'm just kind of looking at him, going, I remember some of the things. 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. Yeah, 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, too, is since you've got all these connections, if you're waiting on Skype, you're going to get there. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome. Yeah, that's awesome.