Algorithms + Data Structures = Programs - Episode 95: Kate Gregory on Carbon vs C++! (Part 4)
Episode Date: September 16, 2022In this episode, Bryce and Conor finish their interview with Kate Gregory and talk about the Carbon Programming Language.Link to Episode 95 on WebsiteTwitterADSP: The PodcastConor HoekstraBryce Adelst...ein LelbachAbout the Guest:Kate Gregory is an author, sought-after conference speaker, trainer, Microsoft Most Valuable Professional (MVP), and partner at Gregory Consulting. Kate has been using C++ since before Microsoft had a C++ compiler. She is an early adopter of many software technologies and tools, and a well-connected member of the software development community.Kate is one of the founders of #include whose goal is a more welcoming and inclusive C++ community. She also serves on the board of directors of Cpp Toronto, a non-profit organization that provides an open, inclusive, and collaborative place where software developers can meet and discuss topics related to C++ software development.Show NotesDate Recorded: 2022-08-15 Date Released: 2022-09-16Carbon Language: An experimental successor to C++ - Chandler Carruth - CppNorth 2022Carbon Programming LanguageCppNorth ConferenceSwift Programming LanguageKotlin Programming LanguageRust Programming LanguageCurb CutsToronto Public Libraryfoonathon::blog() Carbon’s most exciting feature is its calling conventionKeynote: “Am I A Good Programmer?” - Kate Gregory - CppNorth 2022PluralSight Courses- Kate GregoryBeautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code by Guy Davidson & Kate GregoryIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusic Creative Commons — Attribution 3.0 Unported — CC BY 3.0 Free Download / Stream: http://bit.ly/l-miss-you Music promoted by Audio Library https://youtu.be/iYYxnasvfx8
Transcript
Discussion (0)
yeah, I thought there would be negativity.
I really did.
I thought people would be like,
how could you do that to C++?
How could you betray, you know, WG21 like this?
And that hasn't been the case at all.
People from the committee have, you know,
saw it before the launch.
People have seen it since.
They say, yeah, that might work for some problems.
Because there are some problems, right?
That are not tractable problems.
Then it's another FAQ.
Why don't you
just improve C++? Like, well... Welcome to ADSP, the podcast, episode 95, recorded on August 15th,
2022. My name is Connor, and today with my co-host Bryce, we finish our four-part interview with Kate Gregory and talk to her about the carbon
programming language. So the conference went better than I could possibly have expected.
The carbon launch also went very differently than I could have expected. A lot of the things I was
really scared might've happened, did not happen. And a bunch of things happened that were fantastic
that I was not expecting. So, you know, Chandler said in the keynote, join us. And people did.
Very large numbers of people joined. And while some people were perhaps not offering constructive
help and suggestions, a bunch of people really were. So, you know, from the very next day,
there were people saying, hey, would a syntax highlighter for VS Code be helpful? I think I
can do a Vim plugin. I think I can this. And people starting to discuss, I see you haven't
settled the designs for, let's say, lambdas or something. Three or four people start getting
together, hashing that out. Things are getting done. So some things that were designed but not
coded in the Explorer are getting coded in the Explorer. Some things are getting done. So some things that were designed but not coded in the Explorer
are getting coded in the Explorer. Some things are getting designed. Some decisions are getting made.
Very happy. Yeah, I just went and pulled it up to see. It's since the launch. So today is August 15.
So we're almost a month exactly out, just less than a month, I guess um on github it has 25.8 thousand stars which is
pretty remarkable and already over a thousand forks i don't know actually what those were but
i assume those were like you know less than you know either single digit or double digit numbers
before we launched there were a few dozen people involved. Yeah. It was 11 stars
and...
It was either 11 stars and 3 forks or 3
forks and 11 stars, and I think it was
probably the other way around, probably 3 stars
and 11 forks
before. I remember because
I checked, right, as the
announcement went out.
Yeah, and it's up to
I think it said 87 contributors or something.
And if you look at the amount of code pushed,
it has, just sort of looking at since they started commits
over a couple years ago,
looks like it quadrupled in the month of July.
So clearly a lot of active development happening
in the last month here.
Yeah, I was looking to see if I could figure out how many people were on the Discord,
but I don't know how to do that. And by and large, they're very understanding of our atmosphere and
our code of conduct and what we're trying to do. The first couple of weeks, there was a lot of
repetition. There was a lot of like, I don't get it. It's just rust.
Why not just use rust?
And then the answer to that question is yes, if you can use rust, you should totally use
rust.
Like this is not a competitor to that.
If rust works for you, use rust.
And then people like, well, you don't really mean that.
That's just a thing you're saying.
Nope.
Nope.
That that's, that's what I mean.
And then, then there was a bunch of really repetitive questions and suggestions
that we'd already dealt with.
Huge
number of people wanting a logo.
Like, I don't... This is an age thing.
They're like, you have to have a logo.
You have to have a logo. People won't take you seriously
if you don't have a logo. I'll make you a logo for free.
No, we don't have a logo. Yeah, but you should
have a logo. Yeah, but we got bigger fish to fry.
We don't want a logo. I'll make you one. And that went on for for some time.
I mean, I personally love I mean, like the banners on most of my social media stuff,
whether that's LinkedIn, or Twitter, or YouTube are just a collection of programming language
logos. However, I don't actually feel like Carbon needs one yet
because if you've watched Chandler's keynote,
this is yet to be like, you know,
they're in sort of still experiment mode.
Like I get the feeling that like if in six months,
a certain like in the decision tree,
a certain number of decisions are taken.
It doesn't seem like it's going in that
direction at all but like a part of launching it it wasn't like we're launching and like when when
swift and apple um were launched at a wwdc this was here is swift it's our new language right um
and the same with kotlin right here's this language we want you to learn it we want you to
start using it it's supported in these tools and and carbon is nowhere near want you to learn it. We want you to start using it. It's supported in these tools.
And carbon is nowhere near that.
You know?
Yeah, it's pre 1.0.
And although it doesn't seem like it's going the direction
that it would get,
I don't know what the word is,
defunded or decided that,
you know, we don't need this.
It's before the point that
Google has said,
you know, this is one of our goals.
Like they have some internal term.
Although, and that shouldn't mention, it's not a Google project.
It's just that it's starting out a lot of Google folks.
It's similar to some other projects.
Like I think Kubernetes is one of them, right?
It started at Google, but then it got put on a little org boat and floated off into the sea.
And now it's no longer controlled by Google.
So you have its own foundation and its own governance and its own goals.
You know, because part of the issue is, and the three of us have grouply and individually talked about this before,
the committee process for C++ is perhaps not serving the language well, right?
Bryce, you said you joined basically to get MD Span, and you said how many years ago that was?
Yeah, it took seven years.
Yeah.
You know, not everybody would have had the gumption to stick with that for seven years.
I mean, you know, one of my colleagues likes to say that a programming language
needs to be 10x better
than its competitors in some way.
Well, I don't know yet whether Carbon is 10x better
than any of its competitors on any particular technical aspect,
but it's definitely 10x better than C++ in terms of process.
I think so.
The process and the community is a big part of the appeal for me.
But there are people who tell us
that we're naive
and that when we want to play
in the big leagues
and get support from
major compiler vendors and blah, blah,
that we'll discover the advantages
of a different process.
I don't think so.
I think this is a process
that can scale and can be leveraged,
especially with the leads structure.
So we're not always voting amongst, you know, 10,000 random strangers,
some of whom would just vote for Bodie McBoatface
because they think it's funny.
Yeah.
I mean, certainly it's probably true that the carbon process will evolve
as the language evolves.
But the fact that the process can evolve in and of itself is a huge improvement over the C++ process.
I think so.
I'm also very, very excited about deliberately rejecting backwards compatibility.
You're just saying, like, we might change the language in a way that breaks your code and when we do that we will release a tool that will migrate your code but we're not just going
to forever stick to well this was how it was in 1972 and so it can never change right so i mean
the joke about all our defaults being wrong in c++ is not a joke. It's the truth.
All our defaults are wrong because the language was written a certain way, and then people said,
that might be wrong. We should have this other capability, but we had to make
old codes still work. So, like, explicit for constructors.
That you have to say, if you don't say anything,
can't break your old code, can't say all constructors are explicit.
But in Carbon, we could.
We could say, we were wrong.
All constructors are explicit unless you mark them implicit. And then we'd give you a tool that would go through your code
and find all your constructors and mark them implicit.
I'm surprised to hear that you heard from certain folks that
when Carbon took some step into what you mentioned is the big leagues that they would discover
the process wouldn't work because isn't it already sort of proven like not that Carbon's process is
identical to Swift's or Russ or any number of languages but like it's it's proven model that
you don't need to be an ice or i'm not sure exactly what they were saying like you'll discover that
what c++ is doing right but like it seems like in general at least from what i've heard that like
c++ is not like the model of modern process like evolving languages. So there's a whole series of languages that say that's too slow,
too corporate,
too exclusive.
Like it's very gatekeepy,
you know?
Yeah.
If you can't fly to Hawaii,
you can't vote.
Yeah.
You know,
that's a hard,
that's a hard thing to say these days,
especially after the pandemic,
people are like,
no,
we should all be able to get in a zoom call and we should all be equivalent. You know, we should all be peers.
But, you know, maybe some things are hard to scale. Maybe secrecy has some value in some places.
Being super open and super transparent maybe would keep some people away. I don't know. We'll see.
We don't have to be the programming language for everybody.
We just have to be a good programming language.
Yeah. I'm surprised to hear that that's what you've heard
because, if anything, I think that most modern languages
are all sort of following suit,
that they've got ways to discuss things online
and make decisions online.
And not to say that there's nothing good about ISO.
There's definitely advantages to ISO.
But yeah, especially like when you keep in mind some of the things that we've brought up on this podcast.
What did Bryce remark that, you know, the visa wait times for certain countries?
I think you were talking about was it India at that one point?
And it was like you checked at one time and it was like 700 plus days. And then when you rechecked,
it was 300 or something. And so it's like, well, you know, depending on when you check, you know,
you might be able to go maybe not next year, but like two years from now. And it's like, well,
these committee meetings happen once every three months, or at least they did when before the
pandemic took place. And it's, uh, and it's just the time. It's like, so I needed a visa to go to China, I very rarely need a visa to go anywhere.
And you know, they say things like list everywhere you've been for the last 10 years, everywhere you
slept a night that wasn't your home for the last 10 years. That's a lot to ask a person
to produce that information or to even to write it up if they happen to know it, you know?
And I think that the money is non-trivial either. Academics tell me that it can cost a thousand
dollars to apply for a visa. That's a lot of money. We just talked about how little money
graduate students make, you know? Yeah. I mean, yeah. And then you'll hear about the,
there's a $250 stipend for conference travels and
stuff and it's like oh well that is helpful yeah that covers one night of hotel maybe yeah
yeah so i understand the value of being in a room together um i've really missed it over the last
little while and i was very very happy to get back to it with in-person conferences
uh and i know that hybrid is expensive like Like, you know, we didn't run
CPP North hybrid. And a lot of people have been like, every conference should be hybrid. It's,
it's a violation of, you know, human rights, not, and I'm like, oh, I must have missed the part
where you're giving me the money to run the hybrid conference. Cause it's like very expensive thing
to do. Right. I just, I would love to make everything accessible to everybody. I would.
Yeah. Accessibility is, I mean, we've mentioned that before is that we would love to, at some
point when we get sponsored for it, we will love to have transcripts for all of our episodes. And
my other podcast does do transcripts, but the amount of time, and it's not completely, actually,
I'm not sure if they spend money but like you can get you
can pay for transcripts um but it is currently not a cheap thing to do like um a lot of them
are by the minute so if you have hour-long podcasts um that totals up to you know a couple
thousand dollars a year and um yeah and and more more importantly it's it's time like it does take
a lot of time so like uh with the pluralsight courses, they come out almost immediately with a machine generated transcript, which is basically useless.
And then some number of days or weeks later, a human has gone through and edited that transcript
and then it's great. And I use it all the time because someone will say, could you explain
whatever to me? And I'll go into my own course, bring up the transcript, search for that word.
And then I can find that explanation.
Then it links back to the exact moment in the clip.
And I'm like, oh, sure.
In module seven, clip two, at the one minute time mark, you will see.
And I don't know, maybe they think I have the whole course memorized.
I'm just searching the transcript, you know.
That is a great hack, not just for looking up course stuff, but like on every YouTube
video, they have transcripts automatically generated and you can do the exact same thing.
If I'm ever looking for quotes from whether it's Kate or, you know, Sean or someone, you
can just open up the transcript, search for rotate and then go and click next, next a
couple of times and find a quote.
And then click to that bit and play it.
It's fantastic.
I mean, this is the whole curb cut thing, right?
You do something to help one group, but it turns out to help a ton of people.
And I found...
You should probably explain what curb cuts are.
So I don't even live in the city, but I used to live in the city.
And if there's a curb, a little piece of raised cement at the edge of the road,
to bump down that in a wheelchair is uncomfortable and difficult,
and to bump up it may be impossible.
So you get them to cut a gap there so that there's a smooth entrance
from the road up to the sidewalk.
But it turns out that it helps not just people in wheelchairs
and people with walkers, but people who are pushing strollers
and people who are wheeling dollies full of something they're delivering and what have you.
And that perhaps 10 times as many, quote unquote, able-bodied people benefit from the accommodation as the people that you justified doing it for.
And so the same with closed captioning. People say, well, how many people come to a conference who can't hear?
Well, first of all, more than you'd think, because my son works for a hearing aid company.
And when I mentioned that, people tell me they wear hearing aids. It's like, I can't tell you
how many times that's happened to me. People say, Oh, I wear hearing aids. And they won't tell you
otherwise. So there's an awful lot of people who could use some help when it comes to hearing.
But there are also people who are brave enough to go to a conference in their second language,
which I would never dream of doing, or their fifth, and the written material helps them
to understand what they're hearing, or the speaker has a bit of an accent and the written
material helps. So there's so many things that we do them for people with a condition that we
sort of feel sorry for and we have to help them, but it turns out it's actually more useful to this
huge other chunk of folk. And publishing the menus is very useful if you can't eat a particular food. But it was super
useful for everyone else. Yeah, even even folks. Yeah, completely able bodied. Like when you were
talking about the curb cutting is I was thinking I'm sure there's like a percentage of people that
have no problems with, you know, taking that step up that just, that just you know 10 of people trip every once
in a while because there's a little higher and it's just less people are tripping or or if you
have if you have luggage if you have suitcases yeah yeah i mean there's and it turns out like
they say that if you're if you're not disabled you're really just not disabled yet
right at some point maybe you'll break your arm and you'll have your arm in a cast for some number of weeks and you'll be very glad of those buttons
that you can hit with your elbow to open the door there's an apartment building
that I go to a lot and it has automatic door openers but not at the door that
has stairs up to it everywhere else there's automatic door openers and they're
like no if you can walk upstairs you can open a door and I'm like that's not that's not how this works lots of people can
walk up the stairs but they can't open the door you should have automatic door openers on all your
doors right because because it's there's more than just one uh difference that you that you
need to accommodate yeah yeah i love the new post-pandemic hand wave door openers now too
that's right you don't even need to hit them.
One, yeah.
I'm not a germaphobe, but like, it's just nicer not to be able to have to.
But two, they're also just easier.
It's like, it's half the time when you're carrying groceries or whatever.
Yeah.
And you need to try and get your elbow up.
And it's like, now you can just wave the grocery bag in front of it and poof, you're good to go.
Yes.
Yeah.
There's so many things that, you know, were completely impossible before the pandemic.
No, you can't order that online. No, we can't meet over Zoom. yeah there's so many things that you know were completely impossible before the pandemic no you
can't order that online no we can't meet over zoom you have to drive three hours in to have
the meeting you have to fly for the meeting we found out actually it's quite possible
or or like uh everywhere everywhere takes credit cards now that's that's my favorite
yes to bring cash anywhere i i can't remember the last time I used cash for anything.
Yeah.
It's just all credit and debit.
And you know, the book, Beautiful C++, Guy wrote that book in his commute time.
Wow.
He had 45 minutes each way commute.
I think that's the number.
So when he was working from home during the pandemic, an extra hour and a half a day.
And what he did is, at the time he would have normally gone to work, he went and worked on the number. So when he was working from home during the pandemic, he had an extra hour and a half a day. And what he did is at the time he would have normally gone to work,
he went and worked on the book until nine o'clock.
Then he closed that, worked on work all day.
Five o'clock when he would have been driving home,
he worked on the book.
Yeah, it's, I've always never really, I mean, I don't commute anymore,
but when I used to, I used to love it because I would read so much.
I do more audio books now, but back then the Toronto Public Library is just fantastic.
And they've got, I haven't used it in years, but they've got an amazing reservation system
where you can put books on hold and then like pause the on hold and you work your way up
a queue.
So like when you're at the, anyway, it's great.
Canadian, I mean, I shouldn't say Canadian.
It's specifically the Toronto one.
And yeah, like with just 20 or 25 minutes each way, it's 50 minutes.
And if folks are just whatever, playing Candy Crush on their phone, maybe it's kind of irritating.
But if you're consuming or being productive, it's like an awesome little chunk of time that it's kind of hard.
It's like, oh, how hard is it to find 50 minutes
or 25 times 2 slots a day but like
as soon as it's not there by necessity
it's just kind of
you never are in the routine of like
choosing it you know people
can say oh you're right there so I can just ask you a question
I can just ask you I can just interrupt you or
maybe I could sleep for another half an hour
or maybe I could have
I could take care of half an hour or maybe I could have uh I could take
care of that errand or whatever yeah yeah yeah it's I I haven't worked in an office for a real
long time but I used to go to to clients offices and go to to meetings yeah it's good i think i've said this a couple times but having to choose between either fully
remote or fully in person like it would i think remote would win 100 of the time because there's
just too much flexibility and it's um anyways we were talking about carbon yeah uh and then and
then we got sidetracked carbon is all remote? It's all online and it's all open and transparent.
There's no secret meeting that comes back and says, well, this is what we're going to do.
Everything's open. Every once in a while, there's things that the leads will have to decide,
but it's quite common for that to happen on a call that other people are on.
Right. And maybe as one sort of like last final question,
as probably we're actually winding down for the final time,
because you operate both in carbon and for years in C++.
Yeah.
Have you, like what in general have you observed
as sort of the response between,
because you hear a lot of, you know, oh, it's just rust,
or, you know, and then it's actually not just Rust and you answer that question.
What's, from your point of view, been the reaction from the C++ community?
Is it generally, oh no, or is it generally, oh, this could be great?
Yeah, I thought there would be negativity.
I really did.
I thought people would be like, how could you do that to C++?
How could you betray, you know, WG21 like this?
And that hasn't been the case at all.
People from the committee have, you know, saw it before the launch.
People have seen it since.
They say, yeah, that might work for some problems.
Because there are some problems, right, that are not tractable problems.
Then it's another FAQ.
Why don't you just improve C++? Like, well, if you look at the
cast of characters, it's all people who tried improving C++ and there's certain things that
can't be done because the priority number one is the backwards compatibility. That's a promise
that can't be broken. That's a promise that was made and that cannot be suspended. And that's fair. You know, I have no problem with that.
But when you take that promise away,
what does that enable?
What can you now solve that cannot be solved in C++?
That's what we're going to try to find out.
And there are things to be solved.
There are things about C++ that make it hard to write a compiler,
but they also make it hard to teach or hard to work in sometimes.
So what could we fix if we didn't have to be backward compatible with literally programs
from the 80s, right? That is a great question to ask. And I know that there are people who've got
some very specific wishes around performance. So did you see the Funathon blog?
I think that's who it was, about the calling.
Yeah.
You know, that, oh, if you want to pass like an int,
it's quicker to pass an int by value than by reference
because it will go in a register,
whereas if you pass it by reference,
the address will go and it won't go in a register.
And Carbon says it looks like a value, but we'll
do whichever is quicker. If it's quicker to pass it by value, we'll pass it by value. Otherwise,
we'll do it by reference. You know, that sort of thing is focused on perf. And for people who need
that, that's going to be a huge, huge benefit. And there are all kinds of stuff like that,
where it's just you have different goals, you have different priorities, so you can make different decisions.
I hope it ends up with a language that I get to teach and that I get to work in for a real long
time. But even if it totally flames out, there will have been lessons learned.
Yeah, I think, you know, I'm not sure it's the worst case. But one of the cases is
it just ends up making C++ a better language that's closer to what we would all like to see.
Like, I haven't met a single C++ developer that's been like, oh, my God, C++, it's my favorite language.
Absolutely nothing wrong with it.
It's perfectly designed from the get-go.
We made no mistake.
There's no, any C++ developer has their sections that frustrates them. And I mean, you know, you've heard Sean say that, you know, I think at the end of the
Elements of Programming book, it even defines like this subset of C++.
And there's the quote, you know, like inside of C++ is a beautiful language waiting to
get out or something like that.
You know, it's a language we all love with some asterisks next to the love that things I think one of the cool things is everyone has their asterisks in a different place.
You know, so someone was just talking today about, oh, you know, you can't teach operator overloading without getting into argument dependent lookup.
And I was like, you can't?
Because I'm pretty sure I have, you know. So we've all got our own little, you know, bugbears that we're like have a big problem with or struggle with or wish we could eliminate or what have you.
To say we'll make everybody happy can't be done because everybody has a different set of things they wish they could fix. But to be in a position where none of these decisions are binding,
that we will not be held to the 40-year-old decision
because we can break stuff if we want.
We can break not just the syntax, which is relatively trivial,
but the ABI break is a bigger deal, right?
There's cost to that.
Of course there is.
People have to rebuild.
But there's benefit to that too.
Because you don't run around breaking ABI because you felt like it.
You came to realize that something would be faster or that something would be smaller or whatever.
And then to be told, well, yeah, but we can't.
Because it'll break ABI and people don't wish to rebuild all their code and they don't have the source code
and all the reasons why you're not supposed to break things. Okay. But what if we did,
what if we broke things? And that just provides a freedom. That's very exciting to be part of.
Yeah. I mean, towards the end of CPP casts, you know, I don't know how many episodes it was 50
towards the end. Jason was always bringing up every other episode, you know, do you care about
ABI? You know, cause I, you know know and he started collecting these responses where i think either
all of them or almost all of them were like oh no we could rebuild if we like it seemed like this
issue like but then i know i know marshall clow is given talks that shows the issues of it and
there are folks out there that you know it is a big deal for well it's often not the engineers that um are the one like the
engineers like sure we could rebuild but it's often incisions that are being made um at a higher
level than line engineers yes and engineers are so optimistic they're like it'll take like 20
minutes it's no big it's not it's not a big, like, oh, we don't have the source for that.
Or no one remembers what options we set for this other thing.
Or we thought we remembered what options we set,
but obviously we didn't because now that we've built it,
it's not working the way it used to.
That's a fun one.
Yeah.
Yeah.
And like I'm old enough,
I have worked on stuff that we didn't have source code for.
Yeah.
I mean, ABI is a real problem for, you know, some people. I still think we should
break it regularly.
No, so someone asked a question at the Carbon Talk about, you know, changing the syntax
of the language every day or whatever. And I said to the person, like, benevolent. We're
supposed to be the benevolent leads, right? Like, just because we can break things doesn't mean we're going to break them all the time.
But some interesting things.
The first big break is to say we're going to break some C++ things.
I'm going to change some defaults, change the way some things are done, change the way some things are spelled.
And, you know, some people kind of losing their minds over that.
That's okay.
You know, I mean, Carbon has var and let, and where var is a thing with an
address that can change and let can't change. And they're like, no, you need to spell that const,
you can't spell that let. Okay, yeah, we can talk about that. But the basic concept that
we're not just tacking another keyword onto an existing
declaration, but we're actually going to use a different keyword to declare it, that's
in a way a break. And it's changing what the defaults are, because if you just declare an
integer in C++, it's mutable. But it doesn't have to be that way.
I mean, folks should keep in mind too that the people working on this language aren't just looking at
C++. They're looking at many other languages. And if you look at the languages that they're
looking at, sometimes the decisions they're making make more sense. Sometimes looking at
it just from a myopic C++ only lens would be like, well, why are you changing that? There's
no reason to change that. Absolutely. So if you look at Go, if you
look at Kotlin, if you look at Swift, if you look at Haskell, you know, people are looking at very,
very modern languages and really quite old ones and getting some inspiration. But, you know, also
some very bike-sheddy type questions are best solved by looking at other languages. So if you're
going to have introducers for functions, if you're going to say keyword
and then start talking about the fact that this is a function, here's its name, here's
its signature, here's what it returns.
You know, what should the keyword be?
It should be F for function.
Should it be FN?
Should it be funk?
Should it be function?
Should it be define?
You know, and you can find examples in a lot of other languages where they've used different introducer words. And you don't just like have a vote and say, well, it turns out nine out of 10 languages abbreviated this way. But it is helpful to look across, you know, a wide history and say, listen, we're not the first people to face this problem. Let's take a look at some science out there.
Yeah, for sure.
All right. With that, I feel like we've definitely taken you past. We're definitely over. It's getting dark. So we should let, we should let Kate go. Um, but thank you so much for coming on
and spending. I know our listeners, they absolutely love the guest episodes and, uh, we've been
mentioning your name. I mean, I can't count the number of times across episodes where we keep
saying we got to have Kate on, we got to have Kate on. And I even apologized at the beginning of
episode, I think it was 89 and 90 saying, we said Kate would be on, but she'll be on next time,
we promise. All right, well, any any last plugs or things you want to mention calls to action
before we let you let you enjoy your lakeside uh cabin which we are all jealous
that you are at right now i would i would say to everybody check out the cpp north videos um at the
moment that we're recording there's only a handful up but by the time it airs it should be well over
a dozen and that's probably more than you can watch right away so start watching some of those
and uh and plan to join us next year.
Awesome.
Well, once again, thank you so much for spending your time with us.
And enjoy the lake and the cabin.
And we will talk to you sometime in the future, hopefully in person.
All right.
Take care.
Thanks for listening.
We hope you enjoyed and have a great day.