OK, some bugs are the developer's fault, but if you eliminate the n00bs and the idiots from the test demographic, then I stand by my statement. OK, fine, we'll also eliminate syntactical errors (you are using syntax checking in your development environment, aren't you? If you aren't, go away.). But that pretty much is it. I've used a plethora of languages and platforms - C, C++, erlang, java, objective-C, perl, python, ruby, and javascript (if you can call that a language. And yes I'm joking. Mostly.). Its pretty much a best tool for the time and the place kind of existence, and AFAICRemember there has always been the persistent underlying frisson of fear , forever, around bugs/errors. And they all share one commonality. Errors are, always and every-time, considered to be a fault on the part of the developer. Pity you, the poor java developer. You begin by writing defensively. You absolutely infest your code with fun stuff li...