Earlier quoted context omitted.
[SerializableAttribute] [ComVisibleAttribute(false)] public class Dictionary : IDictionary , ICollection >, IDictionary, ICollection, IReadOnlyDictionary , IReadOnlyCollection >, IEnumerable >, IEnumerable, ISerializable, IDeserializationCallback Both languages can be difficult to decipher. I do find that Scala's syntax is much more flexible, which can lead to more stumbling when trying to read code.
It is easier, there is only one concept to understand : generics, with scala you must understand generics, co and contra-variance, implicits.
Though implicits I feel are so much simpler than many people fear.
From a Ruby perspective: Just think of them as operating similarly to Refinements, except not completely insane because there is no global scope at compilation. You only have to worry about your own package, imports and inheritance.
Tracking down an implicit generally takes all of 10 seconds, and never more than a few minutes. Even moderately brain-bendy ones like akka.patterns.ask (where does the implicit "?" come from? "ask" is actually an implicit conversion to a class that defines it: https://github.com/akka/akka/blob/master/akka-actor/src/main...).