The remaining piece of the puzzle is that Lihaoyi's libraries and general approach is exactly what a joe average coder would want. There is minimal use of advanced features, it is all quite straightforward and simple.
There are other productive contributors in Scala, but among them I would rate Lihaoyi to be among the least "magical". The fact that he is both practical and productive is what makes him unique. I guess my point was that there is a lot to be learned from that. For some nice examples of what it looks like in practice see his series of blogposts titled "how to work with x in scala".
I frequently miss basic features when I'm using other languages. Some of these include: - Its system for basic immutable data structures. - Pattern matching for very concisely extracting and branching on data. - A really nice immutable collections library. - Scalacheck for generative testing, driven by the type system. - A bunch of other nice-to-have syntactic features.
From the perspective of building projects, I appreciate that it can model anything from quick utilities to simple web services to concurrent systems, all within a single JVM. And with tools like Akka, you can move that to distributed systems without having to add external software you have to operate.