Play on Dotty: Design Patterns unlocked...
The Dotty compiler currently supports some really awesome features of Scala 3.0 such as implicit functions and trait parameters. In this talk I will discuss what I think are the best parts of Scala's functional programming and object-oriented features and how Dotty emphasizes better cohesion and simplification of these paradigms with implicits. FP brings the notion that functions are just objects, but Scala brings to FP the notion that classes are just higher-order functions that produce modules. With this insight, we can see how you can write extremely modular code without exposing too much detail or hard-coding your modules. I will explore the design patterns implicit parameters / functions versus and constructor injection and when to use one or the other. I will also explore how this could look in a strawman iteration on the Play Framework's architecture (assuming it took these design patterns to heart). This will be an interesting talk if you are interested in Scala 3, implicit functions, ideas for how the Play Framework could evolve, or the sweetspot between OOP and FP that Scala enables.