A Senior Software Engineer at CiBo Technologies, Dick Wall work on large scale geospatial datasets in Scala. He has been developing in Scala since 2006, formed the Bay Area Scala Enthusiasts (one of the first Scala user groups) in 2007, and has been delivering Scala training since 2009 at all levels. He is a former host of the Java Posse podcast and a Scalawag (a Scala oriented podcast currently on hiatus). Recipient of the inaugural Phil Bagwell Award for Scala Community Service, Dick also revived and ran the SIP/SLIP Scala Process from 2015 to 2016.
In advance of his talk “Your Type System Working for You” at Scala Days in New York, we asked Dick about his Scala journey and the Scala community.
Why did you pick Scala and what kind of problems does it solve for you?
Back around the time I first discovered Scala I was hosting the Java Posse podcast and it was a bit of a dark time for Java. Nothing had changed in the language for ages (since Java 5 really) and everyone was talking about C# and Ruby taking over. Being a dyed in the wool Linux fan, I didn’t want to have to switch to Windows for C# and I liked statically typed languages (plus the rails community was a bit of a turn-off) so I started looking for a more modern language alternative on the JVM. It didn’t take long to discover Scala and I never looked back.
What’s the most important challenge Scala developers are facing today?
I think that a welcoming and friendly community continues to be a challenge. In the end, I stepped down from the community work myself as a result of some fairly hostile situations (and I was just trying to volunteer and help) and it has taken me quite a while to start getting involved again after that. It’s a shame but my story is not unique, other friends in the community (well-known figures) have similar stories. In addition, simplicity is also sometimes in short supply, with many library and API developers favoring too much cleverness in solutions and not enough simplicity and even correctness.
I teach newcomers to Scala all the time, and I still see people struggle with the overwhelming complexity of coming into the ecosystem and trying to drink from the ever-increasing functional firehose of monads, kleisli composition, coyonedas and all of the other fashionable functional one-upmanship that seems fairly common in the community, along with a staggering lack of documentation. I believe it is extremely short-sighted of us all (not to mention demonstrating insecurity) that we seem to value “I know more than you do” over welcoming newcomers to the community and growing it much faster.
What’s one thing that could address this challenge?
I think leadership by example is the best option and I try to do that, unfortunately, it seems to end up with that example being overlooked in favor of the more energetic and less friendly side of the community a lot. It’s just seen as cooler to ratchet up the functional vice grips more and more I think, meanwhile people focusing on that are missing out on learning opportunities from everyone they assume they already know more than.
Who should attend your talk at Scala Days and why?
My talk is an example of using the Scala type system to solve a real-world correctness problem that comes from using geospatial data. It starts simply and doesn’t assume much more than an understanding of generics and maybe a little variance, but builds and leads the audience through concepts like existential type members, importing from within types, tying type parameters to parameter values implicitly, enforcing compile-time type constraints and so on. This is a type system talk more than a functional programming talk. Attendees will also get a feel for some of the mathematics involved in manipulating geospatial data as well, which I find fascinating and even though it probably won’t be something everyone uses, it provides a great framework upon which to hang the type concepts and is also probably going to interest people.
Whom would you like to connect with at the conference?
I like to talk to anyone and everyone. It’s always nice to find newcomers in the community and take the “weather” on what their experience has been so far. I also look forward to seeing the many friends I have in the community that always come out for these events.