| Most of the comments here talk about how whatever useful can be done in Scala can be done in some other language. That is not the point, Scala is a good language because - Compatible with JVM - Strong type system - Linear Typing
- Substructal Types
- Local Type inference
- Concurrency constructs built in as actors (Akka)- Integration of OO and functional paradigms - Supports Higher Order Programming - defn-site Variance based Parametric Polymorphism - Mixin Class Composition for finer grain reuse - Traits provide stackable behaviors (aspect-oriented style) - Embedded Polymorphic Domain Specific Language (DSL)
using dependent path types Every language design is a trade off, but Scala is more expressive and concise than Java. Sometimes that may look to you as code which is unreadable. Other languages like clojure make some other trade offs. But Scala tries to bring some of the benefits of functional programming (in say Haskell) to Java. |
Will I still understand my own code in 9 months time?
I think that their is more to being a good language than a list of features.