Scala
Scala is a newer programming language. It nicely combines functional programming with object oriented and other paradigms. I am convinced it will have a great future and wouldn't be far off calling it the Java replacement. I think that every developer must have a few languages in his/her toolbox, including a bit of scripting etc.
Scala - main sites:
- The main site: http://www.scala-lang.org
- Forum: http://old.nabble.com/Scala-Programming-Language-f20934.html
Other:
- Style guide: http://davetron5000.github.com/scala-style/
- Tour of scala: http://www.scala-lang.org/node/104
Here:
Read about monads - it will help your abstract side of the brain. The more points of view you absorb, the better your understanding:
- http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html - this has 4 parts
- http://ww2.cs.mu.oz.au/~bjpop/slides/
- http://www.blumenfeld-maso.com/2010/01/what-does-monad-mean-by-tony-morris/
- and arguably, the worst introduction: http://en.wikipedia.org/wiki/Monad_(functional_programming)
- this one's good though: http://en.wikipedia.org/wiki/Functor
Useful scala libraries/projects
- scalaj-collections is a useful addition to the default scala.collection.JavaConversions
*