As a Java expert, i have to say C++ is the GOAT. C is the old GOAT. I thought Java is not that special, but as i started using these popular languages like JS and Python recently, i started to appreciate these more verbose languages like C, C++ and Java. For me they are the big 3. If you can learn any of them well, you will pick up pretty much any other language in no time.
@@garciafede Yeah, i never coded in Rust but from what i noticed it looks very decent, it's highly praised in the community. At the end of the day, with the rise of AI and these integrated AI editors like Cursor AI, which i also started using recently, if one can understand the context about what needs to be developed and has prior programming experience, programming language becomes just a tool, a mean to an end. My recommendation to the new programmers would be to learn C or C++ first and learn it well, then their foundation will be strong and they will be able to code using pretty much anything.
I'm gonna get a lot of hate for this, but I feel that a lot of concepts in C#/.NET also translate to other languages in similar ways as the languages listed above; I would add it to my personal list.
Sometimes it gets overboard tho and is prone to abuse; I like C# operator overloading too cause its a little more restricted and explicit (especially with the implicit conversions and whatever all the other cursed syntax sugar is)
C++ brings a lot to the table. I do enjoy using C as it is a lot simpler, but I do love using things like generics and other stuff you mentioned. I usually write in a more procedural fashion than OOP which gives me the simplicity of C with the benefits of C++.
Yeah - templates are cluttered sometimes but in general make life easier, and I do love that C++ lets you choose what features to embrace and what not to embrace -- as you said, you can stick with a procedural style if you wanted
@cc1drt For small projects, things that I want to get up and running quickly, or web apps I'll use Python since I'm more familiar with the web and graphics libraries that are available in that realm. For other projects, I'll use C#
I have no comment on the language itself. I too love and like the expressiveness of the language. But in this modern times, not having a proper build system, dev tooling is a massive let down. Learning basic and writing some programs is fine, but you see hell when exposed to bazel, cmake, makefiles, static linking, dynamic linking, using 3rd party libs (massive pain), and on and on.... In a nutshell, tooling is the worst.
@@nifiz158 pip is terrible IMO. I've had tons of problems with it and if you don't use virtual environments everything may break. A package manager that allows such things and exposes you to such stability problems shouldn't be the gold standard, if it were the world would be doomed.
Op made an excellent point here. Cooperation of third party libraries is very painful and there is no official build system. Also, I often have problems deciding if I should write an method as .h + .cpp or header only. Other then that though, I simply love the amount of control and power C++ gives you, you can simply do anything in any way and this feels so liberating
It's good, but it's awkward because it has to be backwards compatible with C, making the language appear bloated. The STL is amazing, but unforuntately I'm in embedded so we can't actually use it because it takes up too much memory. So the C++ we write is really just C with OOP features. Polymorphism is great. Access modifiers are great. Operator overloading is useful too. What sucks about c++ is that there's no package manager (not that we're able to use many libraries on microcontrollers, but there are times when we do want to). We're not in 2002 anymore. It should be standard for a language to have a package manager imo. Other than that making makefiles is absolute aids and by far my least favourite part of working with c++, other than AvrDude being a bitch (but that's my fault for picking embedded).
0:10 Meanwhile me: I learned C after I learned C++ so I learn C a lot 1:06 "a lot more code reusability than you will ever get in C" Meanwhile me writing macros which declare functions so that I can reuse that code 😂 I know, sounds desperate, but I mostly write code for performance so I can't stand the uncertainty over wether a + is just a + or a function call. Though, I can tell I love STL and sometimes find myself exporting a function from C++ to C just for that. And that 0 overhead, I understand, but sometimes what I want is specifically that low level control and simplicity.
The 0 overhead is the part I hate the most. In C, if I want a clean slate of a buffer for data holding which no initialization, I can have that no problem. In C++, on the other hand, I am forced to initialized every single member of that buffer. Otherwise, I'm incurring in C++ UB, and that means that anything goes, so my buffer is no longer just a buffer, it's a buffer that must be initialized and destroyed, even if it's statically allocated and lives in the data segment and never even touches the heap, it still has an extra overhead that C would never have.
Doesn't allow runtime inference, hence why Java and C# are better for web development. In the end Python works as a glue language and allows you to use anything. No perfect language, just perfect for its purposes.
Have to disagree with everything, first OOP is bad for performance oriented design. two syntax is ugly and noisy, and unreadable, 3 the std, sucks it's lacking basic functionality while also being filled to the brim with the most useless stuff every. 4 zero overhead is a myth, it doesn't exist it's C++ propaganda, you can even watch someone who actually knows compiler (Chandler Caruth) explain why this is completely wrong. Five the compilers are bad, Six the tools are bad, Sever the ecosystem sucks, Height the community and culture sucks. Nine it's so slow to compile, Ten the error messages are horrendous. So no C++ is just a bad language, stop claiming otherwise. There is a reason why basically every company on the face of the earth is trying to get rid of it. Also just for context, I was hired to rewrite some C++ code. So C++ is my main language, I'm not hating on it for free. This is pure experience, from years of dealing with this joke of a language.
You made a lot of great points here, and I agree with many of them; every language has its flaws, and C++ is no exception. However, what I was trying to get across in the video is that I would still rather use C++ as opposed to C; it's a lot more convenient, in my opinion.
@LowLevelSpeedrun Sure for small projects, personal projects, small games why not, but for anything serious you are better off rolling your own data structures in C and carry on with your life. Or use literally anything because you will save people like me some dreadful week-end figuring out another trash C++ codebase
You had to put OOP at number one. How am I suppose to manage continue watching now? I hate C++ to my core and I also started with C. I never even thought to leave C for C++ or any other horrible language like Java for example
I don't really agree with many OOP principles, but the concept itself can be useful - at the lowest level, it's just structs with more syntax sugar. Personally, I find it useful sometimes and that's why I put it in my list
@@LowLevelSpeedrun "At the lowest level is just structs with more Syntax" that is not at all what OOP is, it has NOTHING to do with syntax. You should learn the definition of the terms you use before talking about them.
@@marcossidoruk8033 Sorry if I was unclear, I meant objects themselves; I conflate the terms sometimes because I don't follow OOP a lot; the only OOP concept that I regularly use is polymorphism
Your comment is wrong, and your attitude sucks. I know that for people, that have little human contact, it can be hard to be normal. But please try to be less of a complete pain lol
@@marcossidoruk8033 OOP may not be all about Syntax, but definitely i wouldnt agree has NOTHING to do, otherwise we would just do it in C. why you guys have to be so pedantic
@@LowLevelSpeedrun op is so stupid. This video is clearly titled "Why I love C++", obviously it is subjective. I hope comments like this, and the dislikes don't deter you from sharing your opinions
As a Java expert, i have to say C++ is the GOAT. C is the old GOAT. I thought Java is not that special, but as i started using these popular languages like JS and Python recently, i started to appreciate these more verbose languages like C, C++ and Java. For me they are the big 3. If you can learn any of them well, you will pick up pretty much any other language in no time.
I think the same way... In my opinion, I would add Rust and Kotlin (even as a substitute for Java)
@@garciafededamn, your tastes are same as mine. I love those 2. C and C++ are great though
@@garciafede Yeah, i never coded in Rust but from what i noticed it looks very decent, it's highly praised in the community. At the end of the day, with the rise of AI and these integrated AI editors like Cursor AI, which i also started using recently, if one can understand the context about what needs to be developed and has prior programming experience, programming language becomes just a tool, a mean to an end. My recommendation to the new programmers would be to learn C or C++ first and learn it well, then their foundation will be strong and they will be able to code using pretty much anything.
I'm gonna get a lot of hate for this, but I feel that a lot of concepts in C#/.NET also translate to other languages in similar ways as the languages listed above; I would add it to my personal list.
Java is the most horrible language I've seen in my life. Gladly we have Go now
my left earbud really enjoyed this
Yeah, sad I don't have one.
For a sec I thought there's no audio
My right one loved it more
operator overloading is my favorite, if used correctly makes the code so much more readable and concise
Sometimes it gets overboard tho and is prone to abuse; I like C# operator overloading too cause its a little more restricted and explicit (especially with the implicit conversions and whatever all the other cursed syntax sugar is)
I love C++ because it provides the speed of C without the annoyance of C
like having your program crash because you choose the wrong string variant
Yeah - best part is you can choose what utils to use and if you really need small performance gains you can still write C
C++ brings a lot to the table. I do enjoy using C as it is a lot simpler, but I do love using things like generics and other stuff you mentioned. I usually write in a more procedural fashion than OOP which gives me the simplicity of C with the benefits of C++.
Yeah - templates are cluttered sometimes but in general make life easier, and I do love that C++ lets you choose what features to embrace and what not to embrace -- as you said, you can stick with a procedural style if you wanted
my left ear enjoyed this :D keep it up
Thanks! Sorry about the audio - I already recorded some of my future videos so beware for the next few... but I'll fix the issue soon!
@@LowLevelSpeedrun no worries lad
I agree with your points!
I would also add move semantics and constexpr into the mix, they are my favourite fixtures.
Move semantics messes with my head sometimes 💀
constexpr is amazing though
I use c++ for competitve programming, and dont really use it for development. But as far as I have seen, c++ is the best language i have ever used
Yeah, C++ is definitely a relief for performance intensive projects, but otherwise, I don't really use it either
@@LowLevelSpeedrunwhat do you typically use for projects instead?
@cc1drt For small projects, things that I want to get up and running quickly, or web apps I'll use Python since I'm more familiar with the web and graphics libraries that are available in that realm. For other projects, I'll use C#
I thought my headphones were broken lol.
I love C and am currently learning CPP, its got some amazing features even at the beginner level.
Lol - I finally figured out how to fix the audio
c++ is kinda epic
you can call functions from structs and do polymorphism in C with function pointers
it's really cursed but it works
😂 yeah I remember trying to do this in C a while back
The callbacks aren't fun though
I have no comment on the language itself. I too love and like the expressiveness of the language. But in this modern times, not having a proper build system, dev tooling is a massive let down. Learning basic and writing some programs is fine, but you see hell when exposed to bazel, cmake, makefiles, static linking, dynamic linking, using 3rd party libs (massive pain), and on and on.... In a nutshell, tooling is the worst.
Yeah, you're right, this is mainly why I don't use it for projects that don't need it
I love using Python for small tasks for that reason, pip is amazing and should be a golden standard.
@@nifiz158 Yeah - I love the fact that pip can install from git repos and local filesystem too - it makes developing packages super easy
@@nifiz158 pip is terrible IMO. I've had tons of problems with it and if you don't use virtual environments everything may break. A package manager that allows such things and exposes you to such stability problems shouldn't be the gold standard, if it were the world would be doomed.
Op made an excellent point here. Cooperation of third party libraries is very painful and there is no official build system. Also, I often have problems deciding if I should write an method as .h + .cpp or header only. Other then that though, I simply love the amount of control and power C++ gives you, you can simply do anything in any way and this feels so liberating
I'll rather deal with Rust trait bound errors, safe object, async traits.
Respectable, to each their own
MY LEFT EAR
🤣sorry
It's good, but it's awkward because it has to be backwards compatible with C, making the language appear bloated. The STL is amazing, but unforuntately I'm in embedded so we can't actually use it because it takes up too much memory. So the C++ we write is really just C with OOP features.
Polymorphism is great. Access modifiers are great. Operator overloading is useful too.
What sucks about c++ is that there's no package manager (not that we're able to use many libraries on microcontrollers, but there are times when we do want to). We're not in 2002 anymore. It should be standard for a language to have a package manager imo. Other than that making makefiles is absolute aids and by far my least favourite part of working with c++, other than AvrDude being a bitch (but that's my fault for picking embedded).
Yeah, I agree; The STL provides a bunch of amazing stuff but it becomes a hassle to include anything 3rd party
0:15 - Video was closed.
I should have said objects. First and foremost, I like bound methods
0:10 Meanwhile me: I learned C after I learned C++ so I learn C a lot
1:06 "a lot more code reusability than you will ever get in C"
Meanwhile me writing macros which declare functions so that I can reuse that code 😂
I know, sounds desperate, but I mostly write code for performance so I can't stand the uncertainty over wether a + is just a + or a function call.
Though, I can tell I love STL and sometimes find myself exporting a function from C++ to C just for that.
And that 0 overhead, I understand, but sometimes what I want is specifically that low level control and simplicity.
That's true - I always find it funny when I hover over an operator and it shows a function declaration instead 😂
The 0 overhead is the part I hate the most. In C, if I want a clean slate of a buffer for data holding which no initialization, I can have that no problem.
In C++, on the other hand, I am forced to initialized every single member of that buffer. Otherwise, I'm incurring in C++ UB, and that means that anything goes, so my buffer is no longer just a buffer, it's a buffer that must be initialized and destroyed, even if it's statically allocated and lives in the data segment and never even touches the heap, it still has an extra overhead that C would never have.
Same here bro, c++ is the best programming language and will always be©️➕➕❤
Doesn't allow runtime inference, hence why Java and C# are better for web development.
In the end Python works as a glue language and allows you to use anything.
No perfect language, just perfect for its purposes.
What about if you move to C#?
I love C#! My next video is probably going to be propaganda for it...
@LowLevelSpeedrunlook forward to this.
@@VKjkd it'll be out asap! Thanks for the support; I haven't been able to upload in a while
@ for sure, you’ve got a good thing here. Appreciate it can be tough with other priorities but good luck and can’t wait for the video.
The audio gave me cancer
the one thinning i hate in c++ is the syntax structure it's ugly
Ye true lol - don't want your code looking like 0:45
The C++ parser has a very difficult job 😂
@LowLevelSpeedrun 😂😂😂
ow my left ear
I'm sorry about that!
Well yeah I hate c++ because it's too much not like C it's simple but C++ is powerful
Have to disagree with everything, first OOP is bad for performance oriented design. two syntax is ugly and noisy, and unreadable, 3 the std, sucks it's lacking basic functionality while also being filled to the brim with the most useless stuff every. 4 zero overhead is a myth, it doesn't exist it's C++ propaganda, you can even watch someone who actually knows compiler (Chandler Caruth) explain why this is completely wrong. Five the compilers are bad, Six the tools are bad, Sever the ecosystem sucks, Height the community and culture sucks. Nine it's so slow to compile, Ten the error messages are horrendous. So no C++ is just a bad language, stop claiming otherwise. There is a reason why basically every company on the face of the earth is trying to get rid of it.
Also just for context, I was hired to rewrite some C++ code. So C++ is my main language, I'm not hating on it for free. This is pure experience, from years of dealing with this joke of a language.
You made a lot of great points here, and I agree with many of them; every language has its flaws, and C++ is no exception. However, what I was trying to get across in the video is that I would still rather use C++ as opposed to C; it's a lot more convenient, in my opinion.
@LowLevelSpeedrun Sure for small projects, personal projects, small games why not, but for anything serious you are better off rolling your own data structures in C and carry on with your life. Or use literally anything because you will save people like me some dreadful week-end figuring out another trash C++ codebase
@@TheMachina42 😂 precisely why I use C#
me to nya
You had to put OOP at number one. How am I suppose to manage continue watching now?
I hate C++ to my core and I also started with C. I never even thought to leave C for C++ or any other horrible language like Java for example
I don't really agree with many OOP principles, but the concept itself can be useful - at the lowest level, it's just structs with more syntax sugar. Personally, I find it useful sometimes and that's why I put it in my list
@@LowLevelSpeedrun "At the lowest level is just structs with more Syntax" that is not at all what OOP is, it has NOTHING to do with syntax. You should learn the definition of the terms you use before talking about them.
@@marcossidoruk8033 Sorry if I was unclear, I meant objects themselves; I conflate the terms sometimes because I don't follow OOP a lot; the only OOP concept that I regularly use is polymorphism
Your comment is wrong, and your attitude sucks. I know that for people, that have little human contact, it can be hard to be normal. But please try to be less of a complete pain lol
@@marcossidoruk8033 OOP may not be all about Syntax, but definitely i wouldnt agree has NOTHING to do, otherwise we would just do it in C. why you guys have to be so pedantic
1. Subjective
2. Subjective
3. Bloat
4. Lies
On point 4: stuff like io streams and itterators are 10x slower than printf and for loops, I know, I tested it.
You're right, some of the points are subjective because this video is obviously stating my opinion, of which I never claimed objectivity.
Benchmarks tend not to be very well-rounded, do you mind sharing your test code?
@@LowLevelSpeedrun op is so stupid. This video is clearly titled "Why I love C++", obviously it is subjective. I hope comments like this, and the dislikes don't deter you from sharing your opinions
@@oh-facts Thanks for the support ❤️