Is C++ Really THAT BAD?

Written By John Sonmez

Some developers complain that I hate C++ too much.

Whenever there is an opportunity, I end up talking bad stuff about C++. Sorry, I can't help myself. Recently, a programmer emailed me with this question: “John, is C++ really that bad?”

Why do you talk so many bad things about C++? Watch this video and find out!

[responsive_video type='youtube' hide_related='0′ hide_logo='0′ hide_controls='0′ hide_title='0′ hide_fullscreen='0′ autoplay='0′][/responsive_video]

John Sonmez

Transcript Of The Video: 

Hey, what's up? John Sonmez here from Today I'm going to answer a question: Is C++ really that bad? I deserve it. I know. I know. The name of this question asker is C++ Master. I think that's on his birth certificate, The C++ Master. He says, “Why do you say so many bad things about C++? IT is the 3rd most used programming language and the 10th most paid. Other than that, it is a pretty neat language that hasn't started stagnating and will probably grow.” Then he's got additional info, “C++ Forever.”

Why do I get such a bad rep on this? Why do I give C++ such a bad rep? I've done some videos on how to learn C++ which was a trick video. You could check out the video where I talk about you shouldn't learn C++ and people get upset about this. People send me this stuff. C++ Master sends me stuff as I'm hating on C++.

I've got to tell you, I have a love-hate relationship with C++. I was a big C++ person for a long time. I did Topcoder. You can check out my career development story, my personal career story. I loved it. I still love the language. It is very complex and elegant yet clunky and beautiful language at the same time, there's so many—so many contradictions in the language. Some of my best time that I ever had in my career coding was doing C++. I see the beauty. I see the art in it.

But when I'm advising people on this channel, I'm not advising them to follow their dreams and follow their passions and to do things for the sake of making them harder on themselves. I am giving them pragmatic and practical advice. The reason why I “hate” on C++ so much on this channel has nothing to do with whether I think it's a good language. I think it's a great language. I think it is evolving. I think it's this superior language in many, many ways. I think it is a valuable language and a lot of people are making a lot of money from it. It is a very popular programming language and it will get to exist and be popular for a long time. I believe that, truly.

But, if you're asking me, if you're coming to this channel and you're like, “John, I want to get started as a software developer. How do I get started out?” I'm not going to give you C++—I'm not going to say that that's the best way. If you really want to go down that road, sure, go down it. Fine. It's great. It's awesome. You'll definitely have a good career and you'll be a master like C++ Master. It's good. You'll know more about programming than probably a lot of other people that deal with less complex programming languages.

It's already hard enough to become a software developer today. I wrote a book on the subject called The Complete Software Developer's Career Guide because I felt like it was so hard. You can check it out if you're interested, but I felt like it was so hard to become a software developer because there is so much information, there's so much stuff out there. So, how do we reduce this down? How do we make this simple?

That's the whole reason why—like I said, I'm not hating on C++. It's just a matter of a fact that the easier way, the path of least resistance, the most practical and pragmatic way to become a developer is probably not to go down the C++ road. Now, there are some reasons why you might do that, which is fine, but in general if you're like, “John, I just want to become a software developer and want to get started,” I want to start you on something easier. I want to start you on something like Python, something that's going to be simpler and easier so that you're not going to be as frustrated and that you're going to be able to—and you could be just as effective in most of those languages as you could be in C++. There are places where C++ is definitely better. There are places where Rust is better. In general, for a lot of the development that's being done today, the web development, mobile development, an easier language is going to be—is going to serve you just as well.

To give you an honest question again, I appreciate a lot of you that are C++ gurus, I used to be among your rank and I respect the dedication and the work. It is a difficult—you—a lot of C++ developers are some of the best developers, of course, because it's difficult, but I'm not going to recommend it. I'm just not going to recommend it to beginners, because even though, you know, sometimes we can be like these battle-scarred veterans and we can want to make the new recruits go through the same tough training and regimen that we did, but that's not always the most effective thing. It doesn't make sense. I'm going to do what makes sense on this channel. There you go.

Good question though. Thanks for the question. If you haven't subscribed already, click the Subscribe button below. Make sure you click the bell so you don't miss any videos especially if you're a C++ guru and you want to see when next I'm going to bash C++ you're going to want to click that bell. All right, I'll talk to you next time. Take care.