Type annotations are the frontend to the pluggable type systems provided by Checker (but they were added to Java 8 in order to support Checker):
http://docs.oracle.com/javase/tutorial/java/annotations/type...
EDIT: I think Java's initial advantages were taking good C++ concepts, simplifying them, and running in a safe environment (GC memory, app can't just crash etc.).
Haskell advantages are so extreme they elude most.
What were Java first 5 years advantages ? Wasn't it all 'Java is client-side silver bullet' ?
ps: by Pluggable Types did you mean Type Annotation http://openjdk.java.net/projects/type-annotations/ or just the Checker Framework ? http://types.cs.washington.edu/jsr308/