This hasn't stopped me fooling around with it on my own time though. I think I'm familiar enough with Scala now to be able to give a talk on it at work and bring people to the dark side. I'm still not what I'd call good at it yet, though. Still get tripped up on syntax occasionally.
Interestingly, the other night my girlfriend expressed curiosity about programming, so I thought I'd show her how you get stuff done in Scala. She's not a programmer, but has done tons of mathematics, so I fired up the Scala REPL and started showing her how to do stuff, and she picked it up with no problem.
It occurred to me that shells like the Scala REPL or Ruby's IRB are great ways to teach people how to program, same as older languages Logo or C64 Basic. You get instant feedback, you know you're doing it wrong right away. You try something else and you learn.
Of course, where Scala really shines here is that you have an interactive shell that's completely typesafe. I don't beleive there's ever been a language this popular that's had a typesafe interactive shell - this is something new (correct me if I'm wrong!)
Imagine what an invaluable teaching tool this could be. Scala's friendly syntax allows you to express really complex concepts with a minimum of syntactic cruft.
So I started messing around with the shell, showing my girlfriend how easy it is to do various things. I started off with saying that programming is a lot like algebra - you have named variables to refer to values. Then moved on to expressions, if/else constructs, functions, passing functions around, simple value classes, and manipluating collections of them. An hour long demonstration covered quite a bit of territory and was rather well received and understood. Which is pretty good when you consider that functional programming concepts are something I didn't get for quite some time, yet I was able to explain them to a smart non-programmer using a syntactically sane language with little difficulty.
I got to thinking that this would make a really good live coding demonstration that I could do in person, or even a Youtube video. So I've been thinking about ways to do make that happen.
In the meantime, I saved a transcript of the session, have included some it it below (exluding the more complex stuff), and have added comments to describe what's going on.