CppCast - Conference News and CppChat
Episode Date: March 1, 2018Rob and Jason are joined by Jon Kalb to discuss upcoming C++ conferences, CppChat and east const. Jon does onsite training in C++ and chairs C++Now, CppCon, and the Boost Steering Committee. N...ext month he will be speaking at the ACCU conference in Bristol, and keynoting the C++ Russia conference in Saint Petersburg. News Market share of the most used C/C++ IDEs in 2018 A cake for your cherry, what should go in the C++ standard library Batteries not included: what should go in the C++ standard library? CMake 3.11: "add_library() and add_executable() commands can now be called without any sources and will not complain as long as sources are added later via the target_sources() Jon Kalb @_jonkalb // info - Jon Kalb's blog Links C++Now C++Now 2018 Registration is Open C++Now Accepting Student/Volunteer Applications CppCon C++ Community Events A Foolish Consistency Sponsors think-cell software Embo++ Hosts @robwirving @lefticus
Transcript
Discussion (0)
Episode 140 of CppCast with guest John Kalb, recorded February 28th, 2018.
CppCast is sponsored by ThinkCell Software.
They're looking for developers that would want to work on extremely challenging C++ development tasks.
In their Berlin-based office, they work with no deadlines, no overtime, and no meetings.
If this is for you, go to thinkcell.com slash cppcast and apply today.
CppCast is also sponsored by Embo++.
The upcoming conference will be held in Bochum, Germany from March 9th to 11th.
Meet other embedded systems developers working on microcontrollers, alternative kernels,
and highly customizable zero-cost library designs.
Get your ticket today at embo.io.
In this episode, we talk about whether the 2D graphic proposal should be in the standard.
Then we talk to John Kolb, chair of C++ Now, CppCon, and the Boost Steering Committee.
John shares some news about upcoming C++ developers by C++ developers.
I'm your host, Rob Irving, joined by my co-host, Jason Turner.
Jason, how are you doing today?
Pretty good, Rob. How are you doing?
I'm doing good. I don't really have too much to share.
How have you been?
Alright, I just found out that I was accepted to give a talk at C++ Now.
Awesome. Which talk is this going to be? A new one?
Oh yeah, a new one. I try to give new ones at every conference.
This is Initializer Lists Are Broken, Let's Fix Them. This is initializer lists are broken.
Let's fix them.
That's the full title.
Yeah.
Looking forward to hearing more about that.
I'm particularly excited because this will be only the second conference of nine that I have gone
to where I've only given one talk.
That is exciting.
You should be able to enjoy the conference a bit more, a little less stressed, right?
Yes, that is the plan, yes.
Yeah.
Okay, well, at the top of every episode, I'd like to give you a piece of feedback.
This week, we got a tweet from Mark Ingram, and he wrote,
Some feedback.
It would be great to know which guests are on the show in advance so we could pitch questions
to them.
And I agree. That is a great idea.
And I actually did tweet out earlier in the week that we were going to be speaking to John tonight.
I don't think anyone tweeted me with questions, but it's definitely a great idea.
And maybe in the future we'll get some uh some audience questions uh before before the show well we'll
almost certainly have a jacksonville follow-up interview of some sort so for those not paying
attention jacksonville is the next iso standards meeting and that's next month so maybe if we get
the word out before that we could get some people who would be interested in asking questions yeah
we will absolutely be talking to someone who went down to that standards
meeting after the fact.
Yeah.
Okay.
Well,
we'd love to hear your thoughts about the show as well.
You can always reach out to us on Facebook,
Twitter,
or email us at feedback at cpcast.com.
And don't forget to leave us a review on iTunes.
So joining us today,
as I mentioned,
is John called John does onsite training does on-site training in C++
and chairs C++ Now, CPPCon, and the Boost Steering Committee. Next month, he'll be speaking at the
ACCU conference in Bristol and keynoting the C++ Russia conference in St. Petersburg.
John, welcome to the show. Thank you. It's great to be here.
And you're our first three-time guest, I oh wow that's that's cool i like that a lot
um i'm almost as proud as that as i am of being the first first-time guest
that's a lot of chairs you sit in actually yes trust me i'm well aware
keeps me busy.
Do you ever have the opportunity to sit in all three at once just so you can stretch out, lay down, perhaps?
I'm curious about the C++ Russia conference in St. Petersburg.
Yes.
I would assume most of the conference talks are going to be in Russian there, but obviously you'll be speaking English.
It's a mix.
Some of them are in Russia
and some of them are in English.
And in fact, I was kind of disappointed.
I was looking at one of the speakers who I really wanted to see.
I shouldn't have mentioned him because now I can't remember
his last name. It's Andre. He's the one who
does the Unicorn
blog.
Oh, yeah.
PBS Studio.
Yeah, and he's speaking in Russian.
And so I told him, I said, oh, I'm disappointed
because, but, you know, if he's
more comfortable speaking in Russian, which he probably is,
then that's the way he should do it.
You know, the conference isn't there for
me. It's for people in Russia.
So, I
have a Russian
friend who's going to help me brush up on some quotation I can give to people in Russia to feel like I'm trying to fit in.
But yeah.
But no, I looked at the schedule and it says which ones are in Russian and which ones are in English.
And I didn't really take account.
I just noticed some of them were in English and some of them in Russian.
Okay.
So, John, we've got a couple of news articles to discuss.
And then we'll start talking to you more about all your many conference chairs and some upcoming Russian. Okay, so, John, we've got a couple of news articles to discuss, and then we'll start talking to you
more about all your many conference chairs
and some upcoming news, okay?
Okay.
So the first one is this blog post
about market share of the most
used C and C++ IDEs.
And I'm not sure
how reliable this data is, but
it sounds correct to me.
About 30% Visual Studio users.
Still in second place is Vim with 17%. Does that sound about right to you too, Jason?
It sounds sure right-ish to me. Visual Studio Code is definitely gaining some market share.
People talk about CLion. I know so few people who use eclipse for c++ development
yeah i've never been a huge fan of eclipse um some of the other ones that are on here uh cute
creator is almost 12 percent um and emacs is seven percent so between vim and emacs it's only
about a quarter of the users of c++ what do you take on this john
what are you using as your primary id these days um well i switch back and forth but see i don't
really do it's not really fair because i don't really do a big project right i mean when i'm
writing example code for a class or or else writing the longest thing i ever write is ever
an exercise it's going to be in class so So it might be, you know, three files.
I mean, it's just, it's not a real project from a C++ point of view.
So I was more interested in kind of the estimates that they were trying to do to get the,
that he mentioned, you know, how many C++ programmers are there.
He did mention JetBrains, what Anastasia did, the research she did. And she came up with a figure of 4.4 million,
but that was a few years ago. And now he's saying, he's thinking it's closer to about five,
what did he say, 5.1 million, something like that. So some of that may be growth in those
few years, or some of it may just be that his method of estimating is a little higher.
But anyway, I think it's interesting. That was more interesting to me really than breaking down
the IDE. One thing I would say is he mentions at the end, he runs some statistics to try to indicate
what the likelihood is that he's accurate. And I want to point out that all the statistical
measures that he based this on
was based on the idea that you were actually getting a random sample.
And the survey that he was running is clearly not a random sample.
So you can't use those statistical measures.
I mean, I'm not saying he's completely wrong or all wet.
I'm not saying any of that.
I'm just saying his statistics are not valid
because he's assuming that a survey is a
random sample, and it's not. It's slandered to people who respond to the survey for whatever
reason. Right, right. Well, thinking about it, since you chair two conferences, we're talking
five million at least approximately C++ developers, something like that. And I've been trying to
estimate this myself. Like if you were
to total all of the C++ conferences that at least we're aware of around the world, it can't be more
than 4,000 people that attend C++ conferences a year. I hadn't really thought about it, but
that may even be high. But yeah. It's an extraordinarily small percentage of the
approximately estimated number of c++ developers there are right i agree completely i think the
market is is substantially larger and i think that's why cpp con is growing by 20 a year right
okay uh next article we have uh this one might be a bit contentious, Cake for your Cherry, What Should Go in the C++ Standard Library? And this one was actually a response to an article that Guy Davidson wrote about his graphics proposal, Batteries Not Included, What Should Go in the C++ Standard Library? library and you know basically these two articles guy is saying you know his 2d graphics library
which he's spent an enormous amount of time on should be a standard library and uh this user
on hacker noon um i'm not sure what the the article author's name is but thinks that we
don't really need a graphics library and we should be spending our time on, you know, more important things basically. And I'm kind of curious what your take is on this,
John. One of the conclusions that this article on Hacker Noon came to is something that I think
we've kind of said before in the show that maybe the standard committee should be spending more
time on, you know, something like package management being standardized.
I definitely, that's one of the things that I came away with.
Because one of the things he pointed out is there are graphics packages out there,
2D graphics packages, you can pick the one you want.
But nobody wants to, there's no package that has great acceptance everywhere.
The Boost library is probably the most likely, and even there,
lots of people don't use Boost or can't get it because their company won't let it because it's
open source or whatever. If you're a C++ programmer, you have access to the standard library,
and that's part of the reason why people push hard on getting things in the standard library.
It's because they want everybody to be able to use it. And I think, and he's right, part of the
strong argument for getting this in the library is people want to be able to use it. And I think, and he's right, part of the strong argument for getting this in the library
is people want to be able to use it in teaching.
So I used to teach at the college level C++.
And one of the things that was frustrating to me is I only wanted to teach standard C++,
but that meant I couldn't do anything that was interesting visually.
I couldn't even do tic-tac-toe, right?
I couldn't do a game.
There was just very little that you could do that was interesting because there was no graphics.
And I think that's one of the arguments is, you know, if we just had a simple 2D graphics library, it wouldn't have to be the ultimate one.
But what he's pointing out in the article, I think does a good job, is that this is so hard to get, a one that professionals would use.
Almost any, you know, it's just insanely difficult to write a true portable library that would make
sense on an iPhone as well as a laptop, as well as, you know, a watch. And that's where C++ is
going to be deployed to. And so what you're really saying
is, well, it doesn't really have to be that good. And I think that's part of the idea. And I'm not
trying to deprecate what they're doing. But what they're trying to say is, we just need a 2D
library. It doesn't have to be the ultimate library. But then why should it be in the standard?
If all you really want is a library that can be used to be teaching, you know, this is one of the
things that I looked at what Bjarne did, because he was also teaching C++ at is a library that can be used to be teaching. This is one of the things that I looked at what Bjarni did,
because he was also teaching C++ at the college level.
And I didn't know this until after I stopped doing it, so I never did it.
But he just used, I can't remember which one it was, but he just picked one.
And it's a particular graphics library that's available for most platforms.
And it's probably not the end-all graphics library,
but it was good enough to teach students how to do object-oriented programming in the GUI world. And that was good enough.
And I think that he's right. The effort that we're putting into solving this problem,
if we put that into figuring out the packaging problem, and I understand that the standards committee considers the packaging problem out of their scope. And I think that needs to be
revisited. I think they need to think about how we do scope. And I think that needs to be revisited.
I think they need to think about how we do packaging.
And if they did, there's a lot of people with a lot of smarts and a lot of influence and a lot of tools.
This is the biggest single problem facing C++.
It's the reason that we don't get more users.
People get discouraged.
They can sit down and they can install any library they want in Python.
It's a piece of cake.
And off they go.
But in C++, you know, oh, here's a new library.
I get to download, figure out how it supports all this.
I think he scored a lot of points with me.
I mean, I'm sympathetic to why we want to put a 2D library in.
And if the idea is, well, it doesn't have to be the end all.
It would be just nice if I could write a simple C++ app and know that I could put up a window asking the user simple questions and just put up a little dialogue or something like that.
And I could do it in a portable way.
Yeah, that's really attractive.
But that's a lot of work for a library that's not really going to be used by most professionals because it won't be good enough to be used for you know, for demanding applications. It's just not
consistent with the philosophy of the rest of the standard line. So I think he scores a lot of
points with me. Yeah. I've always been kind of like, I just didn't care one way or the other.
If the 2d library ended up in the standard, I'm like, okay, but Unicode, which he mentions in
there, if we had like proper Unicode string support, there are definitely a lot of people who need that.
But packaging is probably the biggest thing that we actually need to fix.
I definitely agree.
Okay, and Jason, did you want to introduce this last one, CMake Update?
Yeah, it's a minor, minor thing.
Speaking of packaging.
Speaking of packaging, yeah.
It's a minor thing.
The point is
that ad library and ad executable basically become easier to use but i wanted to pull this uh comment
on this because there is definitely a growing movement towards modern cmake and better like
management of your cmake source and there's tons of like just old pre-CMake 3 stuff out there. So I just wanted
to make people aware that there is movement towards making CMake cleaner and easier to use.
Okay. You know, one of the things that I would advocate for people looking at trying to solve
the packaging problem, I don't think it can be solved in a way that addresses all the legacy.
If somebody just came along and said, we're throwing away everything and we're going to start new and say, this is the
way libraries should be designed. And if they're all designed this way, they'll work. And nothing
is exactly is designed this way, but you think it all through, you deal with all the situations,
and then you say, let's migrate libraries to support this. Because I just don't think there's
a good solution that's actually going to be able to work with
every existing library. So you just say,
no, we're breaking it. You have
a new library. You want to promote your library.
The question people are going to ask is, do you
use the new package system? And if you
answer yes, then people want to use your library.
That's strong motivation for people to get on board.
And I think it
could make the problem space
a lot easier to deal with. I don't know.
I don't have any comment on this particular CMake thing because I don't know CMake.
I'm not the package guy.
I know nothing about this kind of stuff,
and so I don't know what the correct solution is.
I'm just trying to make it easier for somebody who comes up with the correct solution to say,
don't be locked in on legacy.
Figure out the best thing and make us get on board with whatever the best thing is.
Of course, you have to convince us it's the best thing. You have to convince us it's worth doing. But if you can do that, I think make us get on board with whatever the best thing is of course you have to convince us it's the best thing it's convinced us it's worth doing but if you can do that i think
people will get on board so do you have an opinion for how or if modules fits into this conversation
unfortunately i haven't been following it closely i listened to what um izzy said and have kind of
at first i was thinking well, the standards committee is not
going to let that happen, where you are going to have to put a compiler into your build tool
in order to figure out how to build your source. But then as I thought about it more, I realized
from the committee's point of view, they're not defining the problem as being that's their
problem. They're looking at it from the point of view as, you know, what does the compiler do?
And so I'm thinking that that's exactly the situation
we're going to be in to really build a C++ application.
You're going to have to have a compiler
just to identify what source is needed.
And that's...
I can see why build people are upset about it,
and I can also see why, from the committee's point of view,
it's like, we're not worried about the build problem,
and we're worried about what's the compiler's problem.
And so I think it's... But again, I'm not an expert on it.
Go to C++ now, listen to John Rakos' talk on modules.
That is not a sell right there for you. it does seem like we maybe need, you know, a group of build experts to,
uh,
be attending committee meetings to try to figure some of these problems out.
You know,
people who are interested in package management modules and,
and build systems and CMake,
and maybe they can figure a path forward that everyone could agree on.
There's certainly,
um,
room for improvement in that area.
Yeah. So on the topic of C++ now yeah it is officially open for registration it is open for registration
and in fact um for people who are considering being a volunteer um the student volunteer
program is now accepting applications so you don't have to be a student.
We're looking for people who tend to be young people or wannabes,
but the deal is that in exchange for helping us run the conference,
we'll comp your registration and we'll help you with your travel and lodging expenses.
And I will warn you, it's very selective.
The applications we get are amazing.
But if you're interested,
absolutely apply.
Go to cppnow.org
and look for the applications button
for student applications,
look for student volunteer program.
We have a new website, by the way.
If you haven't been to cppnow.org recently,
go.
It's a whole new website,
all much more modern looking and kind of cool.
So what is new about the website, John?
What changed?
It's just a complete redesign visually.
Mostly it's the same information,
but we had a lot of stale links
with the old one. There was just a lot of issues with the old
one. And in talking
about it with Michael, Michael's company is
the ones that designed it for us, both
the old one and the new one. Not the
very old one, because it used to have a WordPress
and it got infected with some virus
and kind of on short notice we had to throw something
together quick. And so
Michael had somebody on his part of his company put together a real quick one,
and it just had a lot of issues.
And so he also had somebody who worked on it for quite a while
and did what I think is a really nice visually much more pleasing design,
and it's going to be a little easier for us to maintain it.
So I'm really pleased about the look.
So far, listeners who don't know, could you clarify who Michael is?
Oh, I'm sorry. It's Michael Case from Kier Consulting.
He's been very supportive of the conference.
So I love the work that he's done
and his company has done
and I'm really excited about the new look
and I do encourage people to go to the about
because we have a bunch of endorsements that are fun to read
people who have attended the conference and talked about what it was like
and what they got out of it
and you can read that page many times
because it actually randomly generates
a different selection of who the endorsements are every time.
Oh, nice.
So it doesn't sell out necessarily every year, correct?
C++ now, but it gets awfully close.
Yeah, last year we were within single digits of selling out.
So it's likely to sell out any given year, but it may not every year.
We used to have quite a waiting list, and the waiting list is not as long now.
Maybe I don't do as good a job of marketing as I should.
Well, you're here now.
That's right. I'm here now.
And I'm telling people, you want to go.
I mean, Jason has seen a list.
We haven't made public with all the lists of people who's accepted, but Jason has seen it because he was accepted. And so we let all people...
I've been so busy, I didn't even look at the full list. I saw my email that said accepted. I said,
great, I can look at the next thing I'm concerned about now.
Everyone who's been accepted, we show them the entire list because we want them to help us
schedule it. In other words, if there's a talk very similar to yours, we want you to say, by the way, don't schedule these two at the same time.
Or if there's a talk that you want to say, that talk is probably more intro, that probably leads
into mine, so why don't you schedule it before mine? So that's why we publish to two people who
have been accepted, we give them the list right away and try to get that so that when
we go public with the schedule, it's a better quality schedule. That's the idea. Okay. So yeah,
it's a really exciting list. We've got a lot of great stuff going on. And we haven't announced
the keynotes, but we've got some good stuff. It's going to be a great conference.
So it's a full week. How many talks are on schedule total?
Oh, gosh.
Well, there's three tracks, and it's about 17 tracks, something like that.
Maybe not quite that many.
Maybe it's only – but it's something on that order.
Okay.
When should we expect announcements?
Like when will keynoters be announced?
When will the full schedule be out?
We actually have on the website, it says when they're going to be announced.
When we have the call for submissions, we always say what the deadline is for going public.
So if you look at our announcements and you scroll down to the call for submissions, you'll see that.
So I'm not sure what the exact date is.
As far as announcing the keynotes,
I think we could announce one of them now because we have one absolutely nailed.
The other one,
we've got some details to work out yet.
So we could announce the keynotes at about any time.
Do you have one you can
share now?
Or not quite right now?
I will say that
I'll give you a huge hint.
I'll just say one little thing.
I'll say that she has spoken
at C++ Now a few times.
Okay.
And this year she'll be speaking as a keynote.
That could be a handful of people.
There's a very small number of people
that that could be.
Yeah. But we'll make that could be. Yeah.
But we'll make the big announcement, right?
Okay.
Any other C++ Now news, or should we move on to CppCon?
Just as we've been mentioning, we have announced who the speakers are to the speakers.
We've given them feedback yet, but we haven't gone public with the schedule.
So that's going to be a few weeks off, yeah, because we have a little bit of time to put the schedule together.
Scheduling, of course, is challenging. It keeps us busy for the next few weeks,
but then we'll go publish with it. I wanted to interrupt this discussion for just a moment to
bring you a word from our sponsors. Jason and I had a super interesting podcast with Arno back
in January. He's the CTO of ThinkCell, the number one graphic software used in consulting firms.
He's still looking to grow his team, and what they offer is quite appealing.
They work on extremely challenging C++ development tasks, and they offer more than pleasant working conditions.
With them, you could be working on things like solving linear constraints for automated layout or reverse engineering PowerPoint with IDA.
They have a large library of generic algorithms, extending the functionality of STL and Boost,
in particular improving Boost ranges.
So what you contribute could be used immediately throughout their half million lines of product
code.
They're always using the latest C++ features that are available in the latest version of
Visual C++ and Clang.
That's because ThinkCell software is cross-platform for Windows and Mac.
As for working conditions, I'm talking about no overtime, no meetings, no deadlines,
and any technical issues can be discussed directly with Arno. With them, you join a team of 20-plus
knowledgeable and creative programmers with a mix of young and experienced developers,
coming from 20 different nationalities from all over the world. It's a family-friendly
environment, and they pay 120k euro annually after just one year.
So if you like what you've heard so far, go to thinkcell.com slash cppcast to find out all about the job and apply today.
Okay, so how about this year's CppCon conference?
Actually, I was just about, I should have this just right here, but I don't, so I'm going to have to look it up real quick. I was going to read, CPPCon is still a ways away,
but what we have done is we have decided what the classes are going to be for the pre-conference and post-conference classes.
And also, we have not announced that either.
And in fact, I'm not really quite ready to announce all the classes,
but what I do want to announce is this is an alphabetical list
of all the people who are going to be speaking at, or not speaking, but teaching, teaching at CPP Con this year,
either a pre-conference class or a post-conference class, one of the two.
Okay, so yeah, the list you sent me, we have Andre Alexandrescu, Arthur O'Dwyer, Bob Stiegel,
Christopher DiBella, Dan Sachs, Gordon Brown, Herb Sutter, our own Jason Turner, Kate Gregory, Klaus Engelberger, Michael Case, Michael Wong, Nicolay Josudis, if I didn't butcher that, Patrice Roy, Phil Nash, Rainier Grimm, Scott Myers, Steve Dewarst, and Thomas McGuire.
So that's a lot of big names
yes, that's why I wanted you to read them
that is, I'm certain, the most
impressive list of instructors that have ever
happened at one place in the C++ world
I mean, it's great to see
Scott Myers coming back
to do a C++ course
and Andreo Zandrescu as well
yeah, well, I thought they were
retired, okay so you
just said something that i didn't say what they're going to teach is not a c++ course okay um they're
going to do a workshop with kate on how to do technical presentations oh so it's not it's not
c++ class they're not going to talk about c well obviously they will talk about c++ right but it's not C++ class. They're not going to talk about C++. Well, obviously, they will talk about C++.
But it's going to be in the context of, if you were giving a presentation, you might mention this.
And in fact, the participants in it, it's more of a workshop.
The participants will actually get up and give short talks.
So that's what the class is going to be.
I'm really excited about it.
But it will not.
In all honesty, it's not going to be Scott talking about C++, as
much as we would all like that. He is retired. I was able to get him to come back, but not
to talk about C++. He came back. This was actually his idea. He wanted to do a workshop
on how to give good quality technical presentations, how to present. And he said he wanted to get
some co-presenters. And so he's working with Andre and Kate,
which are some really good presenters.
So I think it's going to be a terrific workshop.
And really, the whole list,
Herb is going to do a class this year with us as well
and Jason, as you know, is returning.
A lot of the people are returning.
Some of the people are new. But I would say that we've Jason, as you know, returning. A lot of the people are returning. Some of the
people are new. But I would say that we've got, as I said, the most impressive collection of
instructors in both in the U.S. and Europe, coming from Europe to speak. So I'm just really excited.
And I want to, you know, the bottom line I want to really pitch hard is if you're coming to CPPCon and you're not thinking about doing a class as well, you're really missing out on an opportunity.
I don't know.
Jason, what do you want to say about this?
I think the classes are a wonderful opportunity.
I'm certainly not going to argue with you.
I haven't taken one of the classes, but I had a lot of fun giving one and I got great
feedback from my students. So it's, yeah, I mean, you know, to be fair, it makes a long week,
but everyone seemed to get a lot out of it. Yes. Well, I talked to people who had done both pre
and post-conference classes. So that's a nine day, a nine day stretch. But for them, it was an incredible opportunity
because their particular company wasn't going to bring instructors in.
And so if you want formal training, that's great.
If you happen to be at a company that,
I know Jason does formal training, I do formal training,
you want to bring us in, that's great.
In fact, I'm kind of jealous when I look at that list.
There's one name on the list that I wish was on the list, and that's my name, right?
But I know that there's just no way I could do that on top of running the conference, right?
No.
But if you wanted to have someone like Jason or me come to your company, that's great if your company does that.
But if you're in a really small company and they can't justify the cost of that or if your company is just not bringing
people in then then the best way to get some training is to do it at a conference and i think
cpp con is doing a great job of putting together a really attractive offer so we're gonna have a
lot of options a lot of different kinds of classes and as i say some will be pre-conference and some
will be post-conference so there's different scheduling options too. And I know last year when I gave my
class, I had a couple of students who had been volunteers at the conference and they got the
advantage of having a discounted rate for the class also. I assume that's the plan again for 2018.
So that's yet another reason to volunteer and be involved in the conference too
oh yeah yeah yeah absolutely very good yeah and i was just thinking you know that list of names
that you that you just shared for all of the people who will be teaching at the conference
i think you got that pretty much straight out of the guests that we've had on cpp cast
uh there might be i don't think there's a couple
here we have not talked to just maybe a couple getting people gordon brown i don't think we've
had on no uh nicolai i don't think we've had on no but we should get him on at some point sure
and you should have steve duerst i don't think you've had steve no we haven't had steve on i
don't know uh did you have you had dan on uh yeah, we haven't had Steve on either. Have you had Dan on?
Yeah. Dan Sachs?
Yeah, we had Dan.
After CPPCon 2016, we got him.
Oh, that's right.
Okay.
Yeah, right.
Okay.
Well, when I see your list of guests, I'm always thinking the same thing.
Hey, they're ripping off all my presenters.
Of course, I'm happy about that. Let's get
somebody, let's get better name recognition for people who are in the conference. In fact,
that actually leads to kind of the next topic I wanted to bring up, which is I've put together
a C++ community calendar, which is, the idea behind it was to put any event that's open to C++ programmers,
or I should say that specifically for C++ programmers.
They don't let us go to the Python conferences.
Yeah, right.
Let people know about it.
I really, I think that I push really hard to promote local groups,
and I try to encourage people who are speaking at conferences, by the way,
if you travel, and of course programmers tend not to travel a lot, but if you travel,
if you happen to be in an area, you know, contact the local groups there and ask if they want to
set up a meeting. And of course, the answer is always going to be yes. If you're a conference
speaker and you're from out of the area and you happen to be in the area, yeah, they want to have
you speak. It's good for the local group because they always want fresh content.
It's good for you.
You're developing your ability to speak by practicing,
and you're also developing your name recognition.
And it's good for the conference because you're a better speaker
and a better known speaker.
So to me, that's all win-win-win.
I think that user groups and conferences are really kind of supporting activities.
So that's why I've created the community calendar.
I want to get all the C++ conferences that are really specific to C++,
but I also want to get conferences that have most of their content in C++, like the ACCU.
ACCU is not nominally a C++ conference,
but if you look at their presentations every year, it's got a really strong C++ slant.
So I want to build a calendar that has those things.
And it's not easy for user groups
because they don't often schedule far in advance.
There's issues.
But I want to keep it updated for local groups as well.
And so I'm working with uh, with some of the,
uh, local organizers so that we can do that. And by the way, if you are a local organizer and you
want to be on the conference on the, on the, uh, community calendar, let me know, and we'll give
you access so that you can add events to it. I really like how you can see the whole year of
content and conferences and everything. It's really easy to
digest. So can anyone come on here and if they're, you know, the head of a user group or something,
put all their upcoming user group meetings on here? I have to, I have to give you access to
just contact me, but I'm happy to give access to anyone who's a user group, running a user group.
If you're a local leader, that's great.
Or if you have a conference or I even have in there for training.
So Jason, the next time you do public training,
let's get that on the conference so people are aware of it.
That sounds good.
Or on the calendar.
Yeah, that's great.
So yeah, if you can put that link in the show notes,
then people can go to that.
That's funny.
Yeah, absolutely.
And then the next thing you want to talk about, John, was East Const, right?
Yes, I wrote a blog on this.
And to be fair, the blog is a rant. So let's set the expectation properly.
So my blog site is slash slash dot info. the expectation properly. So,
my blog site is
slash slash dot info
as in a comment.
Slash slash.
Slash slash dot info
is my blog site.
So, I just published a blog.
I guess I just pushed it up last night.
Or maybe it was Monday night. I don't recall.
And it's ostensibly about EastConn's.
It also kind of makes the point that if the reason you're objecting to EastConn's is just because,
well, we don't write code that way now, and if that's your only objection,
I'm kind of not very sympathetic to that.
There are reasons that people say, well, I think EastConn's has this issue or that issue. Okay, maybe I'll listen to that. There are reasons that people say, well, I think East Const has this issue or that issue. Okay, maybe I'll listen to that. But basically, if you're saying, well,
we just want to be consistent. Well, I want to be consistent. I want code to be consistent. I
actually point out some examples in the blog post about inconsistencies that are just irritating.
Let's be as consistent as possible. But if you're, if you're saying I'm not going to improve because I want to be consistent with what I already have,
uh, if you, if you're always going to be consistent, you're never going to get better.
So if you want to improve, you've got to say, well, um, we're going to grow. And so that's
part of my argument. Um, and in fact, you know, it's occurred to me by reading some of the comments
that people have made about the blog post is, I don't really make the best
arguments for why you should use
EastConst. I explain what it is
and EastConst for those
who are curious, what is EastConst?
It is essentially
following the policy that you
write const in an expression
such that, or in a declaration
such that const always follows
what it is modifying.
So instead of saying const int, you say int const. And I know that that's kind of the minority
position, but there's actually a number of reasons why I think it reads better and it's a little more
logical. And I talk about some of those in the blog, not a lot. But my main argument is that, well, what prompted all this is there was a tweet that pointed out that in the core guidelines, they explicitly say, they don't use this phrase, but they say don't use East cons, use West cons.
And, okay, that's fine.
People are going to have different guidelines. But their reasoning for the guideline was, it essentially concedes and says,
well, yeah, EastConn's is actually more logical, but it might be confusing to users
because a lot of our training material for new people doesn't use EastConn's,
so they might be confused.
And I'm just flabbergasted by that.
That's like saying we have bad training material,
and instead of trying to upgrade our training material,
we're just going to always do a bad job.
As I said, I can understand you might have a different opinion about why you wanted this or why you're not.
But that particular reason just really irritates me.
It just seems so – I'm acknowledging that it's better, but I want to be consistent with past practice.
And to me that, so I rant it.
So that's what the blog post is.
It seems to me like if the core guidelines position is do this just because everyone else is doing this,
that shouldn't be something that goes into the core guidelines.
You know?
Well, I mean, if that was what it was as far as it was,
in other words, if you're saying,
well, let's be consistent with everybody else because there's no reason not to.
Of course you want to be consistent if there's no reason not to.
You know, when you're writing fiction, if you were saying, if every time you talk about a car, you called it a car, well, it would be a little monotonous to read.
Sometimes you should call it a vehicle.
Sometimes, you know, use different names.
In technical writing, figure out what the best term is and use that term consistently.
It's technical writing it's
not meant to be entertaining so yes be consistent but when somebody comes along and says well you
know you call this a car you also include motorcycles maybe vehicle is a better term
then start switching over and use vehicle in other words if somebody says something's better
then make room for improvement don't be different just to be different. And I'm all on for
that. Yes, we should be consistent. And if everybody else is doing something, you should
do it exactly that way, unless you have a better reason or a reason to do something better.
My argument for years was that we should use West const because every compiler would rewrite an error
to have it have const first instead of having const second
until not that long ago, just a few compiler versions ago.
Now all the compilers are consistent
with whatever you actually put in your code.
So I'm slowly being persuaded to use East Const.
Yeah.
Well, and one of the things that's frustrating for me is it's not – again, I know that I'm in the minority.
That's fine.
I open a book and I see an example.
I don't expect it to be East Const.
So when I do see it, I'm always delighted.
But what's frustrating to me is that the policy for the standard is that it's a design style that it
always has to be West Const. So they can't even give you an example to show, well, you could write
it this way. And to me, that's the frustration. It's not that I'm not going to say, well, I would
love it if the standard was all rewritten and all the examples were now East Const. Oh, I'd be happy
about that. But I don't expect that. What I would like to see is a few examples using East Const.
There's a lot of examples in the standard of code.
They're showing you that it's possible.
They're not even saying this is good code.
They're just saying this is syntactically what this means.
So there's nothing wrong with having some examples of East Const.
But no, as a style guideline, no, we're always going to be West Const.
That's frustrating to me.
I must admit I've never actually gone to the bit of the standard that
describes where const can be placed. There has to be something
in the standard that at least says that it's possible for it to be on the left side or the
right side, right? Well, the way it is, and
I describe the rule in my blog post.
This is the rule as Scott describes it. And Scott's description of the rule is, Scott Myers, his this is the rule as scott describes it and scott's this description of the
rule is scott myers his description of the rule is that const always modifies what's on its left
unless there is nothing on its left and then it modifies what's on its right and to me that's
that by itself means that there's a simple consistent rule that always works which is it
modifies what's on its left now you can can say, well, you could just always write it on the right, except when you have a
pointer, you have to modify the pointer by putting it on the right. So you're going to have some
things on the right. And so the simplest consistent rule for me is I always put it on the right of
whatever I'm trying to modify. But the way the standard actually does it is, the standard says that
when you're making a declaration, you can put the adornments, I'm not sure what the correct term is,
but you can put the adornments of a type in pretty much any order. You can say int static short const,
or you can say short static int const. I mean, you put things in whatever order you want.
Until you get to, when you put in a pointer, you're no longer part of defining the type.
You're defining that this is now a pointer to whatever the type is.
Right.
And so everything before that asterisk can be in pretty much any order.
So it could be left or right. But once you get to that asterisk,
now if you put a const,
if you want to make the pointer const,
it has to follow the pointer.
Because if you put the const before the pointer,
then you'd be modifying the int
or whatever the type is.
So the standard doesn't say the rule
the way Scott does it.
But Scott's rule actually covers what it is, which is
const always modifies
what's on its left, unless there is nothing
on its left, and then it modifies what's on its right.
And as I said, to me,
I like nice, simple, consistent rules, and just
saying, oh, it always modifies what's on
its left, is a nice, simple, consistent rule.
But, again,
I mean, I understand why people
would have difference of opinion in one way or
another. But to me, if your only argument is, well, we've always done it that way, we want to
be consistent, that doesn't wash with me. Because that also means you can't do any other kind of
improvement. Well, we've never used smart pointers before, so we don't want to be inconsistent. And
it's like, that's just crazy.
Okay, and John, you also wanted to talk a little bit about CPP
Chat, right? Yeah, I did.
CPP Chat is the only
competition you guys have, I think.
It's not a very strong competition.
Have you been doing
episodes recently? It's been a while, right?
I have been on hiatus I think since right before
CppCon I think I took a break to do CppCon
and never got back in the groove
so it's been on hiatus for a very long time
for those of you who don't know
CppChat
is a
it's a video podcast
and it's
not quite the same format you guys have
because you have one guest on.
I do kind of as a, you might say, a table.
We usually have like three, four guests, something like that,
and it's not really an interview of one guest.
The idea is to talk about news events,
kind of like you do at the beginning of every one of your shows.
Have a news article and talk about that.
That's what the format is
supposed to be. And the reason I wanted to bring it up here is that I kind of wanted to reach out
and say, if there's someone who would like to be a co-host on that and is willing to do some of the
lifting, I guess I'm looking for a producing partner is what I'm trying to say. So if somebody
is interested in doing a video, there's no reason not to also do an audio release of say. So if somebody is interested in, in, in doing a video and then I would,
there's no reason not to also do an audio release of that. So I would, I would love to have an audio
video version of what we do and I would love to do it on a weekly basis. And the fact that I
haven't been able to do it since, since September, um, is evidence that I'm not able to do this
myself. If I had someone to help me, I think it would be a show. So I, I decided to use your podcast against great competition.
By using other podcasts in the space, it's not a competition at all.
Well, particularly mine is probably not going to be, but anyway, um, But anyway, I listen to podcasts all the time. I was delighted, by the way,
when you announced that you were thinking about, you sent out a question, I think it was on
LinkedIn, saying, should there be a podcast for C++? And I was all over that. And I think that's
part of the reason why I was the first person that you interviewed was because I was really
excited about having a podcast.
And you guys have done such an amazing job.
I love this podcast, and I talk to people all the time.
And they're like, oh, yeah, I love listening to that.
Listen to that on Commute or something like that.
So I would love to do that as well.
And it'll be a slightly different format because it's going to be less about interviews and more about kind of a roundtable.
But anyway, so that's my request is if you're interested in helping out with this, you'd like to do a co-host kind of thing,
and you'd be willing to do some of the maintenance to put a podcast together and get it out,
please contact me.
I'd love that.
Where should people reach out to you?
Just on Twitter?
Email is probably as good as any.
And that's just John at CalWeb.
That's just my last name, K-A-L-B,
and then W-E-B dot com.
J-O-N at CalWeb dot com.
You have to let us know what happens.
You'll know if it ever happens.
One of the things that we always did was we always talked about what you guys do.
It was kind of like podcast envy.
So I was like, okay, who did they have on as their guests last week?
Okay.
Well,
is there anything else you wanted to talk about today,
John?
Um,
we've covered a lot of stuff,
so I'm,
I'm very pleased.
Very happy.
Um,
uh,
yeah.
Encourage people to,
uh,
register for C++ now.
If you're,
if you're interested in volunteering,
uh,
reach out and volunteer.
Or if you know somebody who's a student who's interested in C++, you think they should volunteer, please let them know about it. If you're thinking about coming
to CPPCon, think about attending a class as well. You'll get a lot more out of the conference. It's
an amazing opportunity. If you are doing local events, please contact me so that we can get those on the community calendar.
And if you're ready for a rant,
read my rant
on slash slash dot info.
And if you're interested in helping
make a C++ podcast
happen, then contact me
and we'll talk about that.
One more question about CppCon.
I know it's a ways away, but do you have any idea when
a call for speakers or registration is going to happen?
Actually, those should not be far off.
There is actually a schedule currently on the CppCon website that says when that is.
Don't remind me.
Well, according to John's website, the call for submission should be March 29th.
Yeah.
It is getting close.
And I think we hope to have registration out also very soon.
So we're coming up on these things, so I need to get on that stuff.
Well, I already have my CBBCon submission planned,
so I encourage anyone who is thinking about it
to start thinking about it now so you have a well-formed idea
and do not wait until the last minute to make the submission.
Right, John?
Oh, absolutely.
And in fact, if you haven't submitted before,
if you look at the submitter,
one of the things we have is we actually have an email address
that you can send a potential
submission to and get comments. And so if you're saying, well, I'm thinking about making a CPPCon
submission, absolutely write up an abstract, send it to our submission advice email and get
some thoughts on that. It will improve your abstract. It'll improve the chances that you'll
be accepted. And even when you are accepted, it's
likely to improve the talk itself. If you have a better
abstract, you'll be in a better frame of mind
to develop the talk. But what I have to tell
you is, there's not a lot of
volunteers working on that. So you have
to send that out early. If you
wait until two weeks before the deadline,
you're probably not going to get a lot
of attention. You need to do that as early as
possible. So if you're a new submitter, follow Jason's advice, submit very early.
Don't wait until the last minute on that.
And you'll end up with a better result.
Okay.
Well, thanks again for coming on the show today, John.
It's always great to talk to you.
And I'll definitely put all those links in the show notes.
I encourage everyone to check out CPP Now and CPP Con and the community calendar.
Thank you very much.
And it's been great.
And thank you guys a lot for doing this podcast.
Thank you for coming on.
Thanks so much for listening in as we chat about C++.
I'd love to hear what you think of the podcast.
Please let me know if we're discussing the stuff you're interested in.
Or if you have a suggestion for a topic, I'd love to hear about that too. You can email all your
thoughts to feedback at cppcast.com. I'd also appreciate if you like CppCast on Facebook and
follow CppCast on Twitter. You can also follow me at Rob W. Irving and Jason at Leftkiss on Twitter.
And of course, you can find all that info and the show notes on the podcast website at cppcast.com.
Theme music for this episode is provided by podcastthemes.com.