Yeah, but that's a pretty big difference. In other words, one tells you something is wrong, one lets you believe everything is hunky dory until the lights go out. Those exceptions are errors that have to be fixed before you can resume programming. Leaking memory is generally caused because resources weren't cleaned up. Since it's automatic in c# or java, that's going to happen a lot less. I'm a low quality c++ programmer so I have first hand knowledge in this. It's fine to push it for people wanting to go into the trade, but for amateurs or indies, it really doesn't make sense. There's just too much for one person to do and languages like java or c# are pretty fast so there isn't going to be much of a difference. These arguments are obviously in error or you wouldn't see this explosive growth in programmers for managed languages.