Prefer vals, immutable objects, and methods without side effects.
Reach for them first. Use vars, mutable objects, and methods with side
effects when you have a specific need and justification for them.
-- Programming in Scala, by Odersky, Spoon, and Venners
There are more example and guid...