Using Scala in the real world
Question Context: Where there is an exiting Java application or a new project development that is to be written in mostly Java.
We know that we can use Scala from Java and vice versa.
What specific system features are more suited for functional programming. I mean I wouldn't use Scala just because it has a nice feature of executing a passed-in function implementation over the items of a collection nor would I use Scala just for its object orientation capabilities I would just use Java for that.
So going beyond the nice and interesting features of Scala what set of system features make a compelling case to use Scala on a Java project?
where to start, and where to end?
- pattern matching
- case classes
- functions (and higher order ones)
- great collections
- more object oriented than java, avoid common anti-patterns
- type inference -> much less noise
- many great options in concurrency. Futures in Java are just so useless compared to Scala ones
- traits for composing services
- Testing with ScalaTest+ScalaCheck is much much better than JUnit/TestNG/
- Akka !
The list is just too long.