I disagree. For several reasons.
The first thing a beginner needs to learn is the concept of an algorithm: that it is possible to order the computer to do something, step-by-step. They need to start with the basics of program flow and control. Pointers and classes are way too advanced concepts.
The second thing that is important is interactivity. For a beginner, the best reward is to be able to see the results of their coding. Trial and error is very important. Interpreted languages are good at this. Colors, shapes, sounds, and movement are very important to grab and hold a child's attention. That's why I think QBASIC is good for this purpose. Once the child is hooked, they can be given other languages to play with. I would suggest Python (for algorithms) and Visual Basic (for GUI development).
In my opinion, concepts like memory management and OOP should be introduced only once a genuine interest in programming has been established and demonstrated.