CppCast - Jon Kalb loves the C++ Community

Episode Date: February 17, 2015

Episode number 1 of CppCast with guest Jon Kalb Jon has been writing C++ for two and half decades, does onsite C++ training, and works on the Amazon search engine for A9.com. He chairs the Cpp...Con and C++Now conferences. He also programs the C++ Track for the Silicon Valley Code Camp and serves as chair of the Boost Libraries Steering Committee. Links cppcon cppcon YouTube Channel C++Now! Boost Library Incubator Does C++ need its own podcast? Jon Kalb @_JonKalb Exception-Safe Coding in C++

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to the very first episode of CppCast, the only podcast for C++ developers by C++ developers. I'm your host, Rob Irving, and I'm joined by a very special guest for this inaugural episode, John Kalb. John, how are you doing tonight? I'm great. Great. John has been writing C++ for two and a half decades, does on-site C++ training, and works on the Amazon search engine for A9.com. He chairs the CppCon and C++ Now conferences. He also programs the C++ track for the Silicon Valley Code Camp and serves as chair of the Boost Library Steering Committee. committee. So the first thing I wanted to talk about tonight, John, was, you know, normally we'll
Starting point is 00:00:47 probably talk about news items to start off the show. But for this first episode, I thought we'd instead just talk about why you and I are sitting here talking about C++. So, John, isn't C++ kind of a dead language? I mean, most developers program in either JavaScript or a managed language like.NET or Java these days. C++ is over, right? Well, there's a lot of times when people thought that was the case. You know, if you look back, C++ kind of really became the hot language in the 90s when object-oriented programming was all the rage and C++ was kind of this nifty object-oriented thing that got glued onto C, which was, of course, very popular. And so it just really exploded in the 90s.
Starting point is 00:01:39 But then in the 2000s, things kind of changed. One of the things, as you mentioned, was people using managed languages and things like that. One of the things that was very popular was Java, which seemed to be, initially it was kind of seen as the language of the web and it's the language of the future. It's easier to program than C++. It has this convenient garbage collection. It makes it easier to teach, easier to learn. And at the same time, one of the phenomenons that we were seeing is that desktop computers were just really, really powerful. And it didn't really seem like it
Starting point is 00:02:15 was worth the additional complexity of learning and debugging C++ programs in order to get just a little bit more performance. So during the 90s, or excuse me, during the 2000s, we also had the situation where the standards committee wasn't really releasing anything. You know, there was a really minor update in 2003. And then there was the TR1, which had semi-standardized a few libraries from Boost. But other than that, there was nothing from the standards committee in all of the 2000s. And so it really did look like maybe C++ was going to go the way of COBOL. It was going to be the language for legacy programs, which isn't very exciting.
Starting point is 00:02:57 But I think what's happened is since basically around 2011, things have changed a lot. We have kind of a change in technology. Instead of having really, really powerful desktop machines, most computing today is either done in the cloud or it's done on a mobile device. And in both cases, we're now really, really concerned with performance. And on the mobile device, we're worried about running out of battery. And in the cloud, we're not worried about running out of battery. And in the cloud, we're not worried about running out of battery, but we're worried about how much energy it's taking and how much energy it's taking to cool the cloud servers. So performance is really important for really small machines and also for really big machines.
Starting point is 00:03:38 To add to that, with mobile, not only is performance a big factor, but so is being cross-platform. And C++ is the only language that's natively able to run on all three of the big mobile platforms. Right. Exactly. That plays to its portability strength as well as performance. Right. So we're seeing this is part of the reason that we're seeing kind of a renewed interest in C++.
Starting point is 00:04:10 But that's only part of it. The other thing is that the standards committee, although they didn't release anything in the 2000s, was working the entire time and developing a lot of cool new features, which they released in 2011. And so language is not it's not a minor makeover it's a huge huge change to c++ and a lot of interesting features were added and a huge extension to the standard library uh you know if you're going to look at page count it's not quite but it almost doubled the standard itself in terms of number of pages defining the language in the library.
Starting point is 00:04:46 Wow. One of the things that also happened because of this, you know, when the 1998 standard came out, when the original standard was released, what happened was attendance at standards committee meetings fell off. Because why wouldn't it? It just made sense because everyone knew that it was going to take perhaps two or three, maybe even longer years for compiler writers and library vendors to get up to speed with where the standard was. And in that situation, why show up at a standards committee meeting and think about what you're going to do for a standard that's many years in the future
Starting point is 00:05:21 when people haven't even got any experience using the current standard. So interest fell off. And, you know, as I say, nothing much was going on, at least it didn't look like much was going on in the 2000s. But what happened when 2011 came out, we had a situation there where compiler writers were tracking the standard very closely. And so when the standard came out in 2011, we had complete implementations not too terribly long after that, or I should say functionally complete implementations in almost everything.
Starting point is 00:05:54 And I think truly complete implementations as early as maybe 2013, which is a huge change from where we were before. But this increase in attendance was also, I think, driven by the fact that people were now looking at C++ as a language that could, in fact, innovate and could have some changes. So the library committee now has a dozen different, what they're calling working groups. So these are groups like the networking group, the reflection group, the transactional memory group, concurrency group, all these different groups that are focusing on one
Starting point is 00:06:31 particular area of the language that people have identified, this is what we want to work on. And they're just really, really busy. Right now they're scheduled to have eight, what are called technical specifications. So what this is, is a standardization of something that's not yet in the standard, but a standard that developers, that compiler writers can implement and developers can get some time with. And then the standards committee can look at the results of that and say, yeah, this is what we want, or they might tweak it a little bit. But the point is, there's an awful lot going on. We're going to be seeing a lot of new standardization stuff. So for people who are thinking, wow, we've got 11 and then 14,
Starting point is 00:07:13 and there's all the stuff coming at us. Well, we've got 17 coming very soon and all these new technical specifications coming at us. So there's a lot of really exciting changes going on. So that is really exciting, but a lot of people would say C++ is already very complicated, and some would say even too complicated. Do we really need to be adding this much more complexity to the C++ standard? Well, it's hard to argue that C++ isn't complicated enough, right? Sure, yeah. But one of the things that we see is that sometimes you can, you know, one of the things that would really be great is if we could remove things.
Starting point is 00:07:54 But that breaks code, and that's just a non-starter with the standards community. They're not going to go for anything that's going to break existing code. And so we can't take things away as much as it might be, might look like we could make things less complicated if we could take some things away. That isn't going to happen, but it is actually possible to add things and make things less complicated. I think one example of this is, is the auto, which is going to save a lot of engineers, a lot of typing, and maybe even, you know, catch some, and maybe even catch some bugs about conversions that may happen accidentally, or say range-based for loops and things like that. Sometimes adding things to the library can in fact make things simpler.
Starting point is 00:08:36 Lambdas are a good example. Lambdas by themselves don't actually give us anything we didn't already have in terms of anything you can do with a, you could do with a function object. But it wasn't often worth it. Now it's easy to make, you know, lambdas for short functions where before we wouldn't do it that way. And so this makes coding easier and clearer and frankly more fun. So there are things that can be added and actually have the effect of making things simpler. But then there are some things that are probably going to be added that are going to make things more complicated. And one example is right now with portable C++, there isn't any way to really exploit a GPU.
Starting point is 00:09:22 So how do you do that? Well, we're going to have to add some kind of, and of course, there's a working group looking at this right now. We're going to have to add some kind of way of expressing something in the language that says, gosh, this is what I want, you know, to have the GPUs doing at this point. And that's going to complicate the language, but we can't sit back and not do that. And, you know, C++ is a working person's language. It's not some mathematical construct that needs to be pure and beautiful. It needs to get work done. And the work we need to get done right now is, you know, exploiting multiple processors and exploiting GPUs. And we need to have extensions of language that let us do that.
Starting point is 00:10:07 That's interesting. I'm familiar with some of the GPU work with like C++ AMP, I believe is how you would do that in Visual C++. Yes. But you're saying that they're going to kind of commonize a way of doing that so that you could target, you know, any platform. I know there's work being done on this. I haven't looked at it, so I don't know what's going to happen. I'm hoping that that's what's going to happen.
Starting point is 00:10:34 I've been following that closely, but that's one of the things that I think is really an important area for C++ to have some growth. And it's going to come at some level of complexity. But like other parts of C++ that are complex, it can also be avoided. I mean, if you don't feel like you need the program that you're writing for whatever reason, doesn't need to exploit GPUs, then I don't think anything they're going to add is going to make your life more difficult. Right. Interesting. So we talked a little bit about performance there um in your opinion is c++ still
Starting point is 00:11:08 the best language for applications where performance counts are there any strong competitors uh when it comes to perf well i i don't know i mean obviously it's hard to imagine something in c++ that's going to be faster than C. Actually there is one clever example of this. If you use QSort in C and compare that with sort, the generic
Starting point is 00:11:36 algorithm in C++ it's not hard at all to make an example in C++ that beats the pants off of QSort. And the reason is that because it's a generic algorithm it can inline all to make an example in C++ that beats the pants off of QSort. And the reason is that because it's a generic algorithm, it can inline the comparison function. So if you want to compare something that's easily inlined, like if you have a container of integers and you want to sort those integers, in QSort, you're going to have to call a function that's going to compare
Starting point is 00:12:05 those two integers. Well, comparing the integers is trivial, but the function call is non-trivial in that situation. Whereas in C++, it would be inlined. And so in that situation, sort's going to beat the pants off of QSort. It's one situation where generic algorithms really shine. But in general, you don't write faster code in C++ than you do in C. The reason you use C++ over C is because you have better high-level abstractions that you can work with. Are there other languages that could be comparable in terms of performance with C++? There's a lot of interest in systems languages right now. There's things like Rust and Go and things like that. I don't know that any of them are going to give you
Starting point is 00:12:52 a raw performance advantage over C++. It's a little bit hard to imagine that. What they might give you is an easier paradigm. In other words, they can look at the mistakes that are in C++ that, as I said before, you can't take anything away. So any baggage that we have dating all the way back to the 70s and C is still there, and we can't get rid of it because that would break code. Whereas someone who's designing a language today like Go or Rust
Starting point is 00:13:21 can learn from all that and say, say okay we're going to do it better and then the trade-off that c++ has is that we also have literally millions of c++ programmers and hundreds of books and hours of training materials and all sorts of things like that and so that's where that's why c++ still makes sense even in an environment where somebody could imagine a language that's a little easier to write in. There's also still going to be the portability aspect that, you know, there's already these multiple C++ compilers targeting different platforms. And I imagine that these other languages are probably going to be starting off targeting, you know, specific areas,
Starting point is 00:14:00 specific platforms. Right. And now that you mentioned it, this is one of the things that I'm very excited about about C++ right now is that we have a new compiler that is the Clang compiler. And by itself, it's offering some competition, which is good for all of us in the development side. We've seen much better error messages, And I think I was largely inspired by Clang just really setting a very high bar for what's possible with error messages. But there's more to it than that. Clang is actually designed as a toolkit. And this is one thing that allows someone who wants to do, whether you're an academic or somebody else who just wants to say, gosh, wouldn't it be interesting if C++ had this feature?
Starting point is 00:14:45 Well, with Clang, it's not impossible to just add that in. Now, GCC is open source. It's also possible there. But GCC isn't really well designed for those kinds of experiments, whereas Clang is very well designed for that kind of stuff. It's really well factored. And one of the things that we're seeing is that people can start building tools with Clang that can be used with people who are using other compilers. So even if you're not yourself using Clang, even if you're using Microsoft's compiler
Starting point is 00:15:17 or the GCC compiler, you're seeing benefits from the work that's being done on the Clang engine. So I really think this is a big plus for C++ that's interesting so it's not too difficult to kind of open up the hood of clang and uh kind of experiment with it make your own changes if you want to it's specifically designed to be built in layers you understand that one of the big motivations for doing this was you know apple is kind of one of the starters of it and this was you know apple is kind of one of the starters of it and they wanted to make something that they could wrap an ide around and they were doing that with gcc but because gcc wasn't really designed with that in mind wasn't necessarily very friendly with that whereas they specifically made Clang such that, oh, we need to have just the Lexer because we want to be able to call that from the tech standard engine.
Starting point is 00:16:11 And we might want to have just different parts for different tools. And so there's all sorts of static analyzers that are being built using Clang because they can look at the AST. All sorts of really interesting things that are going on. And you kind of pick what it is you want to change. People who are doing things like source-to-source translation. Some of the Google engineers have talked about a project they did where they did millions of lines of code being changed, their situation was that they had APIs where they were passing in string pointers into...
Starting point is 00:17:00 The original API took a string pointer and then they changed it to take strings. So it still worked because the string pointer passed in would get converted to a string internally. But what they realized is that many, many callers were using string pointers or using strings. And then they would call CSTR to pull the string pointer out to pass it to the function that would then take the pointer and convert it back into a string. And since it was not going to modify the string, this was just pointless. And so Google said, wow, wouldn't it be cool if we could fix all of these situations? And they built a tool using Clang that would allow them to identify a situation where a string was, you know, where someone was calling C star on a string in order to pass a string was, you know, where someone was calling C-ster on a string in order to pass a string pointer in to a function
Starting point is 00:17:48 that was going to turn it back into a const string. So it was a huge job. It could have been done manually, but, you know, it would have been very tedious and it would have been error-prone. Whereas by using Clang tools, they were actually able to analyze the code itself and understand that that's exactly what was happening. That's interesting uh let's switch gears for a minute your bio mentions that
Starting point is 00:18:11 you're a member of the boost library steering committee what does that involve exactly well so uh boost is a uh is a open source peer-reviewed collection of libraries. It was actually started by Beeman Dawes when he was chair of the library committee for the standards committee. And he and Dave Abrahams and some other people started Boost because they recognized that what they really wanted was to take existing libraries to standardize them but the problem they ran into
Starting point is 00:18:48 was that most existing libraries didn't have wide user base in other words the only only libraries that had you know truly large user bases were proprietary libraries okay and there was no way to to share a free library and so they well, we're going to create this. And they wanted to make sure they were high quality, so they set it up so that when you submit a library, it has to be reviewed in order to be accepted. So this has worked great. In fact, lots of Boost libraries are now part of the standard.
Starting point is 00:19:21 Most of the new standard library in C++11 and 14 can trace its roots back to Boost. So from that point of view, it's been very successful. Now we're kind of thinking about what is the future of Boost? What are we moving to? How are we going to incorporate C++11 and 14 into Boost libraries? Are we going to have different versions of libraries for the different versions of the language? I think that's probably not the direction we're going, but we're still wrestling with these kinds of issues. Okay. Is there anything else new and exciting going on with the Boost community? Well, one of the things that Robert Ramey has done, Robert is the author of the Boost Serialization Library, and he's very, very concerned about the future of Boost
Starting point is 00:20:16 and making certain that we're getting the best possible libraries. So he's created something that's called a Boost Library Incubator. And what this is, is in the past, the process that you went through before you actually submitted a library was a little ad hoc. In other words, you'd get on the Boost mailing list. You'd say, hey, I'm interested in this, or I've started some work in this area. What would people think about this? What kind of features would you want? And then there'd be some discussion, and eventually you'd submit a proposal. And you may or may not have made your code public in
Starting point is 00:20:51 advance, and where you did that and how you did that is a little ad hoc. What Robert has done is more or less made this a little bit more transparent. You go, if you're interested in libraries that are being worked on, currently there's about 20 libraries, I think, in the Boost Incubator. Oh, wow. And so they're there. They're being prepared for a review.
Starting point is 00:21:16 It's a great place to check them out, see what ideas are going on. If you're interested in getting your feet wet, helping work on the library, or if you just want to help review it, then this is the opportunity. So if you're interested in contributing to Boost, maybe you don't have your own idea for a library, but you want to contribute, is this something you can do by going to GitHub or something like that and contributing to the open source community? Yeah, the place to start is the Boost developer mailing list. Okay. So the way the process works, when a library is submitted to Boost and accepted, the author of that library continues to be the maintainer of that library.
Starting point is 00:22:01 You still retain ownership, and you're responsible for maintenance. Some libraries, because Boost has been around for a very long time, so some libraries, the owner has kind of become inactive. And so we have a group called the community maintenance team that kind of takes over libraries that have been, you know, where the owner is no longer active. But if you look at the Boost developer list and you indicate that you're interested in helping, then you may have an author contact you, or you may contact an author and say, hey, this looks like a library that I'd be interested in.
Starting point is 00:22:36 And you can do the same thing with the incubator, where you're looking at libraries that haven't quite been accepted yet. There may be more work to be done there, and that might be more interesting if you find a library that's kind of in an area that you're interested in. Okay. So another thing that was in your profile was that you're the chair of CppCon and C++ Now conferences. That's right. CppCon is a new conference. Uh, how was attendance like at that conference this past year? Well, we had 580 people, not quite 600 people of that, um, about 80 were speakers. And, um, so it was, uh, it was a good solid turnout. I think for the first year, we're expecting to see some good growth. I think the, the feeling at the conference was really upbeat and exciting. I think people were very happy to be
Starting point is 00:23:29 there. And I know we did a lot of surveys and stuff and got a lot of really positive responses. So I think we're going to have a great turnout again this year. We haven't announced the call for speakers yet, but that's going to be coming fairly soon, I think. And that conference will be in September this year? That's right. September. Right. Okay. And what about C++ Now? What's the history of that conference? Well, C++ Now actually was originally BoostCon, so it's actually a Boost project. And it was
Starting point is 00:24:04 created because, as I said, Boost is this open source library and many people got to know each other fairly well, but only by email, not face to face. And so there was this feeling, gosh, we should all get together somewhere. And so somebody said, let's have a conference. So again, Beeman and Dave Abrahams started this conference that they called BoostCon. And the idea was to get both people who were developing the library, library authors, and also people who were using the library together to talk about ideas and to get to know each other and do a little bit of meet face-to-face. So that went on about five years when I made the suggestion, hey, let's make this more mainstream instead of being focused only on Boost. Let's just make it a C++ conference. And that wasn't really that big a radical change because although the attendees and
Starting point is 00:25:09 the presenters pulled very, very heavily from the Boost community, the truth was that really from the beginning, the topic was always C++. You're not going to talk about Boost libraries exclusively. What are you going to talk about? You're going to talk about C++ techniques. You're going to talk about proposals to exclusively. What are you going to talk about? You're going to talk about C++ techniques. You're going to talk about proposals to the standard, all those kinds of things. So making it more mainstream,
Starting point is 00:25:31 we changed the name from BoostCon to C++ Now. We increased the content. We went from two tracks to three, and we were more aggressive about soliciting and accepting tutorials i mean it's it's still a conference kind of a you know advanced library development it is it is moving in the direction of mainstream but it's still you know pretty much an expert conference so but moving in the direction of mainstream mainstream really kind of, you might say, struck a nerve or something because our attendance, the last year of BoostCon, I think we had about
Starting point is 00:26:10 85 people in the first year of C++ Now was up to 135. Then the next year we made it to 150, which is where we arbitrarily drew the line and said, this is how big it is. So this is the third year in which we've now sold out the conference. Well, I think we have one more registration available before we sell out. But the conference isn't until May, so I think we're going to make it. I don't think I've ever known someone who worked on two conferences. Do you feel like you're competing with yourself a bit? Well, you know, I think, yeah, I think it's an interesting thing. As I said, when we made the conference a little more mainstream, we got such a positive response to that, that my feeling was, and of course, I had pushed to make it more mainstream. That was kind of my proposal. Let's
Starting point is 00:27:05 change the name. Let's make it a little more mainstream. And with that kind of response, I said, let's go further. Let's make the conference bigger. Let's go a little more mainstream. But I got some pushback from attendees who were saying, we kind of like the atmosphere of a small conference. We don't want to move the location, which is probably what would have had to done if we'd gotten much bigger. We're just about as large as we can be in that facility. And so the feeling was that if there was going to be a mainstream C++ conference, it was going to be a separate conference. It wasn't going to be BoostCon evolving into that. And so that's where CppCon came from.
Starting point is 00:27:46 And CppCon, because it was designed from the beginning to be kind of the mainstream conference for C++. And so it's unlike C++ now, which has hit a really good maximum size. I don't ever want to see CPPCon sell out. If we do, we'll go to a bigger venue. And I want to, I want this to be the conference where everyone in the community feels like they have an opportunity to come and participate. And, you know, this is kind of, I see it as a platform for us to talk to ourselves. What is the, uh, the target you're trying to meet for this coming year? You said you had 580. What are you hoping to get to for this conference?
Starting point is 00:28:28 Well, that's a really good question. I'm thinking that our growth, and don't quote me on this because if we don't quite make it, it's not the end of the world. We'll still see it as successful. But I'm thinking that our growth will probably be on the order to 20 to 40 percent that'd be impressive um well as i said the the response we got from last year was just amazing i don't have those numbers at my fingertips but you know we gave people five choices about how much they liked the conference and how likely they were to ask other people and the top two choices on both of those was over 90%. So people either said, we definitely will invite somebody, or we probably will invite somebody.
Starting point is 00:29:12 And also on how great was the conference, it was really, really hot. So it could be that people were just filling out the surveys telling us what they thought we wanted to hear. But if you were there, I think you felt it. And so the response has been really good. And I think, you know, the first year, there's always people who didn't know about it, so already had conflicts scheduled and, you know, couldn't make it for one reason or another. So I think that we'll get the word out a little more this time, get a few more people.
Starting point is 00:29:48 So I'm confident we'll grow. The question is how much. And now these sessions at CppCon were actually recorded. So if you didn't make it to the first conference, you can actually watch a lot of this online, can't you? Absolutely. Well, we record all the sessions at C++ Now as well. The difference is that the CppCon, because we're operating at a different kind of scale,
Starting point is 00:30:12 we actually contracted out and had those professionally recorded and edited. Oh, wow. So the quality of those talks is really good they're both they're on youtube but actually one of the one of the feedback we got was we we got email from someone in china and also from someone in i believe it was iraq both of whom said we can't get youtube oh no can you host these videos somewhere else and i was like like, oh, okay. So we asked Microsoft if they would host them on Channel 9. Since Channel 9 is almost completely technical videos, that doesn't seem to get banned anywhere. Right.
Starting point is 00:31:05 So Channel 9 is also nice because if you want to just download and play the video back later, you don't have to actually have a connection. In fact, you can download just the audio stream. For one reason or another, you don't need the slides, like if it's an interview or something like that. We had some panel talks and stuff where there were no slides. So if you happen to like to listen to podcasts, go to Channel 9 and look for some of the panels and download the audio stream and make your own little podcast there. Sounds great. So what if you can't make it to one of these conferences, though, or your boss won't pay for it?
Starting point is 00:31:39 Are there any user groups or free conferences that a C++ developer might want to go to? Yeah. In fact, there's a lot of user groups or free conferences that a C++ developer might want to go to? Yeah. In fact, there's a lot of user groups. There's a list online. If you go to isocpp.org slash FAQ, that's the FAQ. If you go there, one of the listings is for local user groups. So, you know, we don't have them everywhere yet, but there's a good number of them in all sorts of countries in Europe, some of them in South America, and of course, in all sorts of cities
Starting point is 00:32:16 across North America. And so we're getting active kind of at all sorts of levels. So for an awful lot of people, there's a user group in driving distance of you. Okay. But as you said also, all the videos are available. And for CppCon, we had six tracks. We have over 100 sessions. That's over 100 hours of video so if you listen to listen to a video while eating lunch every day and you do two of those a day you know it'll last until the next conference yeah and even if you you know were able to make
Starting point is 00:33:02 it to the conference you probably would still want to watch the videos because you can only go to one track. You can't go to everything. That means that you're missing five tracks, even at the best. Even if you make it to every single session. And I know a lot of times I'm interested in watching a session that I actually attended. I want to see it again. So I'm very, very pleased about the videos. And it's one of the things I'm most proud of with the conference.
Starting point is 00:33:28 Yeah, it was great to get all those people together, get all the speakers together, get people to talk. And I hope this becomes kind of a platform for groups that don't always talk to each other. Have that have that platform. I think there's maybe some progress made reaching out between different communities that I saw that don't always talk. So I'm really excited about that. But one of the most tangible, if that's really appropriate, but most obvious benefits to the entire community of the conference was all
Starting point is 00:34:06 that content that's available. It's really good content and it's available free. And even if you can't get YouTube, you can still get it through Channel 9. And, you know, the speakers who were at this were the top of the C++ industry, right? Like Bjarns, Drusup, Herb Sutter. Absolutely. There were a few people that I wanted to get that we didn't, but we got yeses from almost everybody we went after. And lots and lots of people submitted. As I said, we had six tracks, but the truth is we had submissions. We could have probably filled four more tracks, which is more than C++ now because it's only three tracks. We said no to that many submissions. Now, I'd like to believe that we said no to the better submissions, that we didn't turn around a lot of great content, but we still turned down a lot of good content.
Starting point is 00:35:03 Sessions that I would have thought would you know we'd be proud to have but there just wasn't room and to me that's that's an indication that there's a lot of interest yeah definitely um so one of the videos that i actually watched from cpp con was you talking about the c++ track at Silicon Valley Code Camp. Yes. I've been to a few code camps myself, New York, Boston, Philly, but I'll be honest that I unfortunately have not seen much C++ content at those code camps. So I wanted to talk about how did you manage to get a whole track of C++ content at the Silicon Valley Code Camp?
Starting point is 00:35:44 That's really amazing to me. Well, you can kind of tell from what I did turning BoostCon into C++ now that I'm not the least bit shy about taking what's there and making it more like what I'd like it to be, right? So I heard about CodeCamp, even though I've lived in Silicon Valley for years, and CodeCamp had gone on for seven years and I'd never heard about it. But I was at work one day and an email came through and said,
Starting point is 00:36:13 hey, here's all these free sessions you can go to if you want. I looked at that and I said, what the heck is this? And I saw the name of somebody I knew and I contacted her. And I said, how do you get a chance to present at this? And she said, oh, contact Peter Kellner. And she said, I think it's technically submissions are closed because this was only like two weeks before the conference, but you could contact him and see what he can do. And so sure enough, he said, oh, sure, we'll find room for you. So I did my talk the first year.
Starting point is 00:36:49 And I thought the audience was great. It was kind of all over the board. There were a lot of younger, you know, college-age people. But there were experienced people, too. It was kind of all over. But really good and excited to be there. This is a situation where this is done on the weekend. The people who were there were there on their own time. They wanted to be there. This is a situation where this is done on the weekend. The people who were there were there on their own time. They wanted to be there. It wasn't like, oh, get
Starting point is 00:37:08 the boss to send me and I just miss out on some work or something. It wasn't like that. Those people wanted to be there and they wanted to learn. And so that was exciting to me. And so I would say the one thing that I didn't like about CodeCamp was that I was really the only C++ talk at the whole camp. And we're talking about, you know, 200 different sessions and 2000 different people showed up. And most of it was things like JavaScript and Android and iPhone and just all over the world, but not a lot of C++. And I said, well, I can fix this. And so I contacted Peter and I said, next
Starting point is 00:37:46 year, I want to do a C++ track. And he said, that's a great idea. Go for it. So that's where it came from. And so if you are participating in your local code camp and you think there should be more C++ content, then do what you can to get them lined up and see if it'll work out. That's all I did. I'm very fortunate in Silicon Valley, there's a lot of talented people who can get together and talk about C++. But as it turns out, Marshall Clow comes up from San Diego. Michael Case comes in from San Diego, or not San Diego, from Sacramento. So they're traveling. They're in California, but California's a big state.
Starting point is 00:38:31 They're traveling a long way to be part of the conference, but it's worth it to them. So I encourage people, don't be shy. Ask. Well, I'm definitely going to see if I can do that with some of the code camps that I attend to. Because I definitely, you know, like the Silicon Valley one, it was mostly.NET, JavaScript, whenever I go. So I'd be interested in seeing more C++ content there. All right. Well, yeah.
Starting point is 00:39:02 I'm happy to work with you and see see who's who i can think of this on the east coast we can we can get that going because it's it's it's a tremendous opportunity to to talk to people about c++ right so just like anything else um c++ you, it will die without new blood. Do you think C++ is attracting younger programmers? Well, I certainly hope so. I see some evidence of that. One of the things that seems to get people excited is the fact that they find out that C++ is used for game programming. So that's the motivator for some of them but some people are just in the situation where they really want to have power over their computer
Starting point is 00:39:50 they want to know what's going on they want that kind of control and C++ is a language that does that so I will tell you this at C++ Now we decided that we would have an opportunity to allow students to decided that we would have an opportunity to allow students to attend, and we would waive their reservation fee, their registration fee, if they would work as volunteers.
Starting point is 00:40:15 Oh, okay. And this was kind of, I mean, Hartmut Kaiser and I both kind of came up with this idea independently. We were, we were in the steering committee meeting and, uh, and one of us, one of us actually said the idea and the other one said, yeah, yeah, yeah, this is what I wanted to do. So, um, I didn't, I wanted to do it, but I wasn't really expecting that we would get much turnout because it turns out that with a conference, you know, traveling across the country, staying in a hotel, those are expensive things, even if the conference itself is free. So I didn't know how big a response we would get. But the truth is, we got, let's see, the first
Starting point is 00:40:58 year, I think we got over 15 resumes. And the quality of the resumes was really astounding to me. I mean, we were, we wanted people who would, would be volunteers and basically hold up time cards and help set up breaks and stuff like that. And we get, you know, PhD candidates in C++. Well, you might be a little under, underutilized here, but. But no, the response was absolutely terrific. And so it may be that there's a lot of colleges that are still teaching Java, but it's absolutely true that there's a lot of really bright students out there that are learning C++ and they're moving in to be part of the community. So yeah, I'm very optimistic about this.
Starting point is 00:41:44 That's good. Now, I'm only about eight years out of school, and I learned both Java and C in school. But I know at my own company, we're always hiring younger developers, and most of them come in with some C++ experience, which is always good to see. Yeah, I am a little concerned that I don't think, I mean, I think there are certainly exceptions, but I think most colleges aren't doing a great job of teaching C++, aren't really doing a great job of preparing people to be software engineers. Sometimes it's simply because they're not in a software engineering curriculum, right? They're in computer science curriculum. Right. So that's not exactly the same thing as software engineering. And so people with
Starting point is 00:42:26 CS degrees certainly can make good software engineers, but sometimes they're not really prepared for that. No, you definitely need a bit of on the job training to become productive. Right. Yeah. And I'm hoping that the conferences are, you know, the conferences and the videos are one way of helping people along. Well, I definitely think it is. I mean, there's just an amazing amount of content there on the YouTube for CppCon. So I really encourage all listeners to look for that. So back to you, I saw another thing in your bio was that you're working on on-site C++ training. How does that work exactly? Well, it's kind of in a transition right now. I'm still working a day job as a
Starting point is 00:43:15 software engineer, but I've already got some training gigs already lined up i've done some already in fact um did uh i've done some international stuff i went to germany and and did one at bmw oh wow and i've been working in uh i've got a um a job in canada that's lined up i i went to the same place last year so there's uh there's opportunities. I'm looking for more. I'm trying to, um, get some attention to talk to people about training opportunities. So if someone wanted to bring you into their company, how would they reach out to you for training? Um, well just, uh, shoot me an email, john at calbweb.com or yeah, excuse me, calbweb.com. And, uh, and I'd be glad to talk to anybody about what their requirements are and what
Starting point is 00:44:15 they're interested in doing. Sounds great. Is there anything else you want to talk about? Um, well, I want to say that I'm very, very excited about somebody starting a podcast. I actually am a heavy consumer of podcasts, but other than some tech news podcasts, I don't really listen to any tech podcasts because nobody's talking about C++.
Starting point is 00:44:40 And I think that makes sense. You really want to be able to look at code when you talk about C++. And I think that makes sense. You really want to be able to look at code when you talk about C++. But we can talk about C++ news and we can talk about things that are going on and all sorts of things. Yeah. So just to go into why I decided to start this podcast for a minute, I'm also a heavy consumer of podcasts, technical podcasts. I listen to shows like.NET Rocks and Hansel Minutes, MS Dev Show, and they're all programming and developer focused. But for the most part, there who's a C++ freelancer. And she'll talk about the state of C++, but she's being interviewed by two guys that work in C Sharp and.NET. So I really wanted to start a show that has the perspective of C++ developers talking to other C++ developers who understand it
Starting point is 00:45:46 and get it. And there just wasn't anything like that now. So yeah, here we are. Right. So what, can you share a little bit about what your plans are, what you're thinking about? Yeah. So obviously I want to have kind of, you know, well-known C++ people like yourself, and there's plenty of others to have people that go and talk at CppCon. It would be great. But on top of that, I want to also talk to everyday C++ developers. If you're working on a library and you want to publicize that library and tell the community about what it's good for,
Starting point is 00:46:26 I would love to have you on the show. If you are just like a C++ application developer and you're proud of the thing you're working on, I think that would be a great show, too. There's also book authors, plural site authors. You know, there is a lot of stuff going on in the c++ community and you know if i can shine a light on it with this podcast uh that's what i would like to do i'm i'm really excited to see what you're able to do i'm i'm yeah i'm really happy thank you well i think that's about it. Yeah. So people can find you online at called web.com. Is that correct? is probably the best place. Or, of course, either of the two conference websites, you can send email to the conference staff there,
Starting point is 00:47:31 and I'll get that as well. Right, and I think you said there's one slot open for C++ now remaining. Is that correct? I believe that is the case. But, well, let me say this. The way it works is we don't know exactly how many speakers will be attending because we are in the process of figuring that out. We've just sent out speaker notifications. But the reason I mention that is because when we are technically sold out, we actually have reserved spots for the speakers. I should say that when we say that
Starting point is 00:48:09 C++ Now has 150 people, that is our absolute max. That includes volunteers, that includes speakers, that includes everyone. So we have to create kind of a cushion because we aren't sure exactly how many speakers will be there. Sometimes people are working together, very often, this is the case in the academic community, where they make a submission and there's three names on the paper, but only one of them is actually going to come and present. But the other two have names on the paper because they... So the short is that if we sell out, there will be a waiting list. And we always take some names off the waiting list. That's always the case. So if you see that we're sold out, absolutely, if you're interested in attending, put yourself on the waiting list and don't count yourself out because we will absolutely, or at least I should say we always have, taken names off the waiting list as well. So we have to say that we're sold out when we're in a position of, of having a few spots kind of in reserve just in case. Right. And when will,
Starting point is 00:49:14 uh, CPP con registration open up? We don't have that date yet, but we gotta, we gotta get that opened fairly soon here. Um, but, um, as much as I'd encourage people to register quickly, I don't perceive that selling it. Right. Well, thank you so much for joining me for this first episode of CPP cast, John. Well, as you can tell, I'm really delighted to be here and, you know, um, would love to come back and kind of, uh, hear your successes after you've been doing it for a while and see how that goes. And I'm, you know, going to be rooting for you and I'll definitely be downloading. Sounds great. Thanks very much. All right. Talk to you later.
Starting point is 00:49:56 Okay. Bye. Thanks so much for listening 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 that also. You can email all your thoughts to feedback at cppcast.com. I'd also appreciate if you can follow CppCast on Twitter and like CppCast on Facebook. And of course, you can find all that info and the show notes on the podcast website at cppcast.com.

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