Algorithms + Data Structures = Programs - Episode 7: 2020 Retro (Part 2)
Episode Date: January 8, 2021In 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)
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.
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
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,
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,
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
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
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,
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.
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
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
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.
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.
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
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.
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
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.
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
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
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,
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?
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
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.
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
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,
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
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,
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.
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,
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,
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
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
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
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
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
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
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.
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
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.