I love that „No haunted graveyards” part. It's something that bit me by the ass a few times, and I try to dive in the scariest places first whenever I get handed some huge piece of code.
Break the legacy code. Anyone actually using legacy code isn't going to add new language features to that project anyways. Chances are they are also locked into a legacy compiler and wouldn't even have the option to use the new features..
There are about a million rules I need to remember when writing c++. As a new learner should I just give up and find an another language?. This is insane to remember all these things. I just hope that the clang tools provide a way somehow to warn cases like this with proper explanation.
One method for getting involved that Titus doesn't mention are you local C++ user groups. Depending on where you are located the often have one or more committee members who frequently attend.
At least part of titus' ADL issue is solved by @cevelop's refactoring "qualify unqualified name" which will put the namespace in front of free functions called. We might need to work on a checker deliberately suggestin it for all free functions in non generic code.
And also see my 'April fool' wg21 paper on making every free function in the standard a named lambda (not serious, but at least showing the same problem). wg21.link/p0984
What's wrong with creating a new dialect, C++-perfect, that *does* have all the breaking changes that you want? Old code is still C++ code. If people want to use C++-perfect, then they can have at it. Kinda like clang having its own standard library.
You described "forking" the language, which is exactly what they dont want - diverting people away from the main language. @45:05 he describes just this. But by changing all ABI,ODR and ADL the result would essentially be a fork anyway but with the same regular C++ name. You would just have to use C++17 to compile legacy code and C++2023 or whatever to compile the new ABI/ODR/ADL C++ code. I don't see an issue with just keeping the old compilers around to compile the old legacy code.
C++ sort of spooked me, before I watched this. Now I am genuinely scared of it, and I am scared of other people using it. No one person can know all of this language. Take it out to pasture and kill it.
@@selvakumarjawahar No that would be C. I always enjoy using C with classes, or as i now call it C with classes, exceptions, namespaces and lambdas. But you really need to be restrictive in what you need and want. I agree that the C++ development is very scary with all this additions.
@@llothar68 Well I agree coding with C++ is scary and its scarier with C, not always because of the languages its the domain. You get direct access to hardware which gives too much power to programmers. Thats why you see lots of talk on C++ on initializing a variable and object lifetimes , because the objects and variables are residing in memory without any VM in between so you need to be careful. Btw C++ is in most used language in following companies/systems Microsoft, Google, Amazon(hypervisors/DB etc..),Adobe,Apple,KDE desktops, Oracle(JVM, DB, MYSQL), All the internet switches (Cisco, blonder tongue etc..), So its not a stretch to say C++ forms foundation of our software infrastrcture, I should add along with C
I like Titus, but he spent too much time around Herb, he turned into first class bullshi*er that spins every langage defect with some vague tradeoff that is allegedly what C++ is about. ODR violations are there because bad legacy design of the language, not because people do not want to spend 50$/month more on hw/power to save thousands in developer salaries... I hope sanitizer people will make sanitizing linker soon. Not to mention the idiocy that linkers will link Debug/Release code together. Every object file should contain metadata to prevent this idiocy from happening without user explicitly demanding it.
@@tituscsucredu Well I do not know who is your favorite Spice Girl, but I know your views on C++ programming and I mostly agree with them, but like I said spinning langage/library defects as features is what sales people and Herb do, dont be like them. For example random_shuffle example you mentioned in the talk: problem with it's removal was not that of people relying on random values being same, but the fact that most random_shuffle implementations were using thread safe impl of random number generation, and now if you want the same functionality not only you need extra spam with std::shuffle, but you also need to make RNG you use is locked... I am all for removal of shit features from language, but to replace something with only worse alternatives is bad.
C++ Adepts: "C++ is the language that leaves no room for a more efficient language between it and the hardware."
Linus Torvalds: ROFLing hysterically
I love that „No haunted graveyards” part. It's something that bit me by the ass a few times, and I try to dive in the scariest places first whenever I get handed some huge piece of code.
Break the legacy code.
Anyone actually using legacy code isn't going to add new language features to that project anyways. Chances are they are also locked into a legacy compiler and wouldn't even have the option to use the new features..
There are about a million rules I need to remember when writing c++. As a new learner should I just give up and find an another language?. This is insane to remember all these things. I just hope that the clang tools provide a way somehow to warn cases like this with proper explanation.
One method for getting involved that Titus doesn't mention are you local C++ user groups. Depending on where you are located the often have one or more committee members who frequently attend.
At least part of titus' ADL issue is solved by @cevelop's refactoring "qualify unqualified name" which will put the namespace in front of free functions called. We might need to work on a checker deliberately suggestin it for all free functions in non generic code.
And also see my 'April fool' wg21 paper on making every free function in the standard a named lambda (not serious, but at least showing the same problem). wg21.link/p0984
What's wrong with creating a new dialect, C++-perfect, that *does* have all the breaking changes that you want? Old code is still C++ code. If people want to use C++-perfect, then they can have at it. Kinda like clang having its own standard library.
You described "forking" the language, which is exactly what they dont want - diverting people away from the main language. @45:05 he describes just this. But by changing all ABI,ODR and ADL the result would essentially be a fork anyway but with the same regular C++ name. You would just have to use C++17 to compile legacy code and C++2023 or whatever to compile the new ABI/ODR/ADL C++ code. I don't see an issue with just keeping the old compilers around to compile the old legacy code.
@@mrlithium69 Yes, I think that's a better suggestion.
C++ sort of spooked me, before I watched this. Now I am genuinely scared of it, and I am scared of other people using it. No one person can know all of this language. Take it out to pasture and kill it.
no one person knows all of english either , does that spook u 2
always remember this line from the talk "C++ is the language on which all our software foundation is built"
@@selvakumarjawahar No that would be C. I always enjoy using C with classes, or as i now call it C with classes, exceptions, namespaces and lambdas. But you really need to be restrictive in what you need and want. I agree that the C++ development is very scary with all this additions.
@@llothar68 Well I agree coding with C++ is scary and its scarier with C, not always because of the languages its the domain. You get direct access to hardware which gives too much power to programmers. Thats why you see lots of talk on C++ on initializing a variable and object lifetimes , because the objects and variables are residing in memory without any VM in between so you need to be careful. Btw C++ is in most used language in following companies/systems Microsoft, Google, Amazon(hypervisors/DB etc..),Adobe,Apple,KDE desktops, Oracle(JVM, DB, MYSQL), All the internet switches (Cisco, blonder tongue etc..), So its not a stretch to say C++ forms foundation of our software infrastrcture, I should add along with C
I like Titus, but he spent too much time around Herb, he turned into first class bullshi*er that spins every langage defect with some vague tradeoff that is allegedly what C++ is about. ODR violations are there because bad legacy design of the language, not because people do not want to spend 50$/month more on hw/power to save thousands in developer salaries... I hope sanitizer people will make sanitizing linker soon. Not to mention the idiocy that linkers will link Debug/Release code together. Every object file should contain metadata to prevent this idiocy from happening without user explicitly demanding it.
Lol. You don't know me.
@@tituscsucredu Well I do not know who is your favorite Spice Girl, but I know your views on C++ programming and I mostly agree with them, but like I said spinning langage/library defects as features is what sales people and Herb do, dont be like them. For example random_shuffle example you mentioned in the talk: problem with it's removal was not that of people relying on random values being same, but the fact that most random_shuffle implementations were using thread safe impl of random number generation, and now if you want the same functionality not only you need extra spam with std::shuffle, but you also need to make RNG you use is locked... I am all for removal of shit features from language, but to replace something with only worse alternatives is bad.
@@tituscsucredu no u