Java dev: Haskell (so I've heard) is very abstract.
Haskell dev, opening any Java project: why is there so much pointless abstraction!? Why is there an AbstractProtocolBeanFactory, when there will only ever be one implementation? Stop over-complicating things! Just be concrete.