We recently had the chance to sit down with Konrad Malawski, Scala extraordinaire and developer at eBay. We’re always curious how folks get interested and started learning new languages, so we decided to take this opportunity and chat with Konrad about his programming background, current projects and what he likes most about Scala.
Typesafe: How long have you been using Scala and why did you get into it?
Konrad Malawski: I've been writing Scala daily for around 3 years now - which more or less matches up with the 2.9.0 release of Scala - so not quite as long as some others, but nevertheless I'm immensely passionate with it :-)
Before I got into Scala, I was mostly a Java guy but kept searching for another language that would allow for more expressiveness and power. I've been working with quite a few languages on and off the JVM (both at work and home), and was quite surprised that most of them were not statically typed. Then I bumped into Scala and was tremendously happy with its power and elegance - I haven't looked back since. I was also quite lucky that I was able to apply Scala at my day job, which at the time was not as common as today.
TS: Do you use Scala in your day job? What are you using Scala for?
KM: Yes, we've been using Scala both in my previous company (SoftwareMill - which is now a Typesafe partner), as well as currently with my team at eBay. SoftwareMill's choice for Scala was an easy one - as the teams were really eager to learn it. Also, the first project we did in Scala perfectly matched the language's strong points - lots data crunching (Akka powered), all hidden beneath slick RESTful APIs (where we used Spray). Now most projects are written in Scala, unless clients need otherwise.
With my current team, on the other hand, we had to consider the trade offs of not selecting the company's default "stack” and the fact that many in the team were unfamiliar with Scala when we started. Having that said, we measured how much we got done in both approaches, and how much we liked the code that came into being on top of each platform. Ultimately we switched to Scala on most parts of the project, with the rest following up soon. I'm also running workshops and we pair program a lot in order to get everybody up to speed. What made me really happy recently is that during coffee-breaks people keep asking to use Scala more, and where they could best learn it from. And on the job one or two “oh wow's" are quite frequent from newcomers to the language - always a joy to hear.
TS: What do you love about Scala?
KM: Two things primarily: the expressiveness of the language and the community around it. I think the root cause for this is that there’s tons and tons of really beautiful and useful code in Scala. That attracts people who like such beautiful code, which is how the community grows. I think that feeling also applies to other Scala passionates - like many devs I’ve met at conferences recently - the community is really excited about building stuff and learning while doing so. Every language’s community has a specific vibe to it, I think Scala’s is the most “learning and pushing the limits” (even if they discover bugs there ;-)) focused I’ve been part of - and I’ve not only been part of jvm centric communities but also helped out to start Kraków’s Lambda Lounge - thus, Lisp and Haskell people :-).
TS: Are there any specific features you're looking forward to seeing?
KM: That's always a tough one with Scala. Once you're in-the-know, there's many things you “want”... I’m pretty sure Spores as discussed in SIP-21 would help many developers, especially in order to avoid silly mistakes in Akka apps, yet new features always come with a trade off - making the language (in this case) safer, yet more complex.
I think Scala is going in the right direction, with modularizing language features (that's already implemented and on-going in SIP-18). This, together with explicitly marking the most exciting features as experimental allows both the language and cutting-edge libraries to grown and experiment, while keeping a stable core - just look at Eugene's macro-paradise with all the recent changes around deprecating type macros in favor of new mechanisms!
TS: Why do you use Spray?
KM: I still remember when some time ago I was hunting for a nice REST friendly framework for Scala. I've checked quite a few, most notably Twitter’s Finagle, BlueEyes and of course Spray. While the last two are pretty similar, I found Spray to be easier to bend to my will (or weird use-cases formats we had to support), and very nicely integrated with the up-to-date Akka versions - and well, with it now becoming akka-http this can also only get better!
Spray is in my opinion, same as Akka, one of these “killer apps” that you can show to a “maybe Scala interested person” to get them totally hooked. Spray is exceptionally good at this because of it’s beautiful routing DSL which acts as the entry drug, and then it only gets better with custom directives, etc. I have yet to find a developer who would want to go back to other frameworks after playing around with spray for a while.
TS: You’ve helped create a vibrant Scala community in Poland. What is the Scala community like there?
KM: I believe Scala first appeared in Poland's community with Geecon 2009, where we (the PolishJUG) invited Luc Duponcheel to talk about Scala. From then on it was pretty much like a snowball, with more people getting on the train. We also had Jonas over for the JUG, still in 2010, when Akka wasn’t as well-known as it is today :-) A major break-through was last year, thanks to Martin Odersky’s Functional Programming with Scala course on Coursera. Many developers gave it a shot and now can’t get enough.
Last year we also started the Kraków Scala User Group (with VirtusLab, a Typesafe partner from Kraków) as well as Lambda Lounge (for other functional languages) - so far the response has been huge. For ScalaCamp’s (which are “mini conferences” with many talks, food and drinks) we usually have around 200 showing up, while regular meetups attract around 50.
What I love about Kraków, or Poland in general, is that people really want to learn and do the right and interesting things. Enthusiasm is really all over the place, be it Kraków or the other Scala groups around Poland that have formed recently - Silesia or Warsaw just to name a few.