diff --git a/English/Mythbusters.md b/English/Mythbusters.md index 85f8ab1..1f7982f 100644 --- a/English/Mythbusters.md +++ b/English/Mythbusters.md @@ -1,22 +1,22 @@ # Myths and Legends of C++ -## C++ is dead, it's impossible to write anything with it +## C++ is dead, it's impossible to code anything with it C++'s not dead. -C++ made its way to the top of a wide range of rating of programming languages, and it is even scoring more points, for example in the [Tiobe](https://www.tiobe.com/tiobe-index/) index. C++ got its notorious "dead language" badge during the noughties, while it was dormant and the language standardization committee fell off the radar. But the language is experiencing a renaissance since the C++11 standard. It is arduously getting new features and functionality, every three years. Many problems claimed by the "dead C++ witnesses" have been solved, but since such specialists have stopped developing using C++ - or got a smattering of C++ during courses (from those "witnesses") - they continue repeating and reiterating the myths and legends of the horrors of C++. +C++ made its way to the top of a wide range of ratings of programming languages, and it is scoring, moreover, popularity points, for example in the [Tiobe](https://www.tiobe.com/tiobe-index/) index. C++ got its notorious "dead language" badge during the noughties, while it was dormant and the language standardization committee fell off the radar. But the language is experiencing a renaissance since the C++11 standard. It is arduously getting new features and functionality, every three years. Many problems claimed by the "dead C++ witnesses" have been solved, but since such specialists have stopped developing using C++ - or got a smattering of C++ during courses (from those very "witnesses") - they continue repeating and reiterating the myths and legends of the horrors of C++. ## Reals programmers learn C++ using Linux/Vim/gcc If you are unfamiliar with the aforementioned combo, we recommend you concentrate on learning the basics of C++ alone. We also suggest you start developing your first applications using Microsoft Visual Studio IDE (see [PreJunior Books](Books/PreJunior.md) for the details). -Choosing the hard way looks cool, but there is a high chance that the volume of the information needed to build the "Hello World" using Linux + Vim + gcc would be overwhelming. It is fraught with an early frustration and disaffection with programming. Try to follow the path from simple to complicated. Novices don't try to lift the heaviest weights during the first workout because they know what it might lead to. The same rule applies to education. You can try developing under Linux once you are comfortable with the language. But it's a different story altogether... +Choosing the hard way looks cool, but there is a high chance that the volume of the information needed to build the "Hello World" using Linux + Vim + gcc would be overwhelming. It is fraught with an early frustration and disaffection with programming as a whole. Try to follow the path from simple to complicated. Novices don't try to lift the heaviest weights during the first workout because they know what it might lead to. The same rule applies to education. You can try developing under Linux once you are comfortable with the language. But it's a different story altogether... -## You'd better master C/Assembler/etc before learning C++ +## You'd better master C/Assembler/etc. before learning C++ No, no, and no again! -This statement continues to live due to two widespread scenarios: it's how they used to teach in the university, and the members of the "Old Guard" went through a similar path. Modern C++ doesn't require such torture. This language is self-sufficient and can be learned with no background whatsoever. It's more likely that learning the "C -> C++" way you get a mess in your head and a firm desire to write C++ the "C with classes" way. +This statement continues to live due to two widespread scenarios: it's how they used to teach in the university, and the members of the "Old Guard" went through a similar path. Modern C++ doesn't require such torture. This language is self-sufficient and can be learned with no background whatsoever. It's more likely that learning the "C -> C++" way you get a mess in your head and a firm desire to write C++ in the "C with classes" style. ## Learn C++ using the book by Stroustrup @@ -38,4 +38,4 @@ Modern C++ and the tooling emerged around the language allow to avoid the lion's ## One needs to manage memory manually, there is no garbage collection in the language -This is another urban legend from the Old Guard that had stopped writing C++ before C++11 or those who superficially learned it in university disregarding the latest standards. Modern C++ contains a set of primitives in its standard library responsible for the automatic memory allocation and deallocation. The memory management fell by the wayside. Many teams and companies even have the rule: "No raw pointers". Once again, do not neglect the modern tools and sanitizers. They can detect possible memory leaks at the source code level. +This is another urban legend from the Old Guard that had stopped writing C++ before C++11 or those who superficially learned it in university disregarding the latest standards. Modern C++ contains a set of primitives in its standard library which are responsible for the automatic memory allocation and deallocation. The manual memory management fell by the wayside. Many teams and companies even have the rule: "No raw pointers". Once again, do not neglect the modern tools and sanitizers: they can detect possible memory leaks at the source code level.