Novices require simplicity. Microsoft has to dumb down its tools for the novice developer, but the Java community often seems to feel no such compulsion. I’m watching some coworkers struggle to become fluent in Struts. They are rightfully offended by how often they have to learn some little workaround rather than the obvious approach simply working.
I’ve come to realize that with many open source projects, any problem that has a reasonable workaround tends not to get addressed. Just as Microsoft often fails to fix behavioral defects before devoting resources to new features, the bazaar tends to permit usage defects since it’s more rewarding to add new functionality. Can’t we find a happy medium?
The upshot of this is that novice developers that are inclined toward elegant solutions (typically those with strong experience in other platforms or with other tools) feel alienated. In the case of my coworkers, they probably would have given up on J2EE some time ago and just go back to the the .NET cathedral if they didn’t have peer support.