A lifelong coder who got started by hogging his mother’s Pascal books and his father’s MacPlus in the mid-’80s, Odd left university in the late ’90s to spend years in the Java Enterprise Factory. He discovered Scala in 2008, recently contributing more to the community, with “TreeSeqMap” being his first larger contribution to Scala.
In advance of his talk Immutable Sequential Maps – Keeping order while hashed at Scala Days Lausanne, we spoke to Odd about the reasons he chose Scala, why Scala is never boring and the details of his upcoming talk at Scala Days.
What is your most favorite Scala Days story or memory?
I really liked the keynote by Simon Peyton Jones at Scala Days 2012 in London, it was fun and inspiring.
What’s your background and what does your current role involve?
I’m a lifelong coder, I started coded long before I started working as a programmer and I’ll be doing so for the rest of my life. I have always felt it’s a real blessing to be able to make a living doing something you’re passionate about. Currently, I’m working as Coder-in-Charge at an IoT startup here in Stockholm.
What’s the biggest highlight of your career so far?
That I’ve been able to avoid going full time into management positions and instead kept on doing what I love.
Why did you choose Scala and what kind of problems does it solve for you?
I started by lurking on the Scala mailing list more than a decade ago and the thing that made me make the switch from Java-land was initially the Scala collection library (in its 2.7 incarnation) and the functional programming idioms it supported. The ease with which that allowed you to express your data management pipeline was a real eye-opener for me. Since then I’ve used Scala almost exclusively both professionally and leisurely.
What is the biggest challenge Scala developers are facing today?
Of course, it depends on your background and on how familiar you are with Scala; for beginners coming from Java, I believe it is the functional programming mindset in general and immutability in particular. The difference from the traditional OOP mindset in how you approach problems, formulate solutions and choose your abstractions can be quite a hurdle when you’re starting out. For more experienced Scala developers the way some of those functional idioms are expressed in Scala can be a bit puzzling before you get to grips with them. Personally, I still find some of the type level programming stuff wonderfully challenging; that’s also one of the best things with Scala, it never gets boring, there is always something more you can try to wrap your head around.
What can help address this challenge?
I believe that the ongoing initiative in Dotty of making the implicit-machinery and its different uses easier to understand is an important part. Better compiler error reporting is another. I also appreciate the openness of the development process (both for Scala and Dotty). It is really fascinating to be able to follow and take part in the sometimes winding way the different feature proposals take.
Who should attend your talk at Scala Days and why?
My talk is about a new type of data structure in the Scala 2.13 collections library, the immutable sequential map. I will go through different implementations strategies and compare to alternatives both from within Scala and from other languages. I’ll also look deeper at one of them (TreeSeqMap) that I’ve contributed, and look at how different implementation choices affect performance and memory consumption.
The talk should be interesting to anyone wanting to know more of the challenges of writing immutable data structures and on how to optimize them using tools such as JMH.
Whom would you like to connect with at the conference?
I’m really looking forward to meeting some of the people who have been participating in the 2.13 release. It will be nice to put a real face on the avatars.