Scala, I Choose You!

At Tapad, we love Scala! We write it, we bathe in it, and sometimes we sprinkle it on our breakfast cereal. We love it so much that we decided to pack our bits and journey west to the city of Philadelphia for the NE Scala 2016 conference.

IMG_4637.jpg#asset:5413

NE Scala is a two-day Scala conference in the Northeast of the US. It’s a great opportunity to reconnect with former colleagues and rub shoulders with luminaries in the Scala community. Is that my favorite library author at the water cooler? Why yes it is! And shout out Tapad engineering crew who came out seven strong!

IMG_4636.jpg#asset:5414

Day 1 of NE Scala was a single track series of presentations. From Rúnar Ó. Bjarnason, we were introduced to Scalaz’s Task and Stream libraries which let you describe your data processing pipeline without actually running it. With more fine-grained control, you can choose when tasks get run or how they compose with other tasks. From Brian Clapper, we learned about the evolution of Apache Spark’s API and the importance of type safety and declarative APIs. Throughout the day we discovered different ways that Scala could improve our workflows, even at build and compilation time!

IMG_4628.jpg#asset:5415

Though the topics were varied, a pattern was clear: Scala engineers process A LOT of data. Some from a database, some from flat files, but most often in a real-time, distributed environment. To tame that complexity, we need a scalable architecture. Good news for Scala programmers - the functional patterns we use every day are very much alive and well at all layers of the stack, including real-time processing. Have you met our friends mapflatMap, and filter?

IMG_4638.jpg#asset:5416

Day 2 of NE Scala was an “unconference”. Given a spreadsheet of rooms and time slots, the attendees self-organized a voluntary, multi-track conference day of their choosing. We took advantage of the opportunity to present an introduction on transducers and how they mirror functional patterns mentioned in the day prior.

IMG_4643.jpg#asset:5417

Tasks, streams, transducers… Is there anything that the Scala beast can’t handle? Maybe not! Scala is a bit of a chameleon, you see. It can adapt to your environment, being as object-oriented or as functional as you see fit. But at NE Scala, we’re seeing functional patterns picking up steam as reliable ways to tackle problems at scale and navigate the complexity of real-time systems.

Better yet, the chameleon is evolving! In just two years, Scala has gone from a JVM-only language to one that can run in the browser and interop with JavaScript. Presenter Justin du Coeur did a great job of evangelizing Scala.js as a viable platform for type-safe front-end development.

The power and breadth that the Scala ecosystem has to offer can be dizzying. But that’s okay! With Scala, you can choose when to choose. Sounds recursive, doesn’t it?

Big thanks to Tapad’s own Oleksii Iepishkin, and the other volunteers, for organizing another successful NE Scala!

If you’re up for the Scala challenge and you’d like to choose Tapad as your next place of work, contact us at careers@tapad.com.