+Tamás Szelei How does one retire from C++? Does that mean he's not going to write anymore books?
8 лет назад+3
+George Apriashvili Pretty much, yes. Also, he doesn't intend to follow the latest news, no more speeches etc. He wrote a blog post about it, you can look it up (I'd link it but I'm quite sure youtube would hate me for linking anything). (search for "Scott Meyers blog", it's the latest post).
Hey Tamás, don't take that blog post too serious... Scott took breaks from C++ in the past (if you remember, years before the new C++11 standard, he pushed Python as the better language, that has potential to be C++s successor, he was simply on a Python trip that time) and was back, when the C++11 arrived. Maybe cause Python wasn't the hype, that he'd believed in or C++ development was awaken from the years long beauty sleep? I think, he withstands his own wish to retire from C++ sooner or later. Can't believe, that this C++-Guru could hold fast for long. Yes, it's a shame, that the audiance did not get most of his jokes. But when he speaks, that he's talking about C++ such energetic and fast, like someone else would talk about his family or the last holiday. He sometimes simply produce a buffer overflow in the heads of his audience. I think he likes to hear himself talking fast, you can see that in his face in some moments. So many of his intelectual and humorous beautys get lost on the way. :)
Really, I certainly never knew that he pushed for Python in the past. The only other person who Scott Meyers' style reminds me of was (the late) Pieter Hintjens in terms of eloquence, and how to make geeky stuff sound interesting.
Can't find it in the comments so for everyone interested: the map emplace function has to allocate a map Node which contains a T. It is assumed that "normally" you successfully insert with a call to emplace. For optimizations Node allocation does 2 things at once: allocate memory for Node and T. As it does the allocation it HAS TO do initialization as well, resulting in a Node which contains a T - both initialized and healthy. After that key comparison and insertion into the container happens as explained in the talk. Hope this is understandable.
The more I read the standard or look up research such as he's pointing out, the more I stop worrying about writing "proper" C++. Such a thing doesn't exist.
It's really annoying how low the output volume is. Listening to music before and after can be dangerous, when you forget that you've increased the volume tenfolds only to listen to this video.
RUclips could easily add an automatic audio Levelator, but they're too busy trying to convince you to crop your video to eliminate insignificant camera shake.
@@afterthesmash Why should YOuTUbe do that? Or rather - why do you want to destroy the audio of all videos? It is up to the creator to make sure the audiolevel is correct. What if i Want to make a quit song? Or what if the video is about a very noisy and loud environment and should reflect that? Auto-level is the enemy of pretty much everybody.
@@ABaumstumpf RUclips already has a pop-up control for video quality. Consumers shouldn't have to suffer terrible audio levels for nine lazy-assed video creators to every one who made a deliberate decision. Why do you think my living-room stereo has a two-channel equalizer? (Bass and treble.) Because *my* audio environment and equipment differs from the studio environment and equipment. So, too, does my listening environment, which contains much equipment. Nor do I control which overly manicured idiots mow their lawns on any given day. Oh, and did I mention that I live right on the corner of small, but very busy international airport? An airport which decides to direct take-offs to our end every time the wind blows in from the ocean? Bottom line is that RUclips should do this because the average content creator is a raging narcissist, who has probably never given a moment's thought in his or her entire life to the physical situation of the average viewer.
@@afterthesmash "RUclips already has a pop-up control for video quality." Yes- and guess what? It also already has a volume control - or were you not aware of that? "Why do you think my living-room stereo has a two-channel equalizer?" So YOU can change the volume to YOUR liking - it is not the stereo that arbitrary decided to change the volume. "Bottom line is that RUclips should do this because the average content creator is a raging narcissist" Again - you did not make any actual argument, you just stated that while you are fine with controlling the sound on every other system your self to make it suit your taste, on RUclips you do not want this because... you are too lazy?? Hypocritical?
@@ABaumstumpf I don't want a volume control I have to fiddle with throughout the entire video, because the levels are inconsistent. I want the video consistently levelated by a competent party, and if that competent party isn't the content creators (many times these narcissists are too focussed on delivering some other virtue) I would love to have the feature available from RUclips directly. I've even had videos where the level was so pathetic, that the maximum electronic volume, combined with my maximum desktop speaker volume, still left me struggling through key passages. Moreover, the volume control on the video does not stick to the video, but sticks to the window, instead. If you're juggling many videos this becomes yet another irritant. (I know, I know, a production narcissist can't even _imagine_ that a consumer won't be entranced one glittering artifact after another, in solemn single file).
Isn't Scott wrong about "direct init" and "copy init" in `push_back` and `emplace_back` cases? `push_back` need convert arg to T before calling function that can't use explicit constructors. `emplace_back` send arg to constructor directly that is explicit call with `nullptr`.
while these guys spent 2 hours analyzing all the inane implications of specific c++ standard library API implementations and everything going on under the hood, people were getting actual work done in C.
Why an assignment happens as part of what should be in-place construction within existing space in a container is baffling to me. Sounds like a shortcoming of the library implementation to me. Rust can do this no problem. If the target location already has a T, well, destruct T and construct a fresh T in place. Why is this not standard behavior? As for QWUKs, utterly ridiculous. You can easily use reflection to get around this extra allocation & deallocation for God's sake. The arguments come in in constructor order do they not? Writing the assembly to do this for an object is easier than writing the C++ to orchestrate it for all types, but seriously?
It's a shame the audience only gets about a quarter of his jokes. He's such a unique person in tech, sad to see him retire from C++.
+Tamás Szelei How does one retire from C++? Does that mean he's not going to write anymore books?
+George Apriashvili Pretty much, yes. Also, he doesn't intend to follow the latest news, no more speeches etc. He wrote a blog post about it, you can look it up (I'd link it but I'm quite sure youtube would hate me for linking anything). (search for "Scott Meyers blog", it's the latest post).
Tamás Szelei Thank you, that is sad to hear.
Hey Tamás, don't take that blog post too serious... Scott took breaks from C++ in the past (if you remember, years before the new C++11 standard, he pushed Python as the better language, that has potential to be C++s successor, he was simply on a Python trip that time) and was back, when the C++11 arrived. Maybe cause Python wasn't the hype, that he'd believed in or C++ development was awaken from the years long beauty sleep?
I think, he withstands his own wish to retire from C++ sooner or later. Can't believe, that this C++-Guru could hold fast for long.
Yes, it's a shame, that the audiance did not get most of his jokes. But when he speaks, that he's talking about C++ such energetic and fast, like someone else would talk about his family or the last holiday. He sometimes simply produce a buffer overflow in the heads of his audience. I think he likes to hear himself talking fast, you can see that in his face in some moments. So many of his intelectual and humorous beautys get lost on the way. :)
Really, I certainly never knew that he pushed for Python in the past. The only other person who Scott Meyers' style reminds me of was (the late) Pieter Hintjens in terms of eloquence, and how to make geeky stuff sound interesting.
Can't find it in the comments so for everyone interested: the map emplace function has to allocate a map Node which contains a T. It is assumed that "normally" you successfully insert with a call to emplace.
For optimizations Node allocation does 2 things at once: allocate memory for Node and T. As it does the allocation it HAS TO do initialization as well, resulting in a Node which contains a T - both initialized and healthy. After that key comparison and insertion into the container happens as explained in the talk.
Hope this is understandable.
The more I read the standard or look up research such as he's pointing out, the more I stop worrying about writing "proper" C++. Such a thing doesn't exist.
Yeah C++ as described by C++ primer has 4 subdeciplines. You will find programmers that prefer one subdiscipline over the other
From "prefer" to "consider" emplacement instead of insertion, ie from min 1910 to 5445 & 5730
It's really annoying how low the output volume is. Listening to music before and after can be dangerous, when you forget that you've increased the volume tenfolds only to listen to this video.
RUclips could easily add an automatic audio Levelator, but they're too busy trying to convince you to crop your video to eliminate insignificant camera shake.
@@afterthesmash Why should YOuTUbe do that? Or rather - why do you want to destroy the audio of all videos? It is up to the creator to make sure the audiolevel is correct.
What if i Want to make a quit song? Or what if the video is about a very noisy and loud environment and should reflect that? Auto-level is the enemy of pretty much everybody.
@@ABaumstumpf RUclips already has a pop-up control for video quality. Consumers shouldn't have to suffer terrible audio levels for nine lazy-assed video creators to every one who made a deliberate decision. Why do you think my living-room stereo has a two-channel equalizer? (Bass and treble.) Because *my* audio environment and equipment differs from the studio environment and equipment.
So, too, does my listening environment, which contains much equipment. Nor do I control which overly manicured idiots mow their lawns on any given day. Oh, and did I mention that I live right on the corner of small, but very busy international airport? An airport which decides to direct take-offs to our end every time the wind blows in from the ocean?
Bottom line is that RUclips should do this because the average content creator is a raging narcissist, who has probably never given a moment's thought in his or her entire life to the physical situation of the average viewer.
@@afterthesmash "RUclips already has a pop-up control for video quality."
Yes- and guess what? It also already has a volume control - or were you not aware of that?
"Why do you think my living-room stereo has a two-channel equalizer?"
So YOU can change the volume to YOUR liking - it is not the stereo that arbitrary decided to change the volume.
"Bottom line is that RUclips should do this because the average content creator is a raging narcissist"
Again - you did not make any actual argument, you just stated that while you are fine with controlling the sound on every other system your self to make it suit your taste, on RUclips you do not want this because... you are too lazy?? Hypocritical?
@@ABaumstumpf I don't want a volume control I have to fiddle with throughout the entire video, because the levels are inconsistent. I want the video consistently levelated by a competent party, and if that competent party isn't the content creators (many times these narcissists are too focussed on delivering some other virtue) I would love to have the feature available from RUclips directly.
I've even had videos where the level was so pathetic, that the maximum electronic volume, combined with my maximum desktop speaker volume, still left me struggling through key passages.
Moreover, the volume control on the video does not stick to the video, but sticks to the window, instead. If you're juggling many videos this becomes yet another irritant. (I know, I know, a production narcissist can't even _imagine_ that a consumer won't be entranced one glittering artifact after another, in solemn single file).
Very useful, Thanks! :-)
assembly looks more convenient by the minute
How come VC++ implementation requires so much more commands at times?
WTF nobody's laughing at the jokes LOL
However, at least they did ask some good questions at the end.
Isn't Scott wrong about "direct init" and "copy init" in `push_back` and `emplace_back` cases? `push_back` need convert arg to T before calling function that can't use explicit constructors. `emplace_back` send arg to constructor directly that is explicit call with `nullptr`.
Scott was surprisingly pissed about "You should make an item about that." ;)
he says "kee" instead of "kay" .
understandable, but still odd
isn't it trivial to figure out which constructor does emplace use internally?
"[W]hich constructor does emplace use internally?" (Rhetorical trivial reply)
while these guys spent 2 hours analyzing all the inane implications of specific c++ standard library API implementations and everything going on under the hood, people were getting actual work done in C.
mdostay Or some other language.
+mdostay Work for work's sake is meaningless. Understanding is the key!
+lockbert99 Unfortunately, in the real world it's C++.
+JanPBtest You would have to limit the definition of "real world" in order for that statement to be true.
Das ist sehr funny.
Why an assignment happens as part of what should be in-place construction within existing space in a container is baffling to me. Sounds like a shortcoming of the library implementation to me. Rust can do this no problem. If the target location already has a T, well, destruct T and construct a fresh T in place. Why is this not standard behavior?
As for QWUKs, utterly ridiculous. You can easily use reflection to get around this extra allocation & deallocation for God's sake. The arguments come in in constructor order do they not? Writing the assembly to do this for an object is easier than writing the C++ to orchestrate it for all types, but seriously?