Tuesday 26 October 2010

Scala is awesome!

I got caught unawares by Debbie from FuseSource with her video camera and she managed to get me rambling about programming languages and what I thought of Scala.

The sound is a bit quiet you might need to turn it up when Debbie's not talking :)

Here's the video or try it embedded below:


4 comments:

Ceki said...

I really enjoyed this video. The point about Scala generating fast statically typed byte code fro performance critical code is right on. Nicely put.

I wish I could agree with your comment about Scala not being complicated.

James Strachan said...

Thanks Ceki!

I did concede that static typing adds complexity to a language :). Dynamically typed languages are much simpler; but at a cost.

e.g. Java generics are very complex. The scala language syntax is fairly simple (bit simpler than Java really) but the type system and mapping of functional concepts to static types adds complexity for sure.

Its a trade off though; adding more complexity into the type system avoids complexities of hiding runtime issues, generates much faster bytecode plus it helps improve the introspection/documentation of code and leads to very safe refactoring and amazing code navigation in IDEs

Ceki said...

Compared to Groovy, I think the learning curve for Scala is much steeper but given Scala's static typing system, the added complexity is probably unavoidable. Having said that, once you learn Scala and reach the higher ground, the view from the top may well be worth the extra effort.

James Strachan said...

Agreed! I specifically designed Groovy to be very simple to learn for Java folks. Rather than focussing on "easy", Scala takes a different approach and focusses more on the right way to do functional and OO code using static typing and inference with a minimal language that is easy to extend in libraries; so its got a much steeper learning curve.

However that learning curve does mean you learn something :) particularly it lets you iteratively learn the functional side of software development which is very useful. Climbing that learning curve does take you to a better place and is well worth the effort IMHO