Christopher (@chbatey) is a Senior Engineer at Lightbend. He works primarily in Scala but also spent 10 years writing Java and a couple of years writing Go. Currently he works on the core Akka team responsible for developing Akka (https://akka.io/), Akka Http, Akka Streams and Reactive Kafka. He has previously built trading systems, online television platforms and worked extensively with Apache Cassandra. Likes: Scala, Java, the JVM, Akka, distributed databases, XP, TDD, Pairing. Dislikes: Untested software and code ownership. You can check out his blog at: http://www.batey.info
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