In this Episode we talk about the Scala language with its creator Martin Odersky. Scala is a language that fuses object oriented and functional programming. Martin started out by providing a two-minute overview over the language, and then talked a little bit about its history. We then discussed the basics of functional programming. The main part of the episode features a discussion of some of the important features of the Scala language:
- Case Classes and Pattern Matching
- Multiple Inheritance and Compound Types, Traits, Mixins
- Closures
- Functions as types, "Function pointers", Anonymous functions
- Higher Order Functions
- Currying
- (Sequence) Comprehensions
- Generics
- Type Bounds (Upper, Lower)
- Static/Dynamic Typing, Type Inference
- Operators
- Implicits
We then talked about Scala's actors library, a highly scalable concurrency package. The last part of the episode covered some more general topics, such as where and how Scala is used today, IDE support and the user and developer community. We concluded the episode by looking at current development and next steps in Scala language evolution.