A major focus of AspectJ 5 is on providing support for the new Java language features introduced in Java 5, including annotations and generics. AspectJ 5 also contains new features not tied to Java 5, such as an annotation-based development style, improved load-time weaving, and a new aspect instantiation model.
That it has needed a separate compile cycle, one of the reasons why Spring has become so popular, because spring does not need that and just needs an xml config file.
Hope the AspectJ annotations resolve the separate compile cycle problem.
However, the complexity is way out there now. It seems Java has surpassed C++ as the most complex OOP language.
C++ is myriad of times more complex on the language level however.
C++ cannot reach the complexity of the java libs, because the standardized C++ libs are a little bit more than hello world, compared to what is out there in java.
But I agress with you the times when both java the language, and the libary were simple, have been over for a while now. The language still is simple, but the way generics handle inheritance did not really make things simpler. The runtime is a legacy mess nowadays and really needs a serious overhaul with the dropping of deprecated stuff left and right.