Scala: Martin Odersky's Object-oriented meets functional: An exploration of Scala
Date: 2011-07-05 05:02:28

My colleague http://twitter.com/#!/ckubicek[Charles] and I attended Martin Odersky's 'http://skillsmatter.com/course/scala/object-oriented-meets-functional-an-exploration-of-scala[Object-oriented meets functional: An exploration of Scala]' two day Scala workshop hosted by Skills Matter at the end of last week.

It was run by Iulian Dragos who wrote his Phd thesis on http://lamp.epfl.ch/~dragos/files/dragos-thesis.pdf[how to improve the performance of the Scala compiler].

The course was a bit adapted from the original in that it came at Scala more from an application developer's point of view rather than that of a language geek.

Therefore there was more mention of the tools and frameworks that you might use in a Scala project rather than just focusing on the language.

We've been using Scala for just over a month on my project so we came into the course we a little bit of experience and having already read some books and blogs.

My general feeling was that this course would be more beneficial for someone who had never done any Scala and we had actually originally intended to go on the course before starting on the project but the timing didn't work out.

At one stage it felt like we were reading a list of all the stuff that we've learnt over the past few weeks with respect to http://www.markhneedham.com/blog/2011/06/22/scala-val-lazy-val-and-def/[val/lazy val/def] so we could probably have saved a bit of time if we'd attended the course first!

The most interesting bit of the workshop for me was when we worked through some exercises using the collections library.

I'm still not completely sure when one should be using a for comprehension as opposed to just calling the higher order functions directly.

I'd always thought that the latter was the preferred approach but Iulian was able to create some really concise solutions to problems by using for comprehensions.

We got the chance to talk to Martin Odersky over Skype towards the end of the workshop and he pointed out an interesting slide deck doing the rounds on twitter which suggests http://scala-boss.heroku.com/#1[ways to convince your boss to let you use Scala].

It mainly focuses on the fact that you'll  have less lines of code and therefore a more maintainable code base.

I think the way to ensure that this happens is to take my former colleague http://www.infoq.com/articles/guardian_scala[Graham Tackley's advice] and start off coding Scala as "Java without semi colons".

If we start by trying to include as many of Scala's esoteric language features in our code as possible then I imagine we could bury ourselves very quickly!

Overall this is very much an introduction course aimed at application developers who haven't used Scala or a functional programming approach before and for that audience I think it's reasonably useful.

I expect http://skillsmatter.com/course-details/scala/miles-sabin-advanced-scala-development[Miles Sabin's] 'http://skillsmatter.com/course-details/scala/miles-sabin-advanced-scala-development[Advanced Scala Development]' training course would be more interesting to people who are interested in the language more than the tools or have some experience with Scala already.