Scala makes it as easy as it can, but it just feels awkward; collection types are the most obvious thing; method names don't follow the same conventions, different types are expected for callbacks (you can use implicit conversions to mitigate this, but it's still a bit cumbersome), Java libraries sometimes return null in a way that no Scala library would. Some libraries expect classes that follow the JavaBean conventions, which look hideous in Scala (there's an annotation to tell scalac to generate JavaBean methods but it won't count them for implementing interfaces, so it's not actually useful). There are no showstoppers and it would probably be hard to do better when the languages are so different, but there's just loads of little niggling irritations to slow you down.