Algorithms + Data Structures = Programs - Episode 7: 2020 Retro (Part 2)

Episode Date: January 8, 2021

In this episode, Bryce and Conor talk about the highlights of 2020.Date Recorded: 2020-12-26Date Released: 2021-01-08CppCon 2020 ProgramCppCon 2020 YouTube VideosC++20 Prague ISO Committee VideoJon La...kos’ Large Scale C++Arthur Whitneyk Programming LanguageProgramming Languages Virtual MeetupSICP - Structure and Interpretation of Computer ProgramsC++ 20 PublishedISO C++ CommitteeTLB Hit PodcastNo Diagnostic Required PodcastTwo’s Complement PodcastCppCast Podcastcpp.chat PodcastJetBrains C++ SurveyFortan-lang talks (GitHub)FortranCon 2020 talks (YouTube)Intro 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 And then he was like, oh, do you ever come to New York? And I was like, yeah, all the time, which is totally a lie. And like, I gave you like extensive notes. I was like, we're not shooting this thing. It's not perfect. Well, you just, you never know when 7, recorded on December 26, 2020. My name is Connor, and today with my co-host Bryce, we wrap up our 2020 retro. Top five, counting down from five. And we can potentially, well, one of these in particular I mentioned to you could be a whole episode.
Starting point is 00:00:53 But yeah, I'll just, I'll rattle through them and then we can. I'm going to bet that all five of them could be a whole episode. Probably not, but we'll see. We'll see. So number five was uh cpp con 2020 um definitely uh you know not not the same as you know being able to meet in person but uh cpp con virtual was it was still a lot of fun and we got to virtually meet online i don't think you attended um but there was there was still uh no no i was there i did one panel two panels i was around
Starting point is 00:01:26 oh yeah yeah that's right that's right you were on a couple of the iso committee panels um yeah i didn't give a talk but uh i did some panels yeah but it was uh it was it was still nice to you know even though we couldn't in person meet virtually meet people. So yeah, CPP Kong 2020 was my number five. Uh, number four was, uh, the Prague ISO committee back in February, if I'm not mistaken. And specifically,
Starting point is 00:01:52 you know, this is not ISO related exactly. Um, but we, I don't, well, so this could turn into a long episode again. I don't,
Starting point is 00:02:01 I can't recall why. Um, at some point you just like a light bulb went off in year ahead and you were like we got to make a video um and then we spent a day or two sort of it was primarily mostly you mostly you we got to give credit well no so and that's this is actually i meant to bring this question up earlier um was like you mentioned sort of that we needed to get our combined excitement out into the world. You know, when was the first time that you had that thought? Because potentially it was the recording of that video
Starting point is 00:02:34 because we would go and like fake interview these people. And one of the best moments was when we did it with John Lakos. And he had just finished his book, his new C++, you know, large scale infrastructure or architecture book. And he had a copy with him and we said, go get your, go get your copy of the book. And so we recorded the little bit of him holding his book. And then when we cut it into the episode, we made it look like he was just sort of constantly plugging his book, which was just hilarious. The idea of the video was it was supposed to be both like, you know, it's supposed to show people like a slice of what the committee meeting was like and commemorate C++20, show people what they should be excited about, but also be hilarious um i i recall that the idea came to me like when i was at night like when i was
Starting point is 00:03:29 sleeping and like i wrote it down um on a piece of paper but i think i think i felt the you know this was the meeting where we finalized c++ 20 i knew c++20 was going to be very significant. It was going to be the largest revision of C++ since C++11, you know, possibly, arguably even larger. And I felt, I always feel that I have a responsibility to help, you know, promote all the great work that we do on C++ and make sure that people know and are excited about what's coming. So I think it was partially that. But also partially I wanted to give people a deeper look into what the committee process was like and, you know, build more of a connection between, so that like regular C++ programmers could see what the committee members were like,
Starting point is 00:04:31 what the people who actually make the standard are like. You know, we always, we do this Reddit trip report at the end of committee meetings. It's something that I started doing a few years ago and it's sort of grown into this thing. And I just sort of felt like this was like a natural extension of that. And like, we should have something special for, uh, for this meeting. And, and like, boy, that was, you know, we didn't realize that was going to be the last committee meeting we were going to have for a while, but it was a really great meeting. It was the largest committee meeting we've had. Um, uh, Hannah and Avast, who hosted it, us and Prague, were really great hosts. Yeah, they were fantastic hosts.
Starting point is 00:05:10 Yeah. But I was very happy with how that video came together, that we were, it was the night of the reception. They threw a big reception to commemorate C++20. And like, I'd had this idea like a day or two days before the end of the meeting. And like, we wanted to show the video to the committee. But the thing I remember most was the last day, like the closing plenary, we weren't certain whether we wanted to play the video at the end for everybody um and so we we we went up to try to play it at the end of the plenary before everybody left and we were trying to hook it up and like we couldn't get the audio working and there was like a two or three minute period where like people were starting to leave and like we couldn't get the audio working and i was like i wasn't even sure if we should be playing it there it was just sort of on a hunch that i
Starting point is 00:06:09 said we should that somebody else actually i think said to us you should go up and play the video we were just going to post it online um and it wasn't clear whether we're going to actually be able to play it and then like the audio started working and we started playing it um and then like everybody just started paying attention everybody came back in and they absolutely loved it um and i was i was really glad that we were able to that that worked out that we were able to play it for everybody um because you know the people who work on the standard um it's sometimes it's a very thankless job um but you did an amazing job it was uh like you put that together in the span of like 24 hours and i don't think you slept or ate food much uh in that period of time i ate food and i was wired on caffeine but yeah i
Starting point is 00:06:52 was i was up for like i think 48 hours uh or 24 yeah it was it was a long period of time that i was up for yeah and like i gave you like extensive notes i was like we're not shipping this thing it's not perfect to be yeah to really to really explain you know where it's the morning of the final day and i've at that point you know i've been up for yeah i think at least 36 hours without sleep and i'm wired on like the whatever the prog version of coke zeros are i don't think they had coke zeros it was like pepsi or something because i'm not a big coffee drinker so if if I need caffeine, I go to like soda. And I think I have like a final draft, which has been edited heavily like three times.
Starting point is 00:07:34 And so I've sent it to I've sent it to Bryce that morning. And and then he's still I've got to got to tweak a couple of things. We got to get rid of the you know, this logo. And so, yes, it's you got a lot of credits on the executive producer, executive editor, et cetera, et cetera. We'll link it in the show notes for those that haven't seen. And then afterwards, we had a bet. And I don't remember the specifics of the bet, but we had some crazy bet on how many views the video was going to get. And then I had a hedge on the bet where I had a separate bet with another person about how few videos the views the video would get. I think the bet involved you buying like whoever won the bet between me and you had to take the other one to a very fancy sushi restaurant in San Francisco.
Starting point is 00:08:20 And I recall that I lost that bet and I still owe you that like that very expensive sushi dinner. Yeah, it got I can't remember the video got in the in the time slot that we had set the bet for. I think it got like 20 or 30,000 views. But I think the bet was that it had to be at the time my most viewed video, which was like 60,000 views or something like that. So it came close, but it did not. It did not make the cut, which was fine for 000 views or something like that so it came close but uh it did not it did not make the cut which was it's fine for me i get some free sushi yeah it was it was there was there was there was some combination of the bet out of the of the outcome the multiple bets that involved me having a having to uh get a mohawk and i was just glad that that
Starting point is 00:09:01 that outcome did not happen but yeah so that was that was number four all right we gotta i said i was gonna lightning uh lightning round these and and have not been lightning rounding them so uh yeah number five was cbp con 2020 number four was the prog and the the filming and sort of editing of that video and getting to interview folks that was that was a lot of fun uh number three is starting this podcast. I don't think we have to say much about that. This has been a blast. It would probably be higher on the list if we had more than five or six episodes. But yeah, this is sort of, we just started at this tail end of the year.
Starting point is 00:09:36 Number two, this is the one that I really think could be a whole episode. Before COVID had really taken off, at the end of February, this was the last time I did anything. I had booked a flight down to New York and I spent, uh, two or three days with Arthur Whitney, who is probably a name you've never heard of and a name that many listeners of this podcast have never heard of. Arthur Whitney is Kenneth Iverson's protege, which is like enter the whole other podcast. So Kenneth Iverson, for those that have not remembered
Starting point is 00:10:13 from the past episodes, is the inventor of APL and the creator of APL. And he had a protege that went on to invent a language called K. And there's been eight different versions of that. And then K spawned sort of two other languages. The most recent version of it is Shakti, and then Q is a descendant of K, specifically from K4.
Starting point is 00:10:40 I had sent him an email about having a phone call to chat, and then he was like, oh, do you ever come to New York? And I was like, yeah, all the time, which is totally a lie. And then I spent a couple days, yeah, not for eight hours a day chatting with him. But we had dinner and we talked a few times. And his story is absolutely phenomenal and will be a part of the APL talk that I give in the future. And the number one is starting the Programming Languages Virtual Meetup that I started back in May as sort of something to give myself to do and also to hold myself accountable when reading books and stuff. And we've been working our way through the structure and interpretation of
Starting point is 00:11:25 computer programs. And that has just been, it's been a blast the same way that this podcast has. There's a core group of individuals that we meet on Mondays and we're at the tail end of a chapter. We're on chapter 5.3 and it goes to 5.5. So we're almost done. And yeah, meeting with that group of folks
Starting point is 00:11:46 just like virtually in the pandemic has been awesome um because yeah we don't really get to go to meetups in person anymore um so it's nice to be able to chat with folks virtually and uh and yeah that's my that's my top five list didn't you also uh didn't you also start it in video this year when did you start it i started so that's the thing five list. Didn't you also start at NVIDIA this year? When did you start at NVIDIA? I started, so that's the thing. I actually, there was a couple things that I was like, oh, that's top of the list for sure. And then I realized that that was,
Starting point is 00:12:16 those things happened in 2019. So I started in NVIDIA at October, 2019. We could do, well, so the one thing that I thought, oh yeah, that's number one for sure. And then realized it was, uh, 2019 was our, um, Belfast dinner, which I'm sure you have very fond memories. That will forever be like one of my career and life highlights. Um, good times. Yeah, that was, it was a, that whole, that whole, the the whole fall of 2019 where we spent more time at conferences than we did at like our home. That was good. That was a good that was a good period.
Starting point is 00:12:51 Yeah. Fun, fun trivia fact. So on the on our like little banner photo on our Twitter profile is now there's a photo of us at the Scrabble game. But the original photo, which is still there off to the side, is a picture of Bryce and I under – oh, I'm not going to remember the park off the top of my head. My sister will be disappointed. But she doesn't listen to this podcast, so that's fine. We were at a park in Dublin because Bryce and I – well, I had gone to visit my sister who lives in Dublin, one of my three sisters that lives in Dublin. And I went to help. And Bryce invited himself. And then we went to this park and we saw some deer. And Bryce brought extra shoes and socks because apparently that's what Bryce does.
Starting point is 00:13:38 And I did not. I brought extra shoes and socks and you did not. And whose feet were very cold on the bus ride back to Belfast? Mine were. I just remember walking through this marshy park, and then afterwards, you just whip out this new pair of socks and shit. I'm just like, who does this? Well, you never know when you might need an extra pair of socks. Gotta learn to travel.
Starting point is 00:14:07 Yeah, let's see. My top, well, okay, I got a list. It's unordered and it may or may not be five things. So, obviously, you know, pretty high up there is the fact that we published C++20, which is, I'm going to say, the most impactful revision of C++ and C++11, at least. So we finalized it at the Prague meeting in February, and then it went through all the various stages of publication, and it was officially published by ISO like a week or so ago. And there's some other C++ things. So at the Prague meeting, Titus Winters, who had been the library evolution chair on the C++ committee. Library evolution is basically the library design group.
Starting point is 00:15:06 He stepped down and I became the new library evolution chair. And it was an interesting time to take on the job because we had this plan for there was going to be a transition period. And then that all got scrapped by the fact that the pandemic hit and we didn't have a summer meeting or a fall meeting. So it was sort of a trial by fire. And I'm very, very grateful that Herb Sutter had the wisdom to suggest that, you know, maybe chairing shouldn't just be a one-person thing. And so he suggested, well, you should have a co-chair, a vice chair, Fabio. And then I sort of took that to the extreme where I recruited another vice chair. And then I brought on some other people to help.
Starting point is 00:16:01 And so now we have this whole library evolution leadership team, which is great because we get to spread the load, makes us a lot more effective. So I've been very, I think that's the best thing that we've done in library evolution has been this notion of not just having one person in charge, but having a leadership team. And there were also some exciting stuff that we did at NVIDIA. So we launched the NVIDIA HPC SDK, which I work on. We launched NVC++, which is our new C++ compiler that has some very cool features like GPU accelerated C++ parallel algorithms.
Starting point is 00:16:47 It's kind of funny. Before I was at NVIDIA, I was at Lawrence Berkeley National Lab. And one of the main things I was working on there was getting the C++ parallel algorithms into C++. And so I was working on writing the spec. And then the spec spec got in then I left Lawrence Berkeley and I went to NVIDIA where my like first job was like hey go implement this spec so I got to write the spec I then got to I got paid to implement and my team also shipped our heterogeneous C++ standard library this year, the first release of that. And yeah, I think that's pretty much it. Oh, and my team sort of like doubled in size, which has been pretty exciting.
Starting point is 00:17:38 We've hired some pretty awesome people. We've now got a really great team working on all of our open source libraries, and I'm really proud of all the work they're doing. Yeah, NVIDIA is, we sort of have alluded to this before on past episodes, but we more and more are headed in the direction of becoming an open source company, which, as you have remarked, is not historically what NVIDIA is known for. Yeah, but you and I both work at parts of the company where we pretty much exclusively work on open source stuff.
Starting point is 00:18:13 Yeah, which is, I absolutely love it. I mean, there's many, many reasons it's awesome, but one of the reasons is I can talk about everything I do. I mean, you can go and look at my commits and what I do for work and what I get paid for. So if I wanted to start Twitch streaming my day job, I technically could do that. I'm not sure how my picks would feel about it. But if I wanted to become a Twitch streamer and just stream my work, I think that would be totally okay. Well, don't worry.
Starting point is 00:18:50 None of your picks have enough time to have listened through to the end of this episode. That's true. They've got much better things to do. Yeah. All right. All of that being said. So what are you excited about for next year? What are you looking forward to in 2021?
Starting point is 00:19:09 2021. Well, I have a document, a sort of goals document. Of course you do. Of course you do. And there's a section within my document of broad categories, which has seven bullet points or six. Some of them can't be talked about. But yes, so Meetup is one of them to continue to do that. So we're wrapping up structure and interpretation of computer programs
Starting point is 00:19:36 and we'll either be starting concepts and techniques, CTM, whatever that stands for, concepts, techniques of modeling for computer programs. Then obviously, you know, my day job is awesome and going to be continuing to work on CUDF, which is the GPU version of Pandas, which is, it's honestly, it's the story of how I sort of landed there quasi thanks to you. And then how I have post landing on this team at NVIDIA have fallen in love with APL.
Starting point is 00:20:16 It is a very, very fortuitous thing. I won't go into the details, but basically, Kudief and Pandas are essentially descendants of APL. Not many people are aware of that, but APL, one of the children languages is J. J influenced Wes McKinney
Starting point is 00:20:39 when he was at AQR, who is the author of Pandas, and then Pandas has basically inspired KDF. So these, it all leads back to, everything leads back to APL. Take a shot at eggnog. And then, yeah, this podcast,
Starting point is 00:20:57 there's a bunch of projects that I want to work on. Talks are going to, I'm probably going to try and give less talks this year uh because it took up that's funny i'm probably gonna give more talks this year i didn't give a lot of talks this year i was like you know what i'm at home pandemic i can be a little bit lazy yeah i was i gave a lot of talks last year um and also to a lot of like unique talks meaning i didn't give the same talk uh repeatedly which probably would have been would have saved me um wouldn't have caused as much work it was awesome but i think i'm just a little burnt out on on giving talks
Starting point is 00:21:38 um and i'm sure that'll change in two weeks and then i'll want to give another one and then also yeah iso c another one. And then also, yeah, ISO C++ ranges involved there. And then potentially, depending on what's getting prioritized, there could be some other ISO C++ stuff. So, yeah, there's a lot of stuff. A lot of stuff. What are you excited about? I think the things that I'm most excited about,
Starting point is 00:22:09 I can't say anything about for the next two to three months, but I'm going to be giving some talks, announcing some exciting stuff at NVIDIA's conference this year. But in terms of things that I can talk about, this is sort of the year where we'll finalize features for C++ 23. Now, that sounds maybe a little surprising because, like, isn't 23 a few years away but you know we have to do all of the design work um uh pretty early on the major features so that we can then work out all the bugs so by the end of this year you know it'll be the end of 2021 um and uh we want to have all of the major features together because sometime in 2022, we want to send out a committee draft of the standard where we can get a bunch of feedback and identify any bugs in it.
Starting point is 00:23:19 So we really need to, by the end of this year, by this time next year, have finalized all of the major library features. The two big ones that we're working on are C++ Executors, which is an abstraction for expressing parallel work to be executed and dependencies and chains and graphs of work and separating that away from what particular type of resource is going to run that work. And then the other big thing that's in the pipeline is the C++ networking proposal. And then we also have a goal of trying to come up with a plan for what a modular standard library will look like in landing library support for co-routines. I'm not certain that we'll be able to achieve all those goals. You know, COVID has slowed down our progress a bit, but I'm fairly hopeful that we'll be able to at least land executors,
Starting point is 00:24:44 and if not landed in 23, that we'll be able to put out at the very least technical specification in 2022 or 2023. So I think that's probably the work that I'm most excited about in the standards world for the next year. And yeah, I think that's pretty much it. There's some other things, but as I said, I can't spoil the secret quite yet. There's several things we can't talk about. But in the future, all will be revealed. And yeah, it's an exciting time. In the midst of working remotely and not being able to meet in person, it's still awesome that there's great work being done on our day-to-day jobs at NVIDIA,
Starting point is 00:25:38 but also sort of in the broader scope of C++ and the ISO committee. And then also, whether it's meetups or podcasts, a lot of podcasts that are coming out. I don't know what happened, but now there's been... Well, we started a podcast and everybody wanted to be like us. Can we say that? We weren't actually technically, I think, much to your chagrin. J.F. and retroactively um copied our idea
Starting point is 00:26:08 how did they do that time travel time travel so they the only the only way that they got their episode out first uh was because of time travel that's correct that's correct i see so we were the first of the new podcasts that is that is right well see and like i said i learned something every episode um we'll we'll link the uh so for those that don't know so there's uh jf and chris's podcast tlb hit um ndr no diagnostic required is a new uh c++ news focus podcast i don't even know about that one i learned something new yeah yeah so there's there's no who's running that one that's um anastasia kosakova kosakova i'm probably
Starting point is 00:26:53 pronouncing that name the last name incorrectly um and then uh phil nash of jetbrain so it's one of the jetbrains podcasts they have a bunch of them i gotta give jetbrains a shout out. I was recently, I needed to answer a question about like the C++ community. It was about like what build systems and IDEs are popular. And I was able to use the JetBrains developer ecosystem survey to like get that answer for like the past like three or four years like they do jet brains does every year this um very impressive and like professionally done survey of uh developer ecosystems in the c++ community and then they like publish all the results like they could just have chosen not to do that um and just been like yeah we'll pay this money we'll put the survey together and then we'll you know, we're not going to share it with anybody because why would we? It's like this thing that we spent resources on. But no, they like publish it, which I think is super awesome. So a big shout out to JetBrains for that. The survey is, it's called the JetBrains
Starting point is 00:27:57 Developer Ecosystem Survey. And I think it's got some really useful data in it. Not only do they publish all the data, they also publish their methodology. And it's very clear that they didn't just have somebody go and throw together a SurveyMonkey survey and distribute it to a bunch of people. They put some thought into this. Yeah, I'll definitely link that in the show notes as well. So yeah, I think now technically there are, at least on my radar, three C++ specific. There's the CppCast, CppChat, and NDR. And then there's now this second layer of developers in the C++ ecosystem that have launched their different flavors of podcasts, which is TLB Hit, our podcast um and now uh the new podcast that i just listened to the episode zero last night um was uh the twos compliment podcast which is hosted by matt gobbalt of compiler explorer and
Starting point is 00:28:57 an individual who i was not familiar with ben rady who i think has given a bunch of at least it sounds like from episode zero a bunch of uh talks on testing um and there's i can't actually tell what they're they're the theme of their website is like a game development um sort of looks like a retro arcade uh but their whole first episode was on testing so i'm i'm not sure if it's going to be sort of random musings like ours is where it's just them talking about whatever they want uh sure if it's going to be sort of random musings like ours is where it's just them talking about whatever they want uh or if it's going to be game focused but um i mean i love podcasts so the more podcasts the better the merrier it kind of kind of reminds me of like you know a few years ago there were just like two c++ conferences c++ now oh sorry three c++ conferences
Starting point is 00:29:42 c++ now cpp con and Meeting C++, and then suddenly there was an explosion. Same thing's happening with podcasts. Yeah, there's another thing to be very, very grateful for, you know, in our 2020 retro slash Fortran episode, is that as C++ developers, we are absolutely spoiled uh content in the form of conference talks and podcasts like uh as much as i am an apl fan um there is not a cornucopia of like apl talks and podcasts that i can go listen to and like pick my favorite um There's not even a single APL podcast. And there is an APL YouTube channel with talks from the Dialogue conference
Starting point is 00:30:30 that happens once a year. But even for a language like Rust, I think there's a handful of Rust conferences and they typically only last one or two days. Whereas C++ has multiple week-long conferences and just more content than you know what to do with. So as a C++ developer... Fortran has a conference now.
Starting point is 00:30:52 Yeah. Fortran had a conference that this was their inaugural year, although not a great year to start for an inaugural conference. But what are you going to do? It's called FortranCon. Yeah, I saw that. We'll add this to the show notes as well, but on their GitHub page, they have a repo called Talks with all of the slides and talk links linked. So yeah, if you find yourself bored
Starting point is 00:31:25 and you're interested in either C++ or Fortran or any language, there's tons of content online. And that's where we'll end this episode. Thanks for listening and we hope you have a great day.

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