I started learning Scala programming language.
Scala rocks! It is statically typed, has functional features, and aims for developer productivity. In Scala you can express what you want with less code than in C#. Scala runs on JVM and any Java code can be called from Scala.
Here are the slides from my presentation at Charles University in Prague: pdf, powerpoint, examples (.zip)
Some of Scala's clever concepts suprised me:
- Actors - a totally different thinking about concurrency than you are used to. No threads + shared state + locks. Actors live independently, share no state, and communicate by sending each other messages.
- Adding new keywords to the language just by writing ordinary methods. Consider adding C#'s using or lock keyword to Scala, without compiler support!
- Traits - behaviors can be mixed in freely at instatiation time, sort of built-in Strategy design pattern.
- Absence of the static keyword, turns out it is not needed! Instead of having static state and methods of a class, you declare a singleton instance and call its methods.
If you want to see concrete examples, check out the slides.. it's coding time ;)
Links to get started:
First steps to Scala - a great tutorial.
Twitter on Scala - detailed interview - did you know that Twitter runs on Scala?
Thanks to my friends Joe and Pz for support!