Algorithms + Data Structures = Programs - Episode 24: C++Now 2021 with Ben Deane & Tony Van Eerd

Episode Date: May 7, 2021

In this episode, Conor has a conversation with Ben Deane and Tony Van Eerd while at C++Now 2021.About the Guests:For Ben Deane, C++ wasn’t even among the first 10 languages that he learned on his pr...ogramming journey, but it’s been the one that has paid the bills for the last 20-odd years. He spent most of that time in the games industry; many of the games he worked on used to be fondly remembered but now he’s accepted that they are probably mostly forgotten. These days he works in the finance industry writing high-frequency trading platforms in the most modern C++ that compilers can support.In his spare time he watches a lot of YouTube’s educational sector, practices the Japanese art of tsundoku, reads about the history of programming, avoids doing DIY, and surprises his wife by waking in the middle of the night yelling, “of course, it’s a monad!” before going back to sleep and dreaming of algorithms.Tony Van Eerd has been coding for well over 25 years, and hopefully coding well for most of that. Previously at Inscriber, Adobe, and BlackBerry, he now enables Painting with Light at Christie Digital. He is on the C++ Committee. He is a Ninja and a Jedi.Show NotesDate Recorded: 2021-05-06Date Released: 2021-05-07C++Now 2018: Ben Deane “Easy to Use, Hard to Misuse: Declarative Style in C++”C++Now 2017: Ben Deane & Jason Turner “constexpr ALL the things!”Conor Hoekstra — ITM: My least favorite anti-patternFunctional C++ for Fun and Profit by Phil NashYOW! 2013 Kevlin Henney - The SOLID Design Principles DeconstructedBreaking Dependencies: The SOLID Principles - Klaus Iglberger - CppCon 2020SOLID Revisited: The State of the Matter - Phil Nash [ ACCU 2021 ]C++Now 2017: Tony Van Eerd “Postmodern C++”C++Now 2018: Tony Van Eerd “Words of Wisdom”One Letter Programming LanguagesC++Now 2019: Conor Hoekstra “Algorithm Intuition”Simple Made Easy 2012 - Rich HickeySlow Coding - Ben Deane; A View to a Thing - Jason Turner - 2020-10-11The larger the island of knowledge, the longer the shoreline of wonder.LadyBug PodcastIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8

Transcript
Discussion (0)
Starting point is 00:00:00 It's all right. You're the two-time best presentation winner of C++ now, so... Well, they are named after him. The Tony Awards. Are they called the Tony Awards? Unofficially. I did not know that. Welcome to ADSP the podcast episode 24 recorded on May 6 2021. My name is Connor and on today's episode it's just me interviewing Ben Dean and Tony van Aerd on the fourth day of C++ now 2021. I also want to quickly apologize for my echoey poor audio in this episode. I just moved into a new apartment and did not realize how much echo there was, so I will be sure to fix this for episode 25, but for this episode,
Starting point is 00:00:51 you'll have to bear with me. Tuning in live from C++ Now 2021. We were supposed to have four people here. We currently have two. I'm here with Ben Dean, whose voice you may have heard in the pre-intro, and Tony may or may not be showing up. I'm not sure, Ben, for those of our listeners that don't know you, do you want to introduce yourself? Sure. I am probably known in the C++ community for a few of my talks, which I've done in the last five or so years at C++ Now and CppCon. I worked in the games industry for
Starting point is 00:01:31 20-odd years, and I now work in the finance industry. I've been something which just went out of my head. I've been on CppCast a couple of times. Yep. Probably, well, so yeah, I mentioned this.
Starting point is 00:01:49 I'm not sure how we're going to cut this up or if it's going to be mentioned twice. So yeah, the reason why we were trying to get both Ben and Tony because they're quite well known, I think, at C++ now. Ben, in both, correct me if I get the years wrong, 2017 and 2018, 2018, I believe, was the talk with Jason Turner. You won best talk of the conference, or was that reversed? Yeah, 2017 was the concept for all the things talk,
Starting point is 00:02:15 which was Jason and me having a lot of fun. 2018 was my declarative style talk. Yeah, easy to use, hard to misuse. That's probably one of my top five favorite talks of all time. It was the genesis of my love for the immediately invoked Lambda expression, which I'm not sure if I've mentioned it on this podcast, but I had seen it before, but this speaks to sort of like where you are in your learning curve.
Starting point is 00:02:45 Like it didn't hit me. Like I didn't, I think before that really appreciate what expressions versus statements were. Anyways, it was in that talk that I saw that and I was like, oh my goodness, this is amazing. Because at that point, I think I'd known that other languages like Kotlin have if expressions, which are quite nice. I think Rust has the same thing now. Right. And now you have been very prolific in your speaking career and you've given names to some of these things like the initialize then modify anti-pattern. Yeah. Well, I'm not sure. It's really just like I realized after the fact that Jason had basically given a quasi same
Starting point is 00:03:24 version of that talk. So I've given a talk called my least favorite anti-pattern where I termed ITM. And then after that, and it's all just about whenever you initialize a variable and then immediately modify it, if you can avoid that, like there's some cases where you're writing an algorithm with a for loop
Starting point is 00:03:39 in it, which is not a raw for loop. It's just a for loop. And you're obviously going to have variables that you're, you're modifying, but. But in the greater scope of things, a lot of times it's unnecessary. And if you can sort of try to avoid that pattern, I think it leads to more readable declarative code. And then I ended up watching Jason Turner's, and also too, we've mentioned Jason's name. I assume like 80% of our audience knows, but Jason is also a speaker um and he's a c++ uh trainer and um he is the co-host of probably the like the premier c++ podcast cpp cast which
Starting point is 00:04:14 is one of my favorite podcasts as well jason and rob jason gave a good talk at c++ now a couple of was it yesterday or the day before yeah it was um what was the title of the talk because i've renamed it in my head to a different title the worst best practices yes yeah i i after the fact it said it's uh the longer title is probably uh jason turner's 20-year history in c plus plus and how to self-publish a book um right because because he sort of talks about that but yeah that was probably one of the better talks i so i guess yeah we're hopping all over here but anyway so to wrap up the last bit well this is what adsp is though uh jason basically gave a
Starting point is 00:04:55 talk on uh best practices and then while watching it because i i never saw it live i was watching it on youtube i was like half of his talk is basically just a different statement of what I'm saying. And so now I'm, I'm basically just plagiarizing, which is what I do in all my talks. Anyways, that's a good, that's a good way to give good talks is just find other good talks and then cut those all up. Yes, I've, I do the same in the sense that, well, I've sort of learned that it's almost not possible to repeat a good idea enough. Like it always bears repetition. It always bears another talk, which brings a little bit extra. At the end of the day, there's a lot of us who are speaking about things like strong typing, declarative code, expressive code. We all have our own takes on it. And it feels like,
Starting point is 00:05:44 you know, if you look, if I look back at the talks I've given, it feels to me like I've said the same thing multiple times. I'm sure it feels that way to a lot of people who give talks that they sort of rehashing the same ideas. But, you know, if they're good ideas, and I think they are, then repetition is warranted. Yeah. And it's, that's the thing, right? Is people, when you're giving a talk, at least this is my experience from both giving and watching, is that the talk is going to hit people different ways, depending on where they are in their learning journey. I think a lot of my talks, if you're just starting out, it's going to be, you know, over some of the folks in the audience head.
Starting point is 00:06:27 And then for other folks, I'm just repeating things that they learned 10 years ago. And it's like, oh, this is sort of entertaining. But from an educational perspective on an individual basis for them, they haven't learned much. And then there's another proportion where it just sort of blows their mind and it opens their eyes. And there are, that's the thing is like Phil, I sort of have told this anecdote before is that Phil Nash gave a talk called Functional C++ for Fun and Profit back in like 2016 or 2017, which covered a lot of the same themes in your declarative talk, easy to use, hard to misuse. But when I watched Phil's talk, I wasn't ready to accept everything.
Starting point is 00:07:09 Like I just, I didn't have enough of like a knowledge foundation. And so anyways, that speaks to the repeatability. The other thing I see and I sort of come to terms with is the fact that nobody owns an idea. And so when I'm making a talk when i'm having ideas about what to put into a talk often i make the talk and then i see like other talks maybe even that are coming up around the same time that are talking about what seemed like exactly the same
Starting point is 00:07:38 idea and you know there's no like i, nobody owns an idea. So someone else could totally independently create a talk which has a large overlap. I used to worry about that. Now I see that as a sign of like, okay, if other people are having these same ideas, then it means probably that the zeitgeist of C++ is ready for this. Like, it's a good sign, not a sign of like plagiarism or other people scooping me or anything like that. Right. And that's exactly what happened with one of the three, the girdle, Turing, and Church, right? They all came up with the same idea.
Starting point is 00:08:13 Oh, right. Yeah. Back in the, what is it, 30s, early 40s. And that was the funny thing, right? Because I'm going to mess up. Or maybe you, do you know the story of which uh disagreed with one of the others and then like i believe it was girdle who took a lot of convincing yeah and and when he found out that his uh whatever statement of the problem was the same as i think it was turing's he said well
Starting point is 00:08:37 obviously i'm wrong then um because he's definitely wrong so if ours is the same thing i must also be wrong and then it took him a while to realize that oh oh, no, Turing was Turing was correct. And I'm also correct. And they're the same thing, which I thought that's a funny thing that first you think they're different. Then you think they're the same. Then because you think his is wrong, you must also be. Yeah. I mean, what you said about, you know, a talk just hitting someone at the right time in their learning journey is totally rings true with me. Also, it's the case that, you know, you can watch a talk and kind of not get all of it. But having watched it later on, when you watch another talk, that's when another talk can actually like put a light bulb on your head about the first talk. Yeah. Yeah. There's tons of dotted lines between,
Starting point is 00:09:26 well, I mean, for those that haven't attended the conference, Tony Van Eerd, who may or may not join in a couple minutes, he might be working on his lightning talk for later today. He gave a keynote yesterday where he showed a bunch of dotted lines um in between his solid revisited talk and what were all the talks he mentioned um uh phil nash's talk um close eagle burger i think i'm pronouncing that correctly i apologize um and then kevlin henney's given a solid talk as well um and he and then he went on to mention a bunch of other talks like rich hickeys. Who's the creator of closure. He has a famous look.
Starting point is 00:10:10 There's the man, the myth, the legend, a wild Tony appears. We were just talking about your keynote, Tony. And also too, do you even,
Starting point is 00:10:18 do we just assume all the listeners know who you are? There might be a few like Swift developers that. No, no one knows who I am that's what i assume that's not true well i've come to yes through working in the games industry i've come to uh take this take this tack as well all right so tony you should i guess briefly introduce yourself to the uh either c++ developers that um have watched any talks online, because I assume yours has got to be like in the first five talks that people watch. Well, if I had to, if you're telling me I have to introduce myself, then let's just say everyone knows me.
Starting point is 00:10:59 I'm on the committee, C++ committee. I've worked at interesting places like Adobe, BlackBerry. I still find BlackBerry was an interesting place. Small places, big places. I know at Christie, I do projection mapping, which is really cool stuff. And yeah, I give talks every now and then. People like them, so I keep doing it. Yes, if you haven't seen postmodern C++ or words of wisdom, those are also two of my favorite talks of all time. And I think I've seen the postmodern one like three or four times now, because you gave it once in C++ now, once in CppCon where it started to rhyme.
Starting point is 00:11:39 And then I think you also gave it at the Prague meetup at the last in-person C++ ISO meeting. Yeah. Rest in peace to. Three times. And it's different every time. And, you know, you got to watch the next one. Then you can put piece together the secret message that I've left behind
Starting point is 00:11:57 and all the variations. So I guess, should we talk or how are folks, how are you liking virtual c++ now what are the best talks how did you you so ben has not spoken this year but uh tony did give a keynote called solid revisited that we mentioned before him joining what are how are people feeling how was how was giving your keynote well you know what that's the the thing. I have no idea. Like, to be honest, I didn't want to do virtual anything, right? Because it just feels like giving talks, I don't know if people realize giving talks is actually hard, right? It takes effort. And it really drains you. And then at the end, though, you're like, oh, this was really cool. This was fun. It was worth all the pain that you went through to do it. And it's usually a good experience. But this time, it's all virtual. You don't feel the audience. You don't know what's going on. And then it's over. And you're like, huh? I have no idea what
Starting point is 00:12:54 happened, right? But C++ Now is like one of my favorite conferences. So I wanted to make sure we had a good year this year. I thought I had no idea if there was going to be lots of talks or hardly any talks or what was going to happen to it. So I'm like, I'm going to put in a talk. I wasn't planning on doing a keynote, but I thought I'll do a talk to my part, show up. But now I haven't seen any talks since then, because as is tradition, I see no talks before my talk because I'm too busy doing my slides. And then I was going to, I've just been busy today, as I forgot even that I was going to talk to you guys. I was busy doing stuff. I'm going to see Lisa's talk, right? Lisa Lippincott is my favorite speaker, maybe possibly my top, one of my top five, you know, one of my favorite
Starting point is 00:13:42 speakers. I love the stuff that she talks about. It's a little, some people find it a little more theoretical and whatnot or whatever. It's kind of very foundational talks of how, what is a function? What is a program? But I love it. Just love it.
Starting point is 00:14:00 So I'm going to go to her talk. That's tomorrow. And that's been my, I had at least two talks circled. I wanted to see Barry's talk on ranges and stuff. He was comparing different languages. But we were all sitting around at one of those little...
Starting point is 00:14:16 That was during the... yesterday when we all ended up at a virtual table. We were in the hallway track. In the hallway track, yeah, which has always been the best track of C++ now. So I didn't see barry's talk yet but i will watch it later it's good i watched it last night yeah uh yeah it he did a really good job comparing c and c plus and rust and d and he sort of put them on a functionality versus uh complexity curve i think it was a very sort of good comparison and breakdown it had the uh from finance i think it's called the efficient frontier
Starting point is 00:14:53 there's a sort of curved line and he put we won't spoil it but d and c plus plus and rust get ranked and then we can spoil the fact that java was below the efficient frontier so you know they there was a time when you look at their iterator right and it's it doesn't feel like an iterated way we know iterators it really is just it's it's the it is the collection right it's it's their iterators feel it's where you pull the value out of and and it's like is there another one and then you get the next value and and uh like our c plus plus what eric did with sentinels right with ranges and he said you know begin end iterator let's make the end not really an iterator it can be a sentinel now it doesn't have to be an iterator it is just a big hack like that is a hack it's a beautiful beautiful hack right it's like now be an iterator. It is just a big hack. Like that is a hack. It's a beautiful, beautiful hack, right? It's like now your end iterator, if it was,
Starting point is 00:15:49 because people used to do this in the past where your iterator had to be special, right? It's not really the end. It's just has a flag inside of it to say, when I do the comparison, I will do the real check for end. And that was also a hack. Eric has made that hack, you know, he stamped it as official now and it's great. and that was also a hack. Eric has made that hack, you know, he's stamped
Starting point is 00:16:05 it as official now and it's great but I wonder if it's all I've run into this before that two iterators is wrong, just not the right way to go. So that's why I wanted to see Barry's talk. Like
Starting point is 00:16:20 in fact, like when you have, the example is when you have an infinite range right i've got all the numbers right now we can now do that with with c++ ranges this range never ends it's got an end iterator but it's a fake iterator and and uh you know if you're doing a zip or something else you can you can zip infinite numbers with a finite vector and now you've got a number for each item in the vector or whatever you want, right? That end iterator is just fake. The whole thing is a lie.
Starting point is 00:16:52 So why do we force our iteration in our ranges to have a begin end when that's a lie, right? It should be one object that you ask, are we at the end yet? But we wanted to fit it in with what we already had, and so it works really well. It is. It's really good. But it's also, you know, I wondered,
Starting point is 00:17:12 like, maybe we shouldn't have done it this way. Maybe we should have. But I think if Eric had done the new ranges any other way, it wouldn't have happened. So it's the right way to do things. There's my hot take. My hot take. Did you need a hot take? That's a good things. There's my hot take. My hot take. Did you need a hot take?
Starting point is 00:17:27 That's a good one. It's good for the ratings. Sentinels are a hack. That's what Tony says. But there are some surprises there. You're right. I remember playing with ranges the first time and getting that sort of surprise because, yeah, a half-infinite range, like natural like natural numbers can be it has a
Starting point is 00:17:47 bi-directional iterator right because because we know how to move backwards and forwards but you can't reverse it yeah so so you know that intuition kind of gets upended like we expect to be able to reverse something with bi-directional iterator but if you don't have a start place you can't you can reverse it you just can only you can't start from the beginning elements of it in reverse but there's nowhere to start and say reverse this it just take you a long time yeah anyways so those are the two talks you were looking forward to one you'll still get to see because lisa's is this we're recording this on thursday lisa's talk is on friday barry's was yesterday there's probably more that i also wanted to see
Starting point is 00:18:29 but that's the ones that were in my head that uh you know if i went and looked at the schedule i'd probably tell you oh my god i wanted to be at a talk right now but i really enjoyed um gabor horvath's talk from this morning about. It was about sort of compiler algorithms. Yeah, I saw that too. I didn't see the talk. I saw a good one. Yeah, I wanted, that was, I saw that too late. I was looking this morning at the schedule,
Starting point is 00:18:55 and I'm like, oh, I missed something that I was kind of, it looked interesting, yeah. It wasn't so much about sort of classical algorithms as we might know them, but he presented in particular a sort of algebra of recurrence chains, which the compiler uses to analyze loops and turn them into closed form expressions. Yeah. There's got to be a lot of magic going on in compilers, right?
Starting point is 00:19:21 So there's been so many years of research into that kind of stuff. Yeah. So that was a good talk. There have also been a couple of good talks from Peter Somerlad and I just saw Anthony Williams. They were talking about similar, you know... Strong types. Strong types. Yeah. Strong types. Big fan. Big fan of strong types. types type types plus what did i say yesterday types plus functions equals programming that's my new thing man that's that's my book my book is called types plus functions equals programming no one's done a book with a similar name have they
Starting point is 00:19:57 practically the name of this podcast which we stole from the book that uh yeah tony's joking it's it's from nicholas verth's famous book, which I have not read yet. Bryce and I said at some point we'll read it. We can't steal the name of a book and call our podcast without reading it. What is the name of it? It's algorithms plus data structures equals programs. See, I think that's almost redundant, right? Having a data structure without an algorithm tied to it isn't
Starting point is 00:20:25 like they they kind of are the same they're intertwined yeah you know what i mean um like you know i've got a heap well if i don't have the heapifying algorithms to go with it i don't really i can't do much with this right i need the i need the two pieces together whereas types plus plus functions that's open that's open-ended right, right? I've got a string type. I've got an image type. I can write Photoshop. I should have used Photoshop as an example yesterday. I want image.photoshop to be the function on my image class, right?
Starting point is 00:20:56 No one makes member functions. Like everyone makes everything a member function, but Photoshop is not a member function of image unless it is. Maybe I haven't looked at Photoshop source code in a long time. Maybe that's what they've got to now. It's just like, oh yeah, just make it a member function like everything else.
Starting point is 00:21:11 I'm pretty sure it's not, Sean. Sean would not allow that. Yeah, he would not allow that. Well, the other, the dichotomy I've been thinking about lately is computation plus IO. It's not as catchy, but like program, when you come down to it, does computation and does IO.
Starting point is 00:21:30 If it doesn't do one of those things, it's basically useless. Well, yesterday I was describing some threading, and I said for threads, the rule is just don't share any data. People write threads, and they put locks around their data and then they try to share their data between threads. And well, now you've slowed yourself down because they're going to wait for each other. It's like, why did you make threads
Starting point is 00:21:54 and then put them in line to wait on objects on a mutex or something? But you also get all these bugs and everything. But if you just hand off data to a thread and don't share any data after that, then you don't have any problems. Of course, if you have a thread that never shares information, it's the same problem.
Starting point is 00:22:12 It doesn't do it. It's out there calculating pi and then never tells you the answer. Just like, wow, great. Thanks thread. You know? So eventually, yeah, you have to have IO. You have to communicate data back or something, or it's kind of, kind of worthless have IO. You have to communicate data back or something, or it's kind of worthless.
Starting point is 00:22:27 Yeah, I think I saw a tweet a while back, which is like every program transforms data structures until it gets to one it can print out. Yeah, pretty much. Yeah, I almost think of now that the data structures is way less than algorithms, because I'm falling in love with APL, where they don't really have data structures. All algorithms. I was going to say, there's vector.
Starting point is 00:23:00 And then you're done. I need to apologize, because Jason's talk. Oh, yeah. Which was another great talk, another great talk. It's a great talk. Jason, about two-thirds of the way through the talk, he talked about exactly what Conor's been talking about lately, about the sort of foundational languages or languages that embody different computational paradigms.
Starting point is 00:23:19 And I was in the virtual audience. He sort of pulled me into his talk to say a few words. And I totally failed to mention APL. I was watching it because I even thought about it. You thought? You didn't tell us that. But it was Jason's talk. I didn't want to interrupt and take the mic away from him.
Starting point is 00:23:39 Anyone's talk is worth being interrupted just for a short mention of APL. And the ironic thing is, I planned on watching Jason's talk live, but I forgot that I had a podcast rehearsal for a breaking news, a other podcast that I'll be on about array programming languages. I think it's going to be called Arraycast and it's going to focus on languages like APLJ, K and Q, which are lesser well-known, but are very popular in the finance industries. What letters are still available? None of them.
Starting point is 00:24:10 There's actually, I'll link it in the show notes. There's an article that shows every single letter in the alphabet is taken. Some of them are less popular. I think the predecessor to R, which is like a statistical language, was S. So not many people know about S, but it was. You're going to have to go to non-Latin alphabets oh yeah i want t is t t i want t t is mine i had this plan for you said you were gonna call it tea though so yeah i was i was tossing between the two which which one to call it so i wanted that pun in there something i wanted you know is it t for tony or tea for the drink you know but yeah um anyways i ended up i ended up missing it live because i was doing some other apl stuff
Starting point is 00:24:53 and then i was watching it in the recording and then saw ben come on talking about other languages and i was oh this is great apl is going to get a shout out he mentions haskell he mentions small talk and then doesn't mention apl sorry and my heart broke this you know c++ now has always been the conference that is half audience participation like i've literally given the same talk in 45 minutes it's an hour and a half talk at c++ now and it's 45 minute talk somewhere else, right? Because I just expect it to be filled with the audience. And I mean, I was doing a keynote and I had too much, I had too many slides. I had over 300 slides for my keynote. That was kind of scary. I knew I didn't have time to just have a conversation with the audience, but there's actually, if we did it right, you know, we could have a pretty good talks
Starting point is 00:25:46 where it's like, just let the audience speak live over Zoom or whatever we're using, right? Just instead of like the one version of my postmodern, the first version of postmodern, because I went onto YouTube afterwards and fixed the closed captioning. And there's a point in the closed captioning where I say, you know say it just shows up in the
Starting point is 00:26:06 bottom. It says Chandler asking a question or Chandler says something. Then it says dot, dot, dot. Then Chandler's still speaking. Dot, dot, dot. It's like a minute and a half. It's really good content. It's Chandler. He's making a great point.
Starting point is 00:26:22 It takes him over a minute to make this great point. I'm just standing on stage. If you're watching on youtube all you get is chandler still speaking because you can't quite hear what he's saying right and then of course someone's like repeat the question for a minute like yeah but you know if you had everyone had a good you know everyone's sitting at their desks or whatever have have a microphone there you can you could actually get a good conversation going and you know it might it might be advantageous if we did it right yeah i did the captioning um i think that year um the context for all the things talk when that went up on youtube i went and i curated the captioning and i actually sort of turned up the volume
Starting point is 00:27:04 listened in my headphones so i could tell who was speaking and what they were saying and i put them I actually sort of turned up the volume, listened in my headphones so I could tell who was speaking and what they were saying, and I put them in the captions for that year. I was able to get most of them. You're right, there were so many. Chandler always sits at the very back, right, though? He's always at the very back row. Back right.
Starting point is 00:27:19 I hate your constexpr talk. I have to officially hate it. It constexpr talk. I have to officially hate it. It won the best talk. My postmodern did not win best talk. Were you the runner up that year? Yeah, I think so. I see. So that's why.
Starting point is 00:27:38 Because I was going to say there's a don't constexpr all the things tomorrow. Yeah, I was interested in that one too. Maybe I'll watch that. Isn't it Const consolation though the awards are named after you yeah and then along comes carl over next year and sweeps the board he made up new new categories that only he could fill i didn't make anything up name starts with c see like they never had a first year speaker thing first time speaker award it's actually a really good idea it's a good award it is i didn't have a chance to win that gretzky didn't gretzky didn't win uh uh rookie of the year because they didn't you know they changed the rules on them here's
Starting point is 00:28:23 an anecdotal story because i i do want to get back to the... Did we have a topic? The unique nature of C++ now, no, because I had something else to say. But when I joined the Canadian ISO national body for C++, you know, Michael Wong sent out an email, who's the chair, I believe, of the Canadian C++ national body, and said, welcome. And then I'm not sure if it was the first reply, but it was in the first couple. Tony replies, because he's also a member, and says, my arch nemesis. And here I am, never having met Tony,
Starting point is 00:28:59 never having conversed with him, because I don't think i'd uh i don't yeah i don't think i'd met you yet because you didn't come to c++ now 2019 yeah and um and you're like one of my favorite speakers and i'm like what what what happened what did i have done no this was this was great for me like i saw some twitter chat and i'm like hooray now someone else has taken the mantle of being tony's nemesis but uh but yeah to come back to the uniqueness of C++ Now, it's interesting, Tony, that you said, you know, that it's a lot of conversation because I think both Ben and I, we both have talks that we only want to give
Starting point is 00:29:36 and have not given up to this point that we initially had submitted to C++ Now 2020. And then like, I thought about giving it at CppCon, but like I, in my head, had like specifically designed this talk for like the C++ Now experience because it's just more interactive. You get more engagement. And that's, I actually, I wasn't sure what John was gonna do
Starting point is 00:30:01 cause it's obviously difficult, but I did, there was a, I thought there was a small percentage chance that it was going to happen in Zoom and everyone would have the ability, if not to just sort of interrupt, but at least like sort of in Google meetings, you can start a hand queue and then pass the mic off. Like I thought there might be something like that, but you know, probably the technical challenges of doing that without it becoming a total mess i also have a talk that's c++ now only that that i've been holding off on and it's and it's actually in my
Starting point is 00:30:33 head which so it may never happen now but it's it's a keynote for c++ now that uh that's been in my mind for years and years but uh because it's a unique conference and so i'm like this this would not make sense anywhere else it goes back to the basis of mathematics with gotlip frega and birchen russell and all this kind of stuff it's like i don't know where else to give that talk so maybe someday maybe it won't be a keynote maybe it'll just be a i'll just give it as a talk that's what i should do i should just propose it next year or the year after or whatever. Well, the benefit is that you get to sweep all the awards then. If you demote your keynote talk to a regular talk,
Starting point is 00:31:13 you're basically a shooter to win everything. No, I took my best shot. It's never going to happen now. Well, I'm expecting the first year back to in-person C++ now is going to be a hallmark year with everyone giving these saved-up talks, apparently. Yeah.
Starting point is 00:31:34 The other thing, too, is the virtual conference has 30-minute breaks. For me, the best part, which is they call it the hallway track, but it's the schedule. Everyone's like the schedule like everyone's on the same time zone whereas right now we're not like i think tony and i are both in the same time zone but ben is two hours behind and there's folks in europe that you know signed
Starting point is 00:31:54 up that only watch like the last talk of the day so it's that's completely different which is it's a it's uh it's got a silver lining in that people from all over the world can attend that might not have been able to travel. But one of the really nice things about C++ now is that they've got such long breaks in between talks. Not all of them are long. Some of them are only 30 minutes, but they have like an extra long lunch break. They usually have like a long break in between the keynotes in the evening. And I can't remember if it was someone in the three of us or someone
Starting point is 00:32:25 else that said that like the fact that at an in-person conference you go and see a talk and then everyone upon exiting the room is standing next to each other and it's just everyone just starts chatting about it whereas here you know it's only a percentage of if we do ever do this again or you know the CP con coming up or whatever it we need to make sure when people leave the talk you just automatically end up in the same spot right everyone's kind of nearby or it's or it's really quick to get to because what happens in a normal you know in a live talk or in-person talk, people walk up to the stage,
Starting point is 00:33:07 the people who, for whatever reason, don't want to ask a question to everybody, but they still want to ask the question to the speaker. And so they go up to the stage after, and that's great. I'm quite happy to answer those questions after the talk, right? And you end up, yeah, you end up with good conversations. And I mean, at C++ Now, you end up going to lunch. That's like- Right, and then writing a paper. Yeah. Whatever.
Starting point is 00:33:31 If you ever wanna get hooked into doing some work for the committee, all you gotta do is ask a question after a committee member gives a talk and then you'll be writing a paper for them. Who doesn't want that? But then you get to say, I went out to lunch with, you know, somebody, somebody want to go to lunch with the Tony of the Tony Awards
Starting point is 00:33:48 of C++ now I think that's how I think I first met Bjorn Bjorn a big on to lunch right at a you know he came and spoke at Adobe one time it's like then we all had food and I'm like I could just go and sit next to this guy. Yeah. Well, that's how that's how it is. It's a C++ now. Right. You know, I I come in never. You know, I roll into the conference, never really been part of the community before. And I'm having a problem with some C++. So I go and ask Chandler how this is supposed to get optimized. And he tells me. Right. Yeah.
Starting point is 00:34:23 That's literally the exact interactions like that happen all the time yeah it's literally the exact same mine was several years after you ben but i showed up absolutely know it like i'd never been to a conference in my life let alone spoken at one or vice versa switch those two around and then the slide in my algorithm intuition talk with adjacent difference calculating fibonacci like that came from a conversation with ben where i was saying oh you know you can do from a conversation with Ben, where I was saying, oh, you know, you can do Fibonacci with transform. And then Ben was like, hold my beer, you know, you can do Fibonacci with adjacent difference. And I was like, no, you can't. And he's like, yeah. And then I thought about it for a second. And I was just like, oh, my God, that's one of the worst named algorithms ever. Like, how are you going to
Starting point is 00:35:00 recognize that that's, it's just adjacent elements, You can do anything you want. You don't have to subtract. And yeah, that experience is, it's like, I don't want to say it's a C++ now only thing, but it just, it's those kinds of conversations seems to happen a lot more for whatever reason. Speaking of, you know, coming up with pieces of your talk while you're talking to people uh i i'm making the i'm making my lightning talk right now so you want to give us a sneak peek no i don't want to give you i want you to give me i need stuff for my stuff all right so so so like i mentioned i barely mentioned it yesterday and and phil i got it from Phil, right? Phil did a talk on Solid. In his talk, he references Rich Hickey, right, who did Closure.
Starting point is 00:35:51 And Rich Hickey does a talk called Simple Made Easy, right? And he goes into the Latin, simple and complex. They come from Latin, plecto and plictere and all this stuff. And it's all about fold. And, you know, simple as one fold and complex as many folds interleaving. And he uses this old word called complex and complexing to mean entangling and interleaving. Right. And that's what happens in our software all the time. Things get entangled. Like, you know, it's kind of half of my talk yesterday. Right.
Starting point is 00:36:23 So it's kind of like while I was giving my talk yesterday and after my talk as real I realize it's like I want my lightning talk to be complecting made easy right because because it's exactly what happens like why is our software you know turn into crap is because we make it too easy to let it turn into crap right it's it's the the easy answer to solve a problem is like the one that entangles your code right so you know having a lot of uh data close by is basically and so and the other half is that easy the the the term easy um also comes from you, you can trace it back to Latin.
Starting point is 00:37:06 It's kind of fuzzy. They're not really sure, but it comes from adjacent, which is, you know, like adjacent. It really means close at hand. Easy means close at hand, right? So, complecting made easy is what our code does. We put things close at hand, and we're just like, hey, did you want to solve this problem? All you got to do is, is this thing's right here. You could just braid them together. It's just, if we're just tempting you, we put all this stuff in the right spot. Why don't you just braid it together? So, I mean, one thing I, like global variables, I should, I have to write this down because I keep forgetting it. Maybe I won't make my slides, but I'll write, I'll write it down
Starting point is 00:37:42 while we're talking. Global variables, right? Global variables. It's right there. I could just read this global variable and, you know, complex my code. And then the next best thing to a global variable is? Shared pointer. Shared pointer. Thank you very much.
Starting point is 00:38:00 Yeah, shared pointer. What we have in our code is a class called model that I always bring up right everyone has a pointer back to model it'd be okay to have a model that owns everything because you always are stuck with a class that has to own everything otherwise things just disappear right right but everything has a pointer back to model so I have places in my code where there's literally five layers deep of, I've got model as a member variable and just a raw pointer, right? Pointing back to my parent, right?
Starting point is 00:38:29 Model pointing to foo, pointing to bar, pointing to thing, pointing. Ah, that's what I needed. I needed this piece of information and I can get at it through this five step path. Model is the convenience store. Yeah. Yeah. It's all there. You just go to model.
Starting point is 00:38:43 So having exposure to model is complecting made easy. It's like, it's all there you just go to model so yeah having exposure to model is complecting made easy it's like it's right here you don't have to make up an interface you don't have to put in the right function for how you know i should have this information should have been passed down to me through three layers of function calls that that's that's hard that's correct code made hard right like uh simple simple is not folding your code together. So simple is hard to do. And complecting is easy to do because we expose model. You know, that's the problem in our class.
Starting point is 00:39:13 So I've got three examples. I need more. How is complecting made easy? I think there's a time element, I was going to say, because Rich Hickey in his talk talks about easy is a function of mental ease as well, right, which is a function of time, right? What's close in time, what you immediately think of is the easy. When you're given time to reflect and work on a problem, then you perhaps come up with something that's simpler. Yeah, and I also find people, you work from an area that you already know, right?
Starting point is 00:39:49 It's like, well, I know this part of the code, and I've touched this class before, so I'll just go from here, right? I've got, this is the information I know, and then I will just, it's like, well, you know, if you just went over there and asked that other class to give you the thing you want to know, that would work. And you're like, yeah, but I've never touched that class before. I don't, I don't want to touch that code. It's easy to write code. It's easy to just type. It's harder to grep and find the interface that already exists, maybe. Yeah.
Starting point is 00:40:19 This isn't really an example, but twice now, this has come up, like it's popped into my head while you've been talking, Tony, is I'm not sure if Yarnastrewship was the first person to hear this or to say this, but it's where I heard it first, is that so many people mistakes familiarity for simplicity. Yeah. And that because it's what you're used to working with, it seems simple. And then some new thing that potentially is unfamiliar looks complicated. But if you take the time to restructure at the end of the day, it actually is, it is objectively simpler than what you had before. But what you know, like sort of affects what you think is simple. Yeah, that is, and that is what Rich Hickey's talk also mentions, right? That is, it's almost literally close at hand. It's close in your knowledge base, right? It's like, think is simple yeah that that is and that is what the rich hickeys talk also mentions right that is it's almost literally close at hand it's close in your knowledge base right it's like i already know this and this is just one step away from what i already know it's familiar right it's like oh i
Starting point is 00:41:16 already know whatever this language or you know you you solve a problem like we get that when we're interviewing people right interviewing i showing, I show someone this problem. Hey, can you solve this problem? And you'll see someone solving it with like, I'm just like, why would you think of this as their, you know, I'm going to solve it with probability. Something, something and fine. And I just listen to it. It's like, oh, because the last problem they solve, they solve that way. Right.
Starting point is 00:41:43 It's just like I'm familiar with solving problems with this technique. So I'm going to try to apply my technique to this problem. And I'm like, okay, let's try something else. Cause it's, this is just not, you know, you don't want to just tell somebody you're totally going down the wrong path, but I give them time. And then I go like, that might work, but what else? Give me some more ideas on how that might work. You know, give me some other way to solve this problem. But really what I'm saying, I'll let you know if anyone interviews with me, if I start asking you for other ideas and I don't say your first idea is wrong, I'm really saying your first idea is terrible. Just in a nice way. It's like, oh, that is pretty interesting. But what other ways do you think you could do this? This is cause now a great future moment, the moment that is yet to happen of when this happens, when you're interviewing someone
Starting point is 00:42:28 that just happens to have listened to this episode, you say that and they're going to be like, oh no, it's terrible. I listened to that episode, Tony. And you're going to be like, oh, well. We may not be, your friend Ahmad, right?
Starting point is 00:42:40 Yeah. We were just talking to yesterday. I've been talking to him about like working here as a co-op. Right? So we could be this far away from it happening. Cool. I'll change my phrasing. I'll just try something else.
Starting point is 00:42:59 So I gave a talk at the Denver meetup a few months ago now. And it was one of those talks that was, I needed to give it at the meetup because it wasn't a lightning talk and it wasn't a full talk. It was in that 20, 25 minute range, which is so annoying. But the talk was called the blacksmith and the gardener, meaning the two sides of what we do.
Starting point is 00:43:21 Sometimes you're a blacksmith, sometimes you're forging things, you're bending the code to your will, you're a blacksmith. Sometimes you're forging things. You're bending the code to your will. You're typing, typing, typing. But that needs to be balanced with the gardener, which is you're just letting things bloom, right? You're letting yourself reflect. Because so often I found myself having the experience,
Starting point is 00:43:39 as we all have. The cliche is you solve the problem in the shower or on the run or whatever, in times when your mind is quiet. And the experience you have, if you're lucky, is that you get a task to do, you solve it, done, you manage to knock it out, done. And if you're lucky, like a week later, you realize there's a simpler way to do it. Oftentimes, you're not that lucky, right? And so the thing stays in the code, complexified. I just do it right the first time.
Starting point is 00:44:15 Why doesn't everyone just do it? I never understood this, why people are always like, you know, throw the first one away. I'm like, no, the first one was good. That was one of the best parts of your talk when you just said you were like, yeah, I don't want to come across as overconfident, but most of the time I just get things right. That's, it just happens to me all the time. I had this student working for me years ago and she was great. One of her best features was that, you know, we'd be talking about some stuff and she'd go off to do some work. And she'd come back in about, you know, the end of the week or something.
Starting point is 00:44:50 And she'd be like, okay, I was doing this stuff like we said, and I ran into this little problem. And I went this way, you know. She describes the problem to me. And she's like, it wasn't a big deal. But I wasn't sure, but I went this way. And I'm like, yeah, that was a good decision, right? And then she goes on. I also did this thing. and we hadn't talked about it, but I thought this made sense. I'm like, yeah, makes completely sense. And then she goes, and now I'm here,
Starting point is 00:45:12 and I'm not sure which way to go. And she was really good at knowing this was a big decision, and she should stop, right? And just like, she had her opinion, but she knew that she should ask somebody, because it was, you know, she recognized it was a big decision. I thought that was great. Like that's a good insight into the whole world of programming. And so she discussed the problem and she'd be like, you know, I could go this way. I could go left or I could go right. You know, blah, blah, blah, different ways of doing it.
Starting point is 00:45:41 And I'm like, yeah, yeah. And I find that i can always understand yeah that i see how that makes sense i see how this one makes sense you can give me five different things i can see all five point of views you know it's really bad for being political or something like oh yeah that makes sense you know like no tony that one doesn't make sense that'd be bad those people are, yeah, but it sounded like, you know, but, um, but she would go through the things and she was like, which way should we go? And I have this gut instinct of which way we should go. And I'm like, well, this one makes sense to me, but I can't say why I think
Starting point is 00:46:18 it's better than any other way. So I usually would just say, whichever one you're most comfortable with, because you're going to be the one writing the code. And unless I see like why it's obviously wrong or something, it's fine. They're all they're all roughly equivalent. Go in whatever direction you're comfortable with. And then she would go off into another direction and stuff like that. And then like three months later, be like, oh, we both see it like that was not the right direction. This is we should not have gone down this way. It's like, let's do it this other way that I think just feels right to me. And it wouldn't, we'd never come back to that. It would always be like, yeah, that one worked out. And eventually after she was
Starting point is 00:46:53 there for a couple of terms and stuff, eventually she's just like, I'm just going to do it your way. Okay. Whichever way you don't have to explain to me why you think it's the right way. We're just going to go with yours. And I'm like, all right. Let's just call it experience or something. It's just, let's go with my way from now on. It was good. We both agreed that, you know. That you're always right. And it worked out.
Starting point is 00:47:15 It was true. The stuff we did, it was right, and we went on with our day. I don't know. Yeah. No, that's a good... That sort of rings true. You know, I was thinking the other day, the answer with C++ is always it depends, right? Right, once you get past a certain level. And so it becomes harder and harder to give a definitive answer
Starting point is 00:47:37 when someone comes up to you and says, you know, they're looking for your opinion, they're looking for, what's the right, well, they're not even looking for your opinion, they're looking for you to give the authority.'s the right way to do this yeah how am i supposed to do this just tell me and that's a really difficult question to answer because it's always it depends and so you know maybe the way to go is well you know here's here's the experienced way it's not necessarily the the authoritatively right way i'm saying but but here's how i would do it and i and i think think is, because I've spent a lot of
Starting point is 00:48:05 time trying to figure out, because the sad part is I literally could not tell you why I think one way is better than the other. I just think it is, right? It just feels like the right way. And it wouldn't be till later on down the road where we're like, oh yeah, this is why that was bad and this is good. But I know after I've spent time trying to figure out what is it, and it really is keep your stuff separate. It's just like my instinct is to separate things. And I find that that instinct does not, does not fail. Right. I did it in, I did it in math. I did it like, you know, it's, it's a mathematical thing in my head. It's, it's abstraction and stuff. It's like, you know, these concepts are separate. Keep things separate. And then even if something isn't wrong, it's okay because it's all separate and you fix the one piece, right?
Starting point is 00:48:52 It's like the whole thing's not wrong. Right, right. I don't know. Yeah, Ben, when you were saying that when people ask, you know, how do you do this, that reminded me in my very first job when i had become experienced sometimes folks would we would have some small job that needed to be done and be like oh well can you just give me the first couple of steps and inevitably like if i were actually doing it there's like a series of like six disjoint things that i would try like and they're all ranked and i would try the first one realize oh no that's not going to work, then try the second one, that's not going to work, and then on the fourth one of six, okay, no, this is the right way to do it, but when someone asks you, like, oh, how to do this, you,
Starting point is 00:49:33 I typically just tell them the first thing, and I'm just like, oh, I would go down this route, and then, you know, 60 minutes later, they come back and say, well, I tried that, and it's really not working, and then I go and sit down next to them and, oh, yeah, yeah, that's clearly not going to work. So why don't you just give them the fourth one first, man? Because I don't even know that the fourth one is the right one. And that's why I think, honestly, like pair programming, I absolutely love pair programming, especially when there's a person at work,
Starting point is 00:50:02 his name's Ashwin that I work with at NVIDIA, and he's like a Python expert. And I'm a quote unquote C++ expert. And because of our library that we work on, it's Python bindings. Yes, expert with the quotations. It's the only way to do it. You can be an expert in other languages. In C++, you have to put the quotes on it. This is a tangent, but I have recently, inside my head, I used to put the Scott Schur quote at the beginning of my talks, whereas I'm not an expert. I'm just a dude. I have a new quote that I don't even know who said.
Starting point is 00:50:30 I just heard it. And I was like, that is perfect. And it's the more I learn, the less I know. And it's this idea that, like, I like learning a bunch about different languages and paradigms. And, like, so I'm learning this stuff at a very surface level. And just all I'm doing really is discovering that there's so much more that like, I don't know. And so as I learn more, I feel less and less of an expert and more and more of like an imposter. This though is the hallmark of expertise, right?
Starting point is 00:50:56 The way I've heard it said is the larger your island of knowledge, the longer your coastline of ignorance. That's wow. Where'd you hear that from? We of ignorance. Hmm. That's wow. Where'd you hear that from? We got to. Somewhere. We got to Google it. Yeah, I'll try and find that's almost more eloquent than when,
Starting point is 00:51:14 than what I, when I had said and what, so what I was saying expert, right. Cause we were talking about pairing and it's just fantastic because we both sort of acknowledge like that. We have our areas of what we know and there's just so much teaching and and where you're the driver and the expert sort of is the other
Starting point is 00:51:33 person guiding you it's just fantastic because there's so many times where inevitably you know that if you were by yourself you're going to spend an hour or two hours or three hours trying to figure out how to do this and then they'll quickly they'll see you going down the path and they'll say, okay, that's a really good thought, but like, let me just fix that. And it's, you just learn, it's like concentrated learning. And I just, it's, it's fantastic. A friend of mine, a coworker, he used to, if we, if he was watching you code, he would just slowly start making a noise. He'd just be like, uh, uh, uh, it just kept worse. You know, if he just kept going, he would just slowly start making a noise. He'd just be like, eh, eh,
Starting point is 00:52:05 eh, it just kept worse. You know, if he just kept going, he's just like, eh, you're like, oh,
Starting point is 00:52:12 I should stop now. Yeah. If it was just like, you're missing a semicolon, it would just be a tiny little noise. Right. And just like, ah,
Starting point is 00:52:18 that compiler will find it. But yeah, if you really started going down the wrong path, you just increase the volume. So you stopped. All right. Well, we're, we're at like the hour mark here. And I realize I've already kept you 30 minutes into the next talk, which I was super looking forward to. So I'm not sure. Which is the next one you're going to?
Starting point is 00:52:37 There's one called algorithms as expressions by I don't. That sounds like something you'd go to. That sounds great. Yeah, it's by I'm going to mispronounce this name. So I apologize. Uh, Alexander, uh, Bakarikov. Um, you could have just went with Alexander, just like, you know, how many, there's probably not more than one talk by first name. I can get the first name. I'm probably sure that I mispronounced the first name anyways. Um, but if, if I hop into that one, uh, I'll have to catch the first 30 minutes later. But is there anything, I feel like too,
Starting point is 00:53:06 we've mentioned a lot of folks by first name. So Chandler refers to Chandler Carruth from Google. Eric refers to Eric Niebler from Ranges V3, currently works at Facebook, but did the pioneering work behind what's become C++20 Ranges. I feel like we've mentioned a couple other people. When I'm re-listening to this
Starting point is 00:53:26 if if i haven't mentioned the last name i'll try and just just because i recall listening to cpp cast episodes early on and people would refer to like herb and i didn't know who herb was and we just as c++ers we we have we assume everyone knows that herb sutter is the chair of the c++ iso bernjarne Stroustrup. Yeah. I think I said his name, so it's like, yeah. That's the creator of C++ for any non-C++. I assume every C++-er knows that, but there might be a... You know, it's funny.
Starting point is 00:53:56 I hate doing reviews at work, right? It's like you get the yearly review or whatever kind of crap, which I just don't. If you're not reviewing, I'm sorry, you're trying to end and get out of here. But if you're not reviewing all throughout the year, like you should know what your manager's opinion of you is. And your people that you're managing, they should know how you feel. It's not a one time a year thing, right? But you fill out these forms. And like, so I got to the point where I filled out the forms with quotes from co-authors, from co-workers, right? It just like, it just looks like a movie poster. It's like, awesome idea,
Starting point is 00:54:34 Tony, you know? And I just put, I put down, I remember this one, it said, awesome idea. You know, Christine, Christine said, awesome idea for some, it was like lunch plans, but you know, they don't need to know that. But I included, I remember including a quote from Bjarne. I just had like a plus one from Bjarne or whatever, something like that. And then I realized my manager doesn't know who that is. Like, like it's such a good thing that I put on my, it's like, look, Bjarne Struestrup likes something I said. And then I'm like, oh, this is going to get lost on my manager. But yeah know everyone else knows who he is yeah that's uh that's a good uh I listen to a podcast called the ladybug podcast and uh one of
Starting point is 00:55:12 the biggest things they say is whenever someone like says something nice just jot it down just if you at the end of your year when you're putting together like some not all companies but a lot of companies you have to write your own sort of performance review and send it in. If you have like, if 50% of it is just like coworker X, you know, said this positive thing about this PR and coworker Y that I spent some time teaching said this was increased productivity five X for a week or something, that is like the best stuff
Starting point is 00:55:41 that managers wanna see. Well, especially when, it depends what you do, right? Like if you are someone who just writes code and you can just say like look go look at the at the code the source code like you can see all my check-ins right like that's just here's all this work i've done half my job is not typing code right so i need to be able to say like what did you do like even even stand-ups every day at stand-up, I say what I think I'm going to be doing today. And then I know that's not what's going to happen because other things are going to happen.
Starting point is 00:56:10 Someone's going to have a problem. I'm going to go do that. So I don't know why I bother. And sometimes I do. I just say, you guys know whatever I say is a lie. So I'm going to think of doing this, and I'll do something else because that's the way it goes. Yep.
Starting point is 00:56:29 All right. Any last parting C++ now 2021 words? Oh yeah. And also I said, Ben, I cut you off, Tony. I just said, Ben didn't give a talk. He did give a lightning talk on four CCs. Oh, I did. I'm not going to give another one. Yeah. Featured the guinea pig, one of his four guinea pigs named Iota, which obviously everybody should love that name. And apparently you're giving another one. You've already heard Tony's giving a –
Starting point is 00:56:55 Maybe. Do you know what the name of your lightning talk is, Tony? And Ben? Oh, mine is When Paradigms Collide. Ooh, maybe APL is going to get mentioned. I have to, I'm like, I'm under the wire here. I've got like an hour to make slides on it. I haven't even like put it in.
Starting point is 00:57:14 I mentioned to Michael that I might have a talk. I haven't formally put it in there, but yeah, we'll see. See, you have to leave it as, well, I already told you it's complecting made easy. That's what it's going to be called if I ever get to it. If I don't get to it now, I'll do it next conference. And here's the final parting words. You know, Tony gave a secret short lightning talk yesterday at the aforementioned conversation where we missed Barry's talk,
Starting point is 00:57:40 where he showed his Fabio long hair from I'm not sure what year. I'm sure that was just a couple weeks ago. A couple weeks ago. It wasn't 20, 30 years ago. 25 years ago. No, this is my COVID look. Maybe it's just too easy to type. That's the ultimate thing.
Starting point is 00:58:02 It's too easy to type anything, add a variable, add a function parameter. Even writing code inside I already just wrote add a member function is easier than starting a new file. That's why you make
Starting point is 00:58:19 member functions. I get this all the time. People are like, where would I put that function? Do I put it in this file? Do I put it in a separate file? And same thing with, I could just write code here in the function I know I need to change. Instead of adding a function. Instead of adding another function.
Starting point is 00:58:36 I've got enough for a talk. Sure. Sounds good. Well, thanks for taking the time to tune in and share your thoughts about the conference. And hopefully 2022, come May, we're all going to be in Aspen. Hopefully. I mean, I've got my vaccine appointment for Sunday.
Starting point is 00:58:57 I just locked it in last night. So the world's hopefully going to be going back to normal. Yeah. My second vaccination is coming up as well. This is going to be so weird. Cause I'm not sure how many people are like me and go back and watch podcasts from like 10 years ago and go from zero to episode 150, but there's going to be people like 10 years from now, you know,
Starting point is 00:59:17 a handful of them that are listening to this as well. Oh yeah. I guess there is that crazy virus that really messed things up for a while. Let me just slip in the rest of the political like i there was a point where i was saying even before this covid wasn't we really didn't know what's going on with covid but i was just like i'm not going back to the states like your country's on fire and and like i just i'm just gonna avoid this country but like i'm kind of hoping the this not just covet but other stuff settles down and well i mean i hope it makes not just settles down because you go back to the way it was but you know progress is made uh but yeah for a while i was just like i don't want to go to this
Starting point is 00:59:57 your country sucks but it's not so bad it's not Canada, you know, but. All right, on that note, and we appreciate all the American listeners that have tuned in up until this episode. Look forward to the- Move up to Canada. That's an idea. Yeah, we'll start that. Tony was talking about a second Canadian conference after CPP North,
Starting point is 01:00:29 which hasn't even started yet. It's going to be like the Muskoka Wilderness. Muskoka plus plus. That's not a bad name. No one will understand that. Oh, is this going to have the – are you going to do a talk, which is also a hike? Oh, that's still a plan for aspen someday
Starting point is 01:00:45 someday i'll do the hike talk i was talking to bryce about that a little while ago he's like we have to really do this instead of just talking about it to be clear this is not uh you know tony with like a a gopro giving a talk while he's hiking it's him giving a talk while everybody's hiking right yeah that's the plan you're breaking up well it's every second word uh my plan is actually you guys go for the the walk and i don't that that that is part of the plan i'm gonna put like little uh markers along the path oh nice for you to discuss that's that's my plan. Oh, wow. That sounds like the problem is like, we can't take,
Starting point is 01:01:34 we can't take 60 people or whatever together and do a talk in, you know, cause cause the past too, too narrow, you know, so you have to break up into smaller groups. So we need a way that each group on its own can experience the talk but you know and and we need to i think line the route with like cpp cones yeah exactly that is that you're you've got it that's what it's going to be um and and i might need i need uh you know uh group group leaders right so i might you know hook you guys in to be like okay you're taking one group of 10 and you you go this way you take another group of 10 you go that way and i'll just hang out at the yeah at the barbecue or something wait for you to come back this sounds like a whole new
Starting point is 01:02:15 category of you know this is gonna be it's gonna start in c++ utopia and then it's gonna spread to every other language yeah yeah That's a good idea. I look forward to it. All right, we'll have to make it happen. All right, 2022. Now you've locked it. This is going out into the ether. People are going to hear it
Starting point is 01:02:32 and they're going to be disappointed if it doesn't happen. All right, we'll make it happen. We'll make it happen. We could save it for the Muskokas. You start putting a conference together, Tony, and I'll be the first one to sign up. I can't even organize.
Starting point is 01:02:46 I'm supposed to do talks at work every second Monday. I can't get that organized. So don't expect me to be doing a conference. You do a conference, I'll show up. All right. That's how much I'll do. I'll think about Muskoka++. Although, you know, if I end up setting up a conference, you know, like there's going to be an APL dedicated track.
Starting point is 01:03:07 Yeah. See, if it's got nature involved, I will learn APL just for that. Wow. Maybe that's the angle. I'll make APL great again by, you know, bringing nature into the mix somehow. Yep. All right.
Starting point is 01:03:24 This is for the third or fourth time uh thanks for coming on this was awesome thanks connor thanks for listening and have a great day

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.