Martin Odersky and the Tapad team

Scala Days Conference

Tapad in Switzerland 2019

Tapad Engineering
Tapad Engineering
Published in
4 min readJul 2, 2019

--

Celebrating 10 years of Scala with the largest Scala Days conference to date!

People from all over the world gathered in the birthplace of Scala — the Ecole Polytechnique Fédérale de Lausanne (EPFL) in Lausanne, Switzerland.

Scala Days is a three-day conference for developers to come together and partake in 50+ educational talks and workshops to share new ideas around creating new applications with Scala.

Given that Tapad started using Scala in 2011, we know how valuable this conference is and we made sure to have members from the New York and Oslo offices attend the event. From a technical standpoint, these were our key takeaways:

Ecole Polytechnique Fédérale de Lausanne (EPFL) in Lausanne, Switzerland

Jeremy and Aish gave a great presentation sharing Why Netflix ❤’s Scala for Machine Learning. They use DataFrames, leveraging Apache Spark for their content recommendation system and saw issues with the lack of type safety. Datasets can improve on that but at the cost of creating case classes for all the intermediate states. So they created their own DSL to have a middle ground approach that still uses DataFrames but allows to specify the expected type of those fields. In the second part of the talk, they showcased an experimental framework, which provided the benefits of compile time and type safety for mathematical formulas.

GraalVM looks very promising and may bring significant improvements when running at a large scale. Chris Thalinger from Twitter spoke about using GraalVM with default parameters which in turn would increase the performance and reduced consumption of resources. In addition, they are using a Bayesian optimizer to set the parameters of GraalVM which makes it even more beneficial. For Tapad’s use case, we think it’s interesting for CLI (command-line interface) tools or any short-lived process we have running on JVM, but not sure it’s worth it for long-lived server-side processes.

Scala 2.13 was released just days before Scala Days, but the upcoming Scala 3 was the buzz around the conference, which is scheduled to be released next year. There are a lot of changes in the language, both with implicits being replaced with “delegates” and the rewrite of macros which will make it easier to encode type classes, and type class derivation will be baked into the language. Delegates change the way we think about implicits by specifying the intent rather than the mechanism which still allows the same power but with more control. The changes are very welcomed, but for Scala 3 to be successful, it will require coordination from the community to move everyone forward.

With the release of Scala 3, the source code is compiled to an intermediary binary format called TASTY before it’s compiled to JVM bytecode. The goal of TASTY is to mitigate the current migration problems between Scala minor versions and make it easier to cross build Scala to different platforms. We should see less binary incompatibility on the 3.x versions of Scala than what has been the case on 2.x.

Starting day two, Reynold Xin, the co-founder of Databricks, spoke about the common big data problems organizations are facing with the rise of machine learning and how two new open source projects — Delta Lake and MLflow — can help solve this problem

Another hot topic throughout the conference was inclusion, diversity, and discrimination. Bogdan Vasilescu is a professor in computer science at Carnegie Mellon University and gave a talk on “Sustaining open source digital infrastructure”. He presented interesting research on characteristics of successful teams (diversity was one of them) as well as research on characteristics of successful code bases in the open source community. Some of the highlights here were visualizing quality through quality badges on GitHub, as well as, defining a correlation between small dependency graphs and successfulness of a project.

Scala is a challenging language to learn but in order to grow, we must continue to be supportive and eager to help others learn. Scala is only as strong as the community, so we will continue to spread the #Scalalove!

Follow us on Twitter @Tapadeng and check out the talks for yourself here.

--

--