* Compile-time is slow * IDE support is more poor than Java * Overuse of operator overloading is confusing * Implicit confusing
I don't necessarily agree with all of these criticisms, but it's a very valid piece of "feedback" to the Scala community.
Odersky has taken an official stance against symbolic method names, especially in libraries, and many of the most famous offenders (Dispatch's absurd periodic table) are rightly ridiculed within the Scala community.
I don't have anything to add on implicits. They've certainly tripped me up a few times but generally it's just a matter of finding the right import, though I have been cursing Play's implicit JsValueWrapper the last few days.
If you give your methods bad names, it really is not the language's fault. You can probably find a way to make a bad API even if you are limited to a-zA-Z0-9 ...
If a library has an inscrutable set of method names blame the lib not the language.
The special operator rules allow library authors to create a "DSL" without using the (difficult) macro system. This almost never ends well.