CppCast - Conference News and CppChat

Episode Date: March 1, 2018

Rob 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)
Starting point is 00:00:00 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,
Starting point is 00:00:35 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?
Starting point is 00:01:47 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.
Starting point is 00:02:12 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.
Starting point is 00:02:31 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.
Starting point is 00:02:59 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.
Starting point is 00:03:31 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,
Starting point is 00:03:42 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.
Starting point is 00:04:26 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.
Starting point is 00:04:52 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.
Starting point is 00:05:08 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
Starting point is 00:05:24 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
Starting point is 00:05:45 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
Starting point is 00:06:01 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
Starting point is 00:06:47 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,
Starting point is 00:07:29 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.
Starting point is 00:08:09 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
Starting point is 00:08:36 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
Starting point is 00:09:47 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,
Starting point is 00:10:35 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
Starting point is 00:11:06 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.
Starting point is 00:11:36 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
Starting point is 00:12:23 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,
Starting point is 00:13:00 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.
Starting point is 00:13:23 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.
Starting point is 00:13:52 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.
Starting point is 00:14:31 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
Starting point is 00:14:51 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,
Starting point is 00:15:37 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.
Starting point is 00:15:57 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.
Starting point is 00:16:15 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
Starting point is 00:16:50 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...
Starting point is 00:17:14 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,
Starting point is 00:17:48 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.
Starting point is 00:18:07 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.
Starting point is 00:18:47 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,
Starting point is 00:19:08 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
Starting point is 00:19:26 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
Starting point is 00:19:42 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?
Starting point is 00:20:10 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
Starting point is 00:20:38 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.
Starting point is 00:21:04 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...
Starting point is 00:21:28 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,
Starting point is 00:22:11 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.
Starting point is 00:22:39 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,
Starting point is 00:23:07 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
Starting point is 00:23:25 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
Starting point is 00:23:41 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.
Starting point is 00:24:09 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,
Starting point is 00:24:47 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
Starting point is 00:25:13 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.
Starting point is 00:25:57 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
Starting point is 00:26:47 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
Starting point is 00:27:04 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.
Starting point is 00:27:38 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.
Starting point is 00:28:09 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.
Starting point is 00:28:40 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
Starting point is 00:29:18 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?
Starting point is 00:29:46 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
Starting point is 00:30:26 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
Starting point is 00:31:12 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.
Starting point is 00:31:30 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,
Starting point is 00:32:06 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
Starting point is 00:32:33 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.
Starting point is 00:32:58 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.
Starting point is 00:33:32 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
Starting point is 00:34:02 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.
Starting point is 00:34:36 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?
Starting point is 00:34:57 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
Starting point is 00:35:15 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.
Starting point is 00:35:41 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
Starting point is 00:36:26 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
Starting point is 00:36:42 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
Starting point is 00:37:30 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.
Starting point is 00:38:05 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,
Starting point is 00:38:24 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
Starting point is 00:38:51 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.
Starting point is 00:39:35 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.
Starting point is 00:39:57 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.
Starting point is 00:40:31 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
Starting point is 00:40:54 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
Starting point is 00:41:33 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.
Starting point is 00:42:16 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.
Starting point is 00:42:38 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
Starting point is 00:42:56 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
Starting point is 00:43:22 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?
Starting point is 00:43:44 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
Starting point is 00:43:59 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.
Starting point is 00:44:21 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
Starting point is 00:44:57 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.
Starting point is 00:45:47 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,
Starting point is 00:46:26 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.
Starting point is 00:46:41 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,
Starting point is 00:47:06 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,
Starting point is 00:47:13 uh, yeah. Encourage people to, uh, register for C++ now. If you're, if you're interested in volunteering, uh,
Starting point is 00:47:20 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
Starting point is 00:47:54 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.
Starting point is 00:48:17 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
Starting point is 00:48:47 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
Starting point is 00:49:05 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
Starting point is 00:49:33 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.
Starting point is 00:49:56 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.
Starting point is 00:50:13 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.
Starting point is 00:50:47 Theme music for this episode is provided by podcastthemes.com.

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