What the commenters above are expressing is simply fear of learning. (Read a modern C++
program, and you won't find any calls to "new" or "delete", array or otherwise. "Virtual"
isn't the default because it's only rarely the right thing. It's been years since I typed the
keyword "virtual" in my own C++ code.) If you don't chafe at the lack of expressiveness in C,
Java, or C#, it can only be because you're not trying to express much of anything. Ian chose
C++ not just because he "prefers" it (whatever that means). He chose it because it's
demonstrably better at expressing complex solutions to complex problems.
For an easy problem, any old language will do. Most problems are easy, and most programmers
spend their lives solving one easy problem after another. They can use whatever toy language
they first encountered, and never learn another thing. People drawn to hard problems want the
sharpest tool they can get. Right now C++98 is that tool. (C++09 will be a sharper tool.)
Nothing else even comes close, and nothing on the horizon looks like it will. That's too bad,
because a language equally powerful but a tenth as complex ought to be possible, but none
seems to be forthcoming yet.