Next Generation Scala
This one-day workshop will cover changes to the Scala type system, including union and intersection types, opaque types and new types of types. We will see new language features of trait parameters, structural types, enumerations, export clauses, parameter untupling and native HLists. A significant portion of the day will be devoted to Scala 3’s new implicit system, “givens” and its many improvements over Scala 2’s implicits. We will briefly explore Scala’s deprecated features, and ways to mitigate their removal from the language, before taking a high-level overview of Scala 3’s new and exciting metaprogramming facilities.
In order to fit in as much material as possible, the course will spend most of the day on taught material, with plenty of examples spread out through the day, and some experimentation in the new Scala 3 REPL, while attendees are encouraged to experiment with the new features as they go. We will finish up with a more complete worked example which brings together several of Scala 3’s new features to build something that would be impossible in Scala 2.