What can you do in Scala that you can’t do in Java? Why are streams and lambdas not enough for functional programming? What are the practical uses of more advanced language features?
We’ll cover specific language features with their uses cases:
Function composition as an alternative to layered architectures
Functional approaches to implement dependency injection
Writing reusable code with higher kinded types
Avoiding mutability with expressions
Abstracting with type classes
As well as posing some higher level questions about language features:
Why do we embrace runtime reflection frameworks but fear compile time implicit parameters?
Ease of initial understanding vs long term productivity of a language
Simple vs familiar language features and patterns
The goal of this talk is for you to learn some specifics about language features not yet in Java as well as to get you excited about programing languages in general