Have you listened to the "Why React" video? He says there, repeatedly, that, quote, "For now, it's enough to know that the virtual DOM helps make React work a lot faster than vanilla JavaScript". How can anyone make such a statement and expect to remain a credible source of information? I mean, even if you are targeting complete novices, how?!
Because it's kind of right, in the way that it's not technically accurate, but a bit of an approximation that's reasonable for a beginner-level introduction.
But how, how? I wouldn't be able to bring myself to say something that I knew to be strictly inaccurate. Even if you are talking to beginners, don't you owe it to them to say only things that you believe to be true? There are lots of ways to put it differently so that it wouldn't be so outrageously inaccurate and so that, if you are a beginner, more senior developers don't laugh at you if you repeat those things.
It's not that inaccurate. It's in the right ballpark, just glossing over all of the details of what that means in practice. Would you prefer "The virtual DOM helps make React work a lot faster than doing direct manipulation of the DOM using vanilla Javascript"? Doesn't really seem like it makes that much difference – and the author links to an external video that explains it all in more detail.
Anyway, any senior developer who laughs at a less experienced one for repeating that kind of thing is a bad developer. I'd like to think they'd take the time to correct the inaccuracy :)
I am not sure this is even correct. Firstly, the famous js framework benchmarks (https://github.com/krausest/js-framework-benchmark) based on adding/removing list items used to have vanilla JS as an unbeatable winner, despite its direct manipulation of the DOM, and React was definitely significantly behind. Secondly, as the README for morphdom says, the real DOM is very fast (https://github.com/patrick-steele-idem/morphdom). If I remember correctly, virtual DOM was supposed to solve the particular performance problem where you would otherwise just throw huge chunks of DOM away rerendering them anew every time your app state changed. But this is a very special (although brilliant) approach to keeping your UI in sync with your app state; you wouldn't necessarily do so if you wrote your app with vanilla JS.