In November, renowned C++ developer and podcaster Jason Turner came to DRW’s Chicago office to share his insights on C++. After Jason hosted a few seminars broadcast to engineers in all DRW offices, we sat down with him to learn more about the culture and community supporting the C++ language.
DRW: Why are you so passionate about C++ versus other languages?
Jason Turner: With C++ we know exactly what the compiler is doing, we know exactly what it’s going to execute when we go to run our programs. You’re not going to get that combination of safety and performance out of any other language.
It gives us a lot of compile time guarantees. If we are writing a program that’s doing something that doesn’t make sense, there is a good chance the compiler will catch it for us. That’s not true in most of the scripting languages; there are really only a few other languages that give us the same kind of type guarantees.
C++ has the highest overall answer rate on Stack Overflow. Why do you think that is, and what do you think that says about the C++ community?
I did not know that and I find it honestly slightly surprising. There are millions and millions of C++ users around the world, but if you look at the C++ conferences, they have a much lower rate of attendance than other language conferences. So, I’m not entirely sure what to take away from that, saying that Stack Overflow has the highest overall answer rate. It could just be an indication that more people are confused by C++!
But I will say, the C++ community is a good one, and it’s growing. Looking at those same conferences - every year they do get bigger, so this community is growing every year by a lot.
C++ is used in video games and of course for trading, but what are other cases where you’ve seen C++?
I think it’s important to understand that everyone, every day is using something that has been written in C++: your web browser, Firefox, Chrome, Internet Explorer, those are all written in C++. Even your operating system, a good portion of that has C++ in it somewhere, almost certainly your Office suite is written in C++. It’s the language that’s used everywhere but people don’t necessarily think about.
Why do all of those everyday things like Office use C++?
It’s the only way you’re going to get that level of performance that you want.
Going along with the growth in conference attendance, over the past few years the interest in learning C++ has grown by 25%. Why do you think that is?
That is almost certainly the release of C++ 11, which reinvigorated the language a lot. It added a lot of things that made the language much easier to use and more friendly for beginners and so I think a lot of people who had left C++ or who had not heard of it before are now saying, “Oh what’s this new thing about?”
Who are these people who are making the new versions of C++?
It’s an international committee, an actual group of people. It’s called the ISO standard committee and meets - I believe - quarterly in different parts of the world. They have representation from a bunch of different countries, and they all talk about what features should be added to the language next. It’s another important thing for the people who are curious about the C++ community to know that the committee doesn’t make up stuff. The committee takes proposals that have been written and submitted by individuals and then determines if these proposals are worth adding to the language, whether or not they would cause a problem with the standard, and then they get voted on.
What do you think will be the biggest change in the next year for C++?
In the next year, C++ 17 will come out. There are a few features in C++ 17 that I strongly think will change the way we look at the language, just like C++ 11 did. I could be proven wrong, but I think so.
And we are reaching kind of a point here - there are three main compilers: GCC, Clang, and Visual Studio. And they have historically all implemented the standard at different rates. We’re going to see a point in 2017 where we’ll pretty much have all three major compilers be able to ship a standards compliance of C++ 17. There will probably be some gaps, but for the most part it will happen all in one year. It will be something that everyone will be able to use no matter what system they’re programming for.
As I mentioned earlier the C++ conferences keep growing dramatically every year. I’m looking forward to seeing how those will grow in 2017, especially in conjunction with the release of C++ 17. It should be a very exciting year for those involved in the C++ community.