It's been about 12 years since we first heard of Rust, and despite the extensive marketing campaign it has received, it is still considered a niche programming language. Don't get me wrong, I'm not saying Rust is a bad programming language. In fact, it might be better than C/C++ in many aspects, but its approach forces developers to either write everything from scratch or deal with the pitfalls of the 'extern-function approach' for integration with the outside world. The industry has invariably proven that this approach is a failure from day one. A very good example of this is the Dart programming language. It was originally intended to replace JavaScript, and despite being better than JavaScript in many ways, it miserably failed to do so. Similarly, Rust is unlikely to succeed in replacing C or C++. Rust and C++ are fundamentally incompatible. I see more future in replacing C/C++ with other approaches such as CPP2 or Carbon if the first production-ready versions of those languages are released, which seems very likely to happen soon. Once that happens, there will be even less chance for Rust to replace C or C++. Also, note that C++ and TypeScript are very successful languages in terms of adoption because their approach doesn't require rewriting everything from scratch. You just change the extension from .js to .ts in your JavaScript programs and start seeing results in terms of migration right away. Similarly, with C++ and C; you compile a C program with a C++ compiler and start seeing results. That's why industries are reluctant to migrate to Rust. This approach is in opposition to code reusability, which is too important to give up.
One thing I'm learning after years of "trying many languages" is get depth in one language. It doesn't really matter too much what it is but I would use a general purpose language. Use it like a hammer where everything is a nail for a while. Even if it isn't meant to do backend try to make something in the frontend using it. Then try another language meant to do that particular and it will seem way easier. Then just keep refreshed on the language you have the most depth in.
As a programming language enthusiast, that’s like telling a car enthusiast, cars are just tools to get from point A to point B… a lot of careful design, creativity, optimizations, etc go into creating a programming language… but I understand. Most people don’t really care about all that.
I mean theoretically even if everyone stopped writing software in C++ it's good to understand it if your port to another language. But realistically it's never going to die out.
What I'm going to say is not according to job point of view. But if you are a geek who is really driven to understand programming, I believe this is the way to begin your journey: Learn C first. It might be hard and demotivating at first but stick to it. Once things start to make sense, it'll be very easy to move on to any other language. If you are a student and still got lot of time to grind, its better to learn C++ after C since its an easier transition from Procedural to OOPs because of the identical syntaxes those languages share. Just focus on OOPS when learning C++. You don't have to master any language. Learn it till you are able to make a good project out of it. After that move to Java. DSA is best understood with Java. After these, you can move onto some dynamic language like JavaScript or Python (depends on what job you want). Now slowly get into Assembly and understand how hardware stuff really is really implemented and working. Then you can easily pick the domain you would like to work with, grind it for some months, then apply for some jobs, and get it. NOTE: Focus on projects and domain and do practice exercises everyday. Don't fall into tutorial hell and perfectionism mindset.
So basically just learn all the programming paradigms and popular programming languages, AND THEN go and learn domain specific frameworks? Why not just learn one or two languages and then start working right away?
@@aperture0 because Java cleans up memory and you do not have to do memory management. Data structures are a lot harder when you’re using pointers like in C++ but pointers will definitely enhance your learning. So I would suggest get the basic data structure down(the concept) then get back to it with C since there is no garbage collector to babysit you. Jumping straight into data structure with c++ is not something I recommend it’s a steep learning curve.
@@Hallo503 learn concepts then program. Trust me programming is the last step you want to do, the pseudo code and write outs are very good when you first start learning, you should understand how the compiler works before just throwing random code at the compiler. If you’re stuck on a problem you can look up the solution, but try to understand it.
@@fackyoutube8452 If I want to program lets say java or javascript, I dont need to know how the compiler works. Knowing the syntax and semantics of the language is enough
If you are looking for a job that pays decent learn c++ if you already have a job and are looking for hobby projects or trying to broaden your horizons learn rust. Nothing will replace c++ period.
I want to do graphics programs and software plugins. Maya / After Effects just have SDK's in C++. A majority of OpenGL examples and tutorials are in C++.
I am happy to hear you say maybe you could learn both C++ and Rust. this made me feel better about learning two programming languages at the same time. I've been learning Kotlin and C++ at the same time. But I program in Kotlin every day and C++ about 1 or 2 hours per day if I have the time. Kotlin is to find a job and C++ is for fun. But I already have over 1 year and 6 months of programming, so I think I have a good understanding of my fundamentals, I hope so. Thanks Caleb I enjoy your tutorials.
@@siman211 Mostly RUclips because I code once in a while with C++ not often. Because everyday I am focused on Kotlin with Android. But I should mention from my personal experience that Coursera programming courses are not that great. I noticed programming courses in Udemy tend to be better. Plus you wont have to worry bout monthly fees like coursera in Udemy once you purpose a course it is yours for life.
I think Rust is this decade’s Scala. It is an over complicated kitchen sink language, which is too much hassle to code in. The hype will fade away as better languages emerge, e.g. Zig, Mojo and probably even Carbon. Not to speak about the toxic culture of the Rust Foundation. I don’t think that Rust will significantly grow further.
Totally agree, while Rust is certainly a great language, it's way too complex and the learning curve is just atrocious, like the amount of work you have to put in just to be an average Rust dev is horrendous, in the meantime you can learn zig in like a month and be really proficient with it in almost no time. Like seriously it took me about 3 month to write a lexer/parser for C in Rust, and porting that same program to zig took like two weeks at best.
A programming language is just a tool. A skilled programmer is able to program in several programming languages or even a language that he never heared of. With reference and couple of books. If you are new, C++ is very good choice to start with. If you know C++, you can learn other languages very fast.
I'd say C is probably a better language to start with, as it's way simpler, and moving to Cpp will feel really good with all of the convenience that Cpp offers
I think that c is very much worth learning, as it gives you a good understanding of what higher level languages are doing under the hood. C++ doesn't really add anything useful to c that isn't done better by rust tho, so I don't think it's really worth learning. You can also do a lot more with rust. Anything you can do with c/c++ you can also do with rust, *and* it has the higher level ergonomics that make it much more pleasant to use, especially for things like backend web dev. Sure, you *can* write your backend in c++, but in rust you can do it well. Edit: I will say that one thing c++ can do very well that rust can't do well is interfacing with c
You were right when you talked about the C++ useful features in your earlier video: strings, vectors and that is it, actually you could add dictionaries or hash tables to the list. But that is pretty much it. That is why you may prefer to learn CPP over C. Rust on the other hand, there is just no reason to learn such a thing.
People say rust is more safe compared to C++, however, apparently C++ has the same features of rust if used properly. I'm still intermediate to C++ so could you verify if this is true please.
Год назад
Most people online have no clue to what they are talking about. It's just easy to attack an established language like C++. C++ is like the biggest toolbox you have, so of-course if you don't know anything you are bound to shoot yourself in the foot a lot. If you know it, you would also know that it has really evolved, people refer to C++ as it looked like 10-20 years ago, it's simply not so anymore.
It’s worth learning C, and I enjoyed learning C++ because of the great books I used, but C++ has many issues because Stroustrup leveraged the widely available C compiler and linker to bring the powerful concepts and modelling capabilities of OOP to as big an audience as possible quickly.
@@grandmastergyorogyoro532 In no particular order: "The C++ Programming Language", "The Design and Evolution of C++" - Stroustrup, "Effective C++", "More Effective C++", "Effective STL", "Effective Modern C++" - Meyers, "Advanced C++" (the LSD book...), "Multi-Paradigm DESIGN for C++" - Coplien, "Ruminations on C++", "Accelerated C++" - Koenig & Moo, "Exceptional C++", "More Exceptional C++", "Exceptional C++ Style" - Sutter, "Modern C++ Design" - Alexandrescu. I would say that the Meyers books were just cookbooks but the Coplien, Koenig and Alexandrescu books were all exceptional. An early book which I learnt an awful lot from in terms of programming style was "Advanced C programming for Displays" by Marc Rochkind, which used a very modular style which was a good basis for I was later exposed to OOP and C++.
@@AndrewDCDrummond Thank you very much Andrew, for providing the list of books. Am going to go through as many books as possible.! Thank you very much for your response! Its gonna help me alot to learn C++ !
Rust will never replace c++ for the plain fact that's its not as fast. You can throw other arguments into the mix but the language that eventually kills c++ does not exist yet.
@@mantality312normaly c++ has almost the same speed of rust, but in big projects c++ can be a lot faster then rust, because of the limitations made by the rust compiler, in c++ you can do a lot of fancy memory maniipulating code witch can vitaly increase performance
C++ is a large language. So it’s not true when you say that you can learn C++ with no downsides - that’s a ton of time you can spend on other things. And it’s also not true that it’s for embedded systems - C is, because it’s way smaller.
I think Rust (or maybe some its descendant) will replace C++ eventually, but it's not going to happen anytime soon. There's too much legacy C++ code in existence that we have to maintain. That said, I believe Rust will win eventually, beacuse it's just simply better. Automatic memory management with no runtime cost is a huge advantage wherever both performance and safety are key. Rust is difficult (to which I can attest, as I'm trying to learn it right now), but C++ isn't easy either. Besides a number of similarily difficult languages are also becoming increasingly popular as applications we build become too complex to continue writing them with no help from compilers.Haskell or OCaml may not be as popular as JS or Java, but they're probably far more popular nowadays than anyone expected they would become, say a dacede ago. If this trend towards languages with good safety features will continue, I foresee a great future for Rust and rather grim one for C and C++.
Rust is not "better" than C++. It's newer, has some better defaults in some cases, but it also has some giant glaring omissions that make it boilerplaty and annoying to work it. "Automatic memory management with no runtime cost is a huge advantage " Guess where Rust got that idea.
@@isodoubIetPeople say rust is more safe compared to C++, however, apparently C++ has the same features of rust if used properly. I'm still intermediate to C++ so could you verify if this is true please.
C++ is always being updated. I hate when people speak about C++ and ignore the fact there are many new of versions of it - and that’s also a reason you might criticize it
Unfortunately, that won't happened really,because our earth was already reaching its resources limitations and it's not life.safe anymore. We are already on the last phase of our existence. The human history will be rewritten once again probably on another new language. What do We know.
@@isodoubIet Rust is better than C++, maybe not in the syntax or in the idioms, but just from the knowledge I have of the compiler (I wrote compilers a lot). Rust and any modern language for that matter, are starting with a clean slate and have way better compilers, and you may think that this is just not that important as at the end of the day Cpp is a really performant language ? well the problem is that having the compiler being really responsive (like real time level of responsiveness) is becoming more and more crucial, for the tooling around the language, tools like linter, static analyser, formatter, lsp want to access the AST and use those informations to help the developer to be more productive, unfortunately C++ because it has inherited a lot of the ugliness of C (i love C but you know it was made on machine that had less word of memory than there is letters in my comment, so it's understandably bad). Cpp has a worst compiler, worst reflection and informations from the compiler, it's not as fast as the competitors (zig for example as a really good compiler, as well as jai or odin). So in the long run despite any attempt from the ISO board, Cpp is inevitably going to die to be replaced by better languages. Because cpp can only evolve so much. I love Cpp this is still my go to language for almost all of my personal projects, but it's just facts that it wont stand a chance against the incoming languages.
However after studying rust language I don't think I'll look back. Rust goes for operating systems and bad metal all the way to websites and servers. Also I found a lot of Interactive material regarding learning rust. In the error checking while you're typing is amazing feature you don't have to compile..
I think there is better options out there, zig for example, is way simpler than rust, has a better compilation speeds, can natively interops with C, has an amazing compiler, and tools (especially considering how young the language is) and the community and learning curve of zig or really great compared to rust.
It's been about 12 years since we first heard of Rust, and despite the extensive marketing campaign it has received, it is still considered a niche programming language. Don't get me wrong, I'm not saying Rust is a bad programming language. In fact, it might be better than C/C++ in many aspects, but its approach forces developers to either write everything from scratch or deal with the pitfalls of the 'extern-function approach' for integration with the outside world. The industry has invariably proven that this approach is a failure from day one. A very good example of this is the Dart programming language. It was originally intended to replace JavaScript, and despite being better than JavaScript in many ways, it miserably failed to do so. Similarly, Rust is unlikely to succeed in replacing C or C++. Rust and C++ are fundamentally incompatible. I see more future in replacing C/C++ with other approaches such as CPP2 or Carbon if the first production-ready versions of those languages are released, which seems very likely to happen soon. Once that happens, there will be even less chance for Rust to replace C or C++. Also, note that C++ and TypeScript are very successful languages in terms of adoption because their approach doesn't require rewriting everything from scratch. You just change the extension from .js to .ts in your JavaScript programs and start seeing results in terms of migration right away. Similarly, with C++ and C; you compile a C program with a C++ compiler and start seeing results. That's why industries are reluctant to migrate to Rust. This approach is in opposition to code reusability, which is too important to give up.
Use cases for C++ and Rust overlap, but not entirely. The real question should be Rust vs., say, SPARK. And I'd argue that the latter is far more mature and capable.
@@vitalyl1327 All contracts can be broken. In Rust the code is correct (no UB) if you don't use unsafe, and I'm sure SPARK safety can be circumvented somehow too (when needed/appropriate/neccessary).
You might hate C++ and try to learn many other languages for many years. But in the you realize C++ is the only language capable of doing what does; that is, providing high level abstraction (at zero cost) while being low level enough to allow large scale applications run as efficiently as possible. Ask Microsoft why never developed Windows and Office using their dream language, C#.
Yeah,that's also the quesition i wanna ask.For me though,i am major in data since and AI,but i also love web development with Svelte(or vanilia) with FastAPI. So i'm wonder should i learn C++ and then goto CUDA?or learn Rust when C++ is done?
It's quite easy. Learn C++ if you want to learn a very complex language and many different programming concepts but learn C if you want to learn programming!😉
Thank you, I think this video is dead on overall. I'd say, learn both, at least to a degree. Pick a small project in your area of interest, try to implement it with both languages, and you'll quickly see what suits you more. As someone doing a lot of data analysis using Python , I was looking for something to build lightweight CLI tools with (...no 300 MB Python runtime attached to it...), and to extend Python for certain tasks where it was inconvenient to deploy or slow. I then wrote a small data format converter with an eye towards testing some libraries I expected to use a lot in Go, C++ and Rust. Before this experiment, I figured that Go would be probably fine for most of my needs, I was anxious about using C++, I regularly mocked one of my colleagues who started evangelizing about Rust back then and I thought its library ecosystem to be lacking for our use cases. I quickly found that actually Golang's library ecosystem is lacking for our use cases, that C++ is fine if you keep it simple, but ...that I'd rather fight the borrow checker for a few weeks than fight CMake for a lifetime (seriously, dependency management is the real enemy in C++ land...). Against my expectations, Rust was easily the most enjoyable experience (good libraries, using them just works, great tooling such as excellent language server or integrated testing, helpful compiler errors), and I started to default to it for smaller projects where I didn't want to use Python. On the other hand, I recently joined a project at work where the software was written in C++. I found that many basic things I learned using Rust transferred over to C++ just fine, and that trying to comprehend articles and videos bashing certain features of C++ is a valid method to learn about said features ;-) I now even started a small private project in C++, simply because it relies on a combination of two specific libraries for which there is no good Rust equivalent. One last thing: I mainly use Windows. I can't comment on games, but for me the C++ ecosystem was much nicer on Linux than on Windows. I came across several libraries that are trivial to build on Linux but painful on Windows for various reasons (lack of system package manger, dodgy CMake files, reliance of things not supported by MSVC, therefore switching around between MinGW and MSVC) and other general annoyances (bad C++ support - refactoring! - for VSCode without clangd, but clangd not finding header files, missing sanitizers under Windows...). So this might also factor into your enjoyment of either language. P.S.: I have used C for an embedded project a few years back, which helped a lot. I think learning C++ without having been exposed to C beforehand must be incredibly confusing.
People say rust is more safe compared to C++, however, apparently C++ has the same features of rust if used properly. I'm still intermediate to C++ so could you verify if this is true please.
Embedded systems OSs that’s what C was targeting for, C++ for apps then as OSs became more complex the APIs written in C/C++ and easier and safer languages developed for dealing with apps that were based on C/C++ like Java JavaScript PHP … C# just Java with a few changes PHP mistake today now a decent language Java a way for Sun to win the developers over from a language out of the bin, any shit will do Oak lives again In my days it was BASIC Assembly C C++
None of them will be killed. At worst they’ll become more specialised. Mojo will likely dominate the AI space but in combination with Python. But it won’t replace typical systems programming uses for C/C++ and Rust or for gaming say.
The games mostly written in C++, because this language allows things to be made in 2.5d, 3d, instead of maximum of 2d in others. Also don't forget C# for Unity.
Yeah, the drama with the rust foundation is annoying. But recently rust was addopted into the linux kernel and will be used by amazone for it's servers. It gain slower in popularity but it will certainly become a big thing in the future
Anyone who thinks whether they should learn C++, shouldn't become a programmer. Anyone who loves Maths, will absolutely love C++. Rust doesn't get to tie C++'s boots. Facts!
If you like math, you should try haskell and rust. They are both linked to type theory and category theory. If you're interested there are also proof assistants that help you to do mathematical proofs and checked and computed by a computer (like Coq for instance). There is an introductionnary paper about that: shemesh.larc.nasa.gov/fm/papers/ICASE1999-QNews.pdf I think type theory and functionnal programming are the best child of mathematics and computer science
@@sagars861 ur right! I still can't work with pointers, especially pointer arithmetic and dynamic allocation. Im planning on switching another language
@@bucztechph maybe you should choose another career if you can’t get your head around pointers and dynamic allocation, you should understand these concepts so you can understand higher level concepts like references and garbage collection and the performance issues you might meet with the latter. Maybe try reading the Kernighan and Ritchie book for learning C - it’s a great book.
Somehow, whenever I hear someone saying to "never learn C or C++ as a first language", I stop listening to them. Like, automatically. It doesn't matter how expert in their ugly java script, python, or whatever😂 they are. It's just a major turn off.
Quick tip: don’t put bloopers in the video, most of the people probably came here for the content so they don’t care about the bloopers it gets annoying ❤
Once I got comfortable with it, I am happy I learned it. It gives you a much better understanding of how high level languages really make things work under the hood. I feel like I can quickly learn to code in any other language now. Also, C++ applications are super fast. It took over 10 years though... (Found a job as C++ dev within the first ~2 years) So if it's worth it is a very personal choice.
Man, it's 21st century. Learning C/C++ is usefull only in histotrical view point or for understanding old codes. Please never write new codes in C/C++. Rust claimed to eradicate painfull debugging hell, and it seemed successfull. Alas however, it's hurting and painfull to code in the first place. You don't 'borrow' all the time when coding, boy. You have Zig instead, faster and safer than Rust, simpler than C, versatile than C++. I was looking for a better language, and Go language is seemed to be the language with simplicity focused. Rust is simply too picky. At first sight, Zig became immediately 'the' language. I bet, Zig would be dominating in the low level efficiency demanding area, over Rust/C++.
learning c and c++ is only useful to understand historical points of view??? what?? then are you suggesting the whole graphics programming, embedded and videogame industries along with the medical technologies industry should no longer exist, they should just stop producing code altogether? Its cool to try implementing new languages in a certain field, but there are most certainly fields where C and C++ are used and will forever keep getting used no matter how many years pass, not because they are super duper cool and influential languages, but because they allow low level access. This is like saying that learning assembly makes no sense because its a thing of the past... everything runs in machine code internally, and if you work in embedded you will have to deal with assembly and at the very most you will be able to afford using C, C++ or rust if there is a compiler for the architecture you're working for, but nothing that doesnt allow you to have full control over the system. Like, what world do you live in where Zig can fully replace every single language in existence and that C and C++ are only worth it for historical reasons? Just imagine trying to move all the already existing code bases to a new language. Even if that could be done as easily as pressing a button, why would you do such a thing? You have to think that sometimes there is nothing to be gained from making a change.
Would you learn C++, Rust, or both?
Be notified of new C/C++ course: calcur.tech/c-cpp-newsletter
It's been about 12 years since we first heard of Rust, and despite the extensive marketing campaign it has received, it is still considered a niche programming language. Don't get me wrong, I'm not saying Rust is a bad programming language. In fact, it might be better than C/C++ in many aspects, but its approach forces developers to either write everything from scratch or deal with the pitfalls of the 'extern-function approach' for integration with the outside world. The industry has invariably proven that this approach is a failure from day one. A very good example of this is the Dart programming language. It was originally intended to replace JavaScript, and despite being better than JavaScript in many ways, it miserably failed to do so. Similarly, Rust is unlikely to succeed in replacing C or C++. Rust and C++ are fundamentally incompatible. I see more future in replacing C/C++ with other approaches such as CPP2 or Carbon if the first production-ready versions of those languages are released, which seems very likely to happen soon. Once that happens, there will be even less chance for Rust to replace C or C++. Also, note that C++ and TypeScript are very successful languages in terms of adoption because their approach doesn't require rewriting everything from scratch. You just change the extension from .js to .ts in your JavaScript programs and start seeing results in terms of migration right away. Similarly, with C++ and C; you compile a C program with a C++ compiler and start seeing results. That's why industries are reluctant to migrate to Rust. This approach is in opposition to code reusability, which is too important to give up.
generally you won't understand why rust does what it does unless you know C or C++
Correction: generally, you don’t understand what the hell rust is doing, even if you’re Grayson Hoare😂
One thing I'm learning after years of "trying many languages" is get depth in one language. It doesn't really matter too much what it is but I would use a general purpose language. Use it like a hammer where everything is a nail for a while. Even if it isn't meant to do backend try to make something in the frontend using it. Then try another language meant to do that particular and it will seem way easier. Then just keep refreshed on the language you have the most depth in.
heard it so many times. programming languages are tools to get things done with a computer. learn what you need and adapt if anything changes
As a programming language enthusiast, that’s like telling a car enthusiast, cars are just tools to get from point A to point B… a lot of careful design, creativity, optimizations, etc go into creating a programming language… but I understand. Most people don’t really care about all that.
@@josemaria_landa tf
The low level languages are more like instruments that take a lot of practice and effort and knowledge to produce decent sounds with.
Right now I am college student and we use c++ for programming classes I like it.
I mean theoretically even if everyone stopped writing software in C++ it's good to understand it if your port to another language. But realistically it's never going to die out.
C++ is love; C++ is life 😊
What I'm going to say is not according to job point of view. But if you are a geek who is really driven to understand programming, I believe this is the way to begin your journey:
Learn C first. It might be hard and demotivating at first but stick to it. Once things start to make sense, it'll be very easy to move on to any other language. If you are a student and still got lot of time to grind, its better to learn C++ after C since its an easier transition from Procedural to OOPs because of the identical syntaxes those languages share. Just focus on OOPS when learning C++. You don't have to master any language. Learn it till you are able to make a good project out of it. After that move to Java. DSA is best understood with Java. After these, you can move onto some dynamic language like JavaScript or Python (depends on what job you want). Now slowly get into Assembly and understand how hardware stuff really is really implemented and working. Then you can easily pick the domain you would like to work with, grind it for some months, then apply for some jobs, and get it.
NOTE: Focus on projects and domain and do practice exercises everyday. Don't fall into tutorial hell and perfectionism mindset.
DSA with Java? Any particular reason? I was going to do it with CPP
So basically just learn all the programming paradigms and popular programming languages, AND THEN go and learn domain specific frameworks? Why not just learn one or two languages and then start working right away?
@@aperture0 because Java cleans up memory and you do not have to do memory management. Data structures are a lot harder when you’re using pointers like in C++ but pointers will definitely enhance your learning. So I would suggest get the basic data structure down(the concept) then get back to it with C since there is no garbage collector to babysit you. Jumping straight into data structure with c++ is not something I recommend it’s a steep learning curve.
@@Hallo503 learn concepts then program. Trust me programming is the last step you want to do, the pseudo code and write outs are very good when you first start learning, you should understand how the compiler works before just throwing random code at the compiler. If you’re stuck on a problem you can look up the solution, but try to understand it.
@@fackyoutube8452 If I want to program lets say java or javascript, I dont need to know how the compiler works. Knowing the syntax and semantics of the language is enough
If you are looking for a job that pays decent learn c++ if you already have a job and are looking for hobby projects or trying to broaden your horizons learn rust. Nothing will replace c++ period.
It's C++ for me all the way❤
Well rust was set to do this and then the rust foundation lost their minds.
F the Rust foundation.
I want to do graphics programs and software plugins. Maya / After Effects just have SDK's in C++. A majority of OpenGL examples and tutorials are in C++.
I am happy to hear you say maybe you could learn both C++ and Rust. this made me feel better about learning two programming languages at the same time. I've been learning Kotlin and C++ at the same time. But I program in Kotlin every day and C++ about 1 or 2 hours per day if I have the time. Kotlin is to find a job and C++ is for fun. But I already have over 1 year and 6 months of programming, so I think I have a good understanding of my fundamentals, I hope so. Thanks Caleb I enjoy your tutorials.
What resources You use to learn c++?
@@siman211 Mostly RUclips because I code once in a while with C++ not often. Because everyday I am focused on Kotlin with Android. But I should mention from my personal experience that Coursera programming courses are not that great. I noticed programming courses in Udemy tend to be better. Plus you wont have to worry bout monthly fees like coursera in Udemy once you purpose a course it is yours for life.
“C++ is for fun”
you’re a strange guy
@@ZombieLincoln666 😂 😂 thank you I take that as a complement. Zombie I hope you are doing well on your learning path, I wish you all the best!
@@DevlogBillI could not found a good c++ course on udemy the pace is two slow and the problems that they give me are badly explain how to do them
It's C++ for me all the way. C++ is love; C++ is life .
but why? reasoning over emotion ?
@@deeps-n5yC++ enables anything, it is established. It has grown to become great, it is today much better than it was 10 years ago for example.
Same for me ❤
Brainwashed
I think Rust is this decade’s Scala. It is an over complicated kitchen sink language, which is too much hassle to code in. The hype will fade away as better languages emerge, e.g. Zig, Mojo and probably even Carbon. Not to speak about the toxic culture of the Rust Foundation. I don’t think that Rust will significantly grow further.
Totally agree, while Rust is certainly a great language, it's way too complex and the learning curve is just atrocious, like the amount of work you have to put in just to be an average Rust dev is horrendous, in the meantime you can learn zig in like a month and be really proficient with it in almost no time. Like seriously it took me about 3 month to write a lexer/parser for C in Rust, and porting that same program to zig took like two weeks at best.
A programming language is just a tool. A skilled programmer is able to program in several programming languages or even a language that he never heared of. With reference and couple of books. If you are new, C++ is very good choice to start with. If you know C++, you can learn other languages very fast.
I'd say C is probably a better language to start with, as it's way simpler, and moving to Cpp will feel really good with all of the convenience that Cpp offers
Quantitative Finance - C++ is the gold standard in the industry.
Just learn assembly.
I think that c is very much worth learning, as it gives you a good understanding of what higher level languages are doing under the hood. C++ doesn't really add anything useful to c that isn't done better by rust tho, so I don't think it's really worth learning. You can also do a lot more with rust. Anything you can do with c/c++ you can also do with rust, *and* it has the higher level ergonomics that make it much more pleasant to use, especially for things like backend web dev. Sure, you *can* write your backend in c++, but in rust you can do it well.
Edit: I will say that one thing c++ can do very well that rust can't do well is interfacing with c
I don’t think it’s quite true that Rust can do everything that C/C++ can. It certainly cannot do everything only in safe Rust.
C++ way has better support and libraries. I’m waiting for a good CUDA version for Rust..
C++ is a ton better than C, we literally don't have to use malloc, we also don't have problems dealing with escape sequences.
@@ollicron7397 right, but does rust. That's the point of the comment
You were right when you talked about the C++ useful features in your earlier video: strings, vectors and that is it, actually you could add dictionaries or hash tables to the list. But that is pretty much it. That is why you may prefer to learn CPP over C. Rust on the other hand, there is just no reason to learn such a thing.
People say rust is more safe compared to C++, however, apparently C++ has the same features of rust if used properly. I'm still intermediate to C++ so could you verify if this is true please.
Most people online have no clue to what they are talking about. It's just easy to attack an established language like C++. C++ is like the biggest toolbox you have, so of-course if you don't know anything you are bound to shoot yourself in the foot a lot. If you know it, you would also know that it has really evolved, people refer to C++ as it looked like 10-20 years ago, it's simply not so anymore.
I believe that C±+ teach you about computer science, at the same time that you lear the language.
As you can "write fortran" in c++ you can also "write rust" in it.
It’s worth learning C, and I enjoyed learning C++ because of the great books I used, but C++ has many issues because Stroustrup leveraged the widely available C compiler and linker to bring the powerful concepts and modelling capabilities of OOP to as big an audience as possible quickly.
Hi,
Can you pls share with us the books on C++ you read, Curious to know.
Thank you.
@@grandmastergyorogyoro532 check SO they've a list compiled on c++ books. It's a good list
@@grandmastergyorogyoro532 In no particular order: "The C++ Programming Language", "The Design and Evolution of C++" - Stroustrup, "Effective C++", "More Effective C++", "Effective STL", "Effective Modern C++" - Meyers, "Advanced C++" (the LSD book...), "Multi-Paradigm DESIGN for C++" - Coplien, "Ruminations on C++", "Accelerated C++" - Koenig & Moo, "Exceptional C++", "More Exceptional C++", "Exceptional C++ Style" - Sutter, "Modern C++ Design" - Alexandrescu. I would say that the Meyers books were just cookbooks but the Coplien, Koenig and Alexandrescu books were all exceptional.
An early book which I learnt an awful lot from in terms of programming style was "Advanced C programming for Displays" by Marc Rochkind, which used a very modular style which was a good basis for I was later exposed to OOP and C++.
@@AndrewDCDrummond
Thank you very much Andrew, for providing the list of books. Am going to go through as many books as possible.!
Thank you very much for your response! Its gonna help me alot to learn C++ !
@@grandmastergyorogyoro532 I also recomend watching some decent youtube tutorials, like "The Cherno C++"
3:07 that's why you have to learn c++ there's lotta reasons if you wanna get started at this line you have to learn c or c++ that's clear isn't ?
Learning C++ makes learning other languages far easier.
Yea, thank you bro!!!
thanks for the video on rust
Rust will never replace c++ for the plain fact that's its not as fast. You can throw other arguments into the mix but the language that eventually kills c++ does not exist yet.
No language will ever replace any language. But Rust is definitely faster than c++.
Rust will replace C++ the same way ChatGPT replaced my books🤡
I mean Rust is fast enough to be used in the Linux kernel. I would say it offers comparable speed to C++ plus some added memory safety.
@@mantality312normaly c++ has almost the same speed of rust, but in big projects c++ can be a lot faster then rust, because of the limitations made by the rust compiler, in c++ you can do a lot of fancy memory maniipulating code witch can vitaly increase performance
@@MISIU_7554 shhh dont talk about manual memory management in C, the unsafety and speed makes all the rustaceans lose their minds.
C++ is a large language. So it’s not true when you say that you can learn C++ with no downsides - that’s a ton of time you can spend on other things. And it’s also not true that it’s for embedded systems - C is, because it’s way smaller.
I think Rust (or maybe some its descendant) will replace C++ eventually, but it's not going to happen anytime soon. There's too much legacy C++ code in existence that we have to maintain. That said, I believe Rust will win eventually, beacuse it's just simply better. Automatic memory management with no runtime cost is a huge advantage wherever both performance and safety are key. Rust is difficult (to which I can attest, as I'm trying to learn it right now), but C++ isn't easy either. Besides a number of similarily difficult languages are also becoming increasingly popular as applications we build become too complex to continue writing them with no help from compilers.Haskell or OCaml may not be as popular as JS or Java, but they're probably far more popular nowadays than anyone expected they would become, say a dacede ago. If this trend towards languages with good safety features will continue, I foresee a great future for Rust and rather grim one for C and C++.
Rust is not "better" than C++. It's newer, has some better defaults in some cases, but it also has some giant glaring omissions that make it boilerplaty and annoying to work it.
"Automatic memory management with no runtime cost is a huge advantage "
Guess where Rust got that idea.
@@isodoubIetPeople say rust is more safe compared to C++, however, apparently C++ has the same features of rust if used properly. I'm still intermediate to C++ so could you verify if this is true please.
C++ is always being updated. I hate when people speak about
C++ and ignore the fact there are many new of versions of it - and that’s also a reason you might criticize it
Unfortunately, that won't happened really,because our earth was already reaching its resources limitations and it's not life.safe anymore. We are already on the last phase of our existence. The human history will be rewritten once again probably on another new language. What do We know.
@@isodoubIet Rust is better than C++, maybe not in the syntax or in the idioms, but just from the knowledge I have of the compiler (I wrote compilers a lot). Rust and any modern language for that matter, are starting with a clean slate and have way better compilers, and you may think that this is just not that important as at the end of the day Cpp is a really performant language ? well the problem is that having the compiler being really responsive (like real time level of responsiveness) is becoming more and more crucial, for the tooling around the language, tools like linter, static analyser, formatter, lsp want to access the AST and use those informations to help the developer to be more productive, unfortunately C++ because it has inherited a lot of the ugliness of C (i love C but you know it was made on machine that had less word of memory than there is letters in my comment, so it's understandably bad). Cpp has a worst compiler, worst reflection and informations from the compiler, it's not as fast as the competitors (zig for example as a really good compiler, as well as jai or odin). So in the long run despite any attempt from the ISO board, Cpp is inevitably going to die to be replaced by better languages. Because cpp can only evolve so much. I love Cpp this is still my go to language for almost all of my personal projects, but it's just facts that it wont stand a chance against the incoming languages.
However after studying rust language I don't think I'll look back.
Rust goes for operating systems and bad metal all the way to websites and servers.
Also I found a lot of Interactive material regarding learning rust.
In the error checking while you're typing is amazing feature you don't have to compile..
P.s. they just released the update to rust today apparently and now you can bind to c ibraries on the binary level. That's a lot of possibilities
@@bluedark7724 Then again why only know one language? You just put limits on yourself.
I think there is better options out there, zig for example, is way simpler than rust, has a better compilation speeds, can natively interops with C, has an amazing compiler, and tools (especially considering how young the language is) and the community and learning curve of zig or really great compared to rust.
It's been about 12 years since we first heard of Rust, and despite the extensive marketing campaign it has received, it is still considered a niche programming language. Don't get me wrong, I'm not saying Rust is a bad programming language. In fact, it might be better than C/C++ in many aspects, but its approach forces developers to either write everything from scratch or deal with the pitfalls of the 'extern-function approach' for integration with the outside world. The industry has invariably proven that this approach is a failure from day one. A very good example of this is the Dart programming language. It was originally intended to replace JavaScript, and despite being better than JavaScript in many ways, it miserably failed to do so. Similarly, Rust is unlikely to succeed in replacing C or C++. Rust and C++ are fundamentally incompatible. I see more future in replacing C/C++ with other approaches such as CPP2 or Carbon if the first production-ready versions of those languages are released, which seems very likely to happen soon. Once that happens, there will be even less chance for Rust to replace C or C++. Also, note that C++ and TypeScript are very successful languages in terms of adoption because their approach doesn't require rewriting everything from scratch. You just change the extension from .js to .ts in your JavaScript programs and start seeing results in terms of migration right away. Similarly, with C++ and C; you compile a C program with a C++ compiler and start seeing results. That's why industries are reluctant to migrate to Rust. This approach is in opposition to code reusability, which is too important to give up.
Love from India.
Use cases for C++ and Rust overlap, but not entirely. The real question should be Rust vs., say, SPARK. And I'd argue that the latter is far more mature and capable.
I've heard of spark maybe once and have never seen it used in the wild. It's also object oriented while Rust isn't.
@@Caellyan the main difference is that SPARK is verified. You cannot formally prove correctness of a Rust code.
@@vitalyl1327 No, Rust has been formally proven with COQ a few years ago (core libs). Some libraries do so as well (e.g. ghost-cell).
@@Caellyan yet, there are no built in tools for you to write your own certified code in Rust, while in SPARK it is out of the box.
@@vitalyl1327 All contracts can be broken. In Rust the code is correct (no UB) if you don't use unsafe, and I'm sure SPARK safety can be circumvented somehow too (when needed/appropriate/neccessary).
You might hate C++ and try to learn many other languages for many years. But in the you realize C++ is the only language capable of doing what does; that is, providing high level abstraction (at zero cost) while being low level enough to allow large scale applications run as efficiently as possible.
Ask Microsoft why never developed Windows and Office using their dream language, C#.
Yeah,that's also the quesition i wanna ask.For me though,i am major in data since and AI,but i also love web development with Svelte(or vanilia) with FastAPI.
So i'm wonder should i learn C++ and then goto CUDA?or learn Rust when C++ is done?
If you wait to learn Rust until you finish learning C++, you will _never_ start on Rust.
It's quite easy. Learn C++ if you want to learn a very complex language and many different programming concepts but learn C if you want to learn programming!😉
how would you compare c# to c++?
Do you do any mining still?
Google Developers on Carbon project:
Well guys, we have to push the RED BUTTON again and dig the grave for a new 'dead project' then....
Thank you, I think this video is dead on overall. I'd say, learn both, at least to a degree. Pick a small project in your area of interest, try to implement it with both languages, and you'll quickly see what suits you more. As someone doing a lot of data analysis using Python , I was looking for something to build lightweight CLI tools with (...no 300 MB Python runtime attached to it...), and to extend Python for certain tasks where it was inconvenient to deploy or slow.
I then wrote a small data format converter with an eye towards testing some libraries I expected to use a lot in Go, C++ and Rust. Before this experiment, I figured that Go would be probably fine for most of my needs, I was anxious about using C++, I regularly mocked one of my colleagues who started evangelizing about Rust back then and I thought its library ecosystem to be lacking for our use cases.
I quickly found that actually Golang's library ecosystem is lacking for our use cases, that C++ is fine if you keep it simple, but ...that I'd rather fight the borrow checker for a few weeks than fight CMake for a lifetime (seriously, dependency management is the real enemy in C++ land...). Against my expectations, Rust was easily the most enjoyable experience (good libraries, using them just works, great tooling such as excellent language server or integrated testing, helpful compiler errors), and I started to default to it for smaller projects where I didn't want to use Python.
On the other hand, I recently joined a project at work where the software was written in C++. I found that many basic things I learned using Rust transferred over to C++ just fine, and that trying to comprehend articles and videos bashing certain features of C++ is a valid method to learn about said features ;-) I now even started a small private project in C++, simply because it relies on a combination of two specific libraries for which there is no good Rust equivalent.
One last thing: I mainly use Windows. I can't comment on games, but for me the C++ ecosystem was much nicer on Linux than on Windows. I came across several libraries that are trivial to build on Linux but painful on Windows for various reasons (lack of system package manger, dodgy CMake files, reliance of things not supported by MSVC, therefore switching around between MinGW and MSVC) and other general annoyances (bad C++ support - refactoring! - for VSCode without clangd, but clangd not finding header files, missing sanitizers under Windows...). So this might also factor into your enjoyment of either language.
P.S.: I have used C for an embedded project a few years back, which helped a lot. I think learning C++ without having been exposed to C beforehand must be incredibly confusing.
People say rust is more safe compared to C++, however, apparently C++ has the same features of rust if used properly. I'm still intermediate to C++ so could you verify if this is true please.
There's not that many jobs for Rust, it's not on high demand, they literally change the syntax all the time.
Please which language is really good for Embedded Systems.?
0:02- premature optimization 😂
Me: learn python for data science, C++ and rust for general & gaming and some Go for relax.
I need a series in Rust
Embedded systems OSs that’s what C was targeting for, C++ for apps then as OSs became more complex the APIs written in C/C++ and easier and safer languages developed for dealing with apps that were based on C/C++ like Java JavaScript PHP … C# just Java with a few changes
PHP mistake today now a decent language
Java a way for Sun to win the developers over from a language out of the bin, any shit will do Oak lives again
In my days it was BASIC Assembly C C++
Interesting that you've mentioned Flutter for mobile but not Java
Its just beef between Oracle and Google. Java is still #1 for Android
You should learn C++ if you want be a good programmer.
40 sec late, love from Ghana 🇬🇭
Loved Ghana on World Cup 2010!
I think I hear your washing machine
C++ will probably continue doing what its doing right now, and Mojo will probably kill Rust, Java and Python.
None of them will be killed. At worst they’ll become more specialised. Mojo will likely dominate the AI space but in combination with Python. But it won’t replace typical systems programming uses for C/C++ and Rust or for gaming say.
@@kevinmcfarlane2752 If Moje have the performance, why do you think it wont replace other languages?
The rust compiler is written in c++ 😅
NO. The early Rust compiler is written in OCaml, (and rewritten in Rust itself latter).
😅😅
@hostgeneral nothing that does any real work is written in rust. There's a reason for that.
i only care about performance
Your thumbnail for this video tells a story. Is that the story you want to tell?
why not skip all that and just learn ada 😊
the way i see it, rust is just a small fad, like all the others. itll die out like ruby
The first language I learnt is C from your channel 😂, c++ then JavaScript.
with that scuffed-ass syntax, rust is 100% not killing C++
Rust got the scuffed syntax from cpp lmao
The games mostly written in C++, because this language allows things to be made in 2.5d, 3d, instead of maximum of 2d in others.
Also don't forget C# for Unity.
rust will.eventually going to be rusted and im sorry for that 😂
C++ is the goat 🐐
Rightfully slow
I think that maybe rust will just kill itself.
Yeah, the drama with the rust foundation is annoying. But recently rust was addopted into the linux kernel and will be used by amazone for it's servers. It gain slower in popularity but it will certainly become a big thing in the future
Anyone who thinks whether they should learn C++, shouldn't become a programmer. Anyone who loves Maths, will absolutely love C++. Rust doesn't get to tie C++'s boots. Facts!
What is your experience with Rust, dude?
If you like math, you should try haskell and rust. They are both linked to type theory and category theory. If you're interested there are also proof assistants that help you to do mathematical proofs and checked and computed by a computer (like Coq for instance).
There is an introductionnary paper about that: shemesh.larc.nasa.gov/fm/papers/ICASE1999-QNews.pdf
I think type theory and functionnal programming are the best child of mathematics and computer science
never learn c and c++ as beginner learn either python or java
Actually it's best to learn low-mid level languages before switching to high levels. It's going to make it more easier
It makes things difficult going from pointers and functional programming to oop languages better only learn if your job require it
@@sagars861 ur right! I still can't work with pointers, especially pointer arithmetic and dynamic allocation. Im planning on switching another language
@@bucztechph maybe you should choose another career if you can’t get your head around pointers and dynamic allocation, you should understand these concepts so you can understand higher level concepts like references and garbage collection and the performance issues you might meet with the latter. Maybe try reading the Kernighan and Ritchie book for learning C - it’s a great book.
Somehow, whenever I hear someone saying to "never learn C or C++ as a first language", I stop listening to them. Like, automatically. It doesn't matter how expert in their ugly java script, python, or whatever😂 they are. It's just a major turn off.
Quick tip: don’t put bloopers in the video, most of the people probably came here for the content so they don’t care about the bloopers it gets annoying ❤
C++ is not worth to learn
Ive been learning it for 6 months, it's fun but hard af.
Once I got comfortable with it, I am happy I learned it. It gives you a much better understanding of how high level languages really make things work under the hood. I feel like I can quickly learn to code in any other language now. Also, C++ applications are super fast.
It took over 10 years though... (Found a job as C++ dev within the first ~2 years) So if it's worth it is a very personal choice.
Not worth it?
Huh, another one that couldn't make into the realm.
@@rreece90 Any experience with Rust, dude. Your opinion for its design?
Of-course it is. Only someone who is not a dev would say that.
Man, it's 21st century. Learning C/C++ is usefull only in histotrical view point or for understanding old codes. Please never write new codes in C/C++.
Rust claimed to eradicate painfull debugging hell, and it seemed successfull. Alas however, it's hurting and painfull to code in the first place. You don't 'borrow' all the time when coding, boy.
You have Zig instead, faster and safer than Rust, simpler than C, versatile than C++.
I was looking for a better language, and Go language is seemed to be the language with simplicity focused. Rust is simply too picky.
At first sight, Zig became immediately 'the' language.
I bet, Zig would be dominating in the low level efficiency demanding area, over Rust/C++.
learning c and c++ is only useful to understand historical points of view??? what?? then are you suggesting the whole graphics programming, embedded and videogame industries along with the medical technologies industry should no longer exist, they should just stop producing code altogether? Its cool to try implementing new languages in a certain field, but there are most certainly fields where C and C++ are used and will forever keep getting used no matter how many years pass, not because they are super duper cool and influential languages, but because they allow low level access. This is like saying that learning assembly makes no sense because its a thing of the past... everything runs in machine code internally, and if you work in embedded you will have to deal with assembly and at the very most you will be able to afford using C, C++ or rust if there is a compiler for the architecture you're working for, but nothing that doesnt allow you to have full control over the system. Like, what world do you live in where Zig can fully replace every single language in existence and that C and C++ are only worth it for historical reasons? Just imagine trying to move all the already existing code bases to a new language. Even if that could be done as easily as pressing a button, why would you do such a thing? You have to think that sometimes there is nothing to be gained from making a change.
@@AlFredo-sx2yy Al Fredo, what are you langs of choice these days?
Whats your experience in C++, dude?
Zig isn't safer than Rust. I like more Zig than Rust. However, Zig isn't safer than Rust.
@@miguelborges7913 Whats wrong with Rust dude?