This is the secret of Java's success. Overcoming incidental complexity is predictable, measurable and rewarding to the average naive programmer. Solving real problems is challenging and risky. Java dilutes the latter with the former, and to those who can't tell the difference, this looks like productivity.