I am greatly annoyed with the RF4 migration requirements. It's roughly the same amount of trauma as was required to go from VB6 to VB.Net.
We
expect Microsoft to break things. In the
Java world, the norm is to provide backwards compatibility and deprecation mechanisms. One of the primary differences between professional Enterprise-grade and kitchen-table hacker products.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.