In this tutorial you will learn Scala from a systems programming centric point of view. By the end of the tutorial you will have built a simple, robust and performant distributed search engine for tweets using many functional programming idioms in a systems context. Scala is a large language, so we won't cover every nook and cranny. However, the most important concepts will be covered, and participants will be left with experience with writing a non-trivial Scala application and with the skills to learn the rest by themselves.
We start out by teaching the basic Scala concepts and language syntax.
try-catch-finally. Value-oriented programming
update, Functions are Objects (Uniform Access Principle), Basic Pattern Matching
PartialFunctionand advanced Pattern Matching
Next we introduce a few Twitter-specific concepts that will be used in our example application
Followed by building our example application: a distributed search engine for tweets built using functional concepts
Lastly we will discuss how these functional concepts map onto the object-oriented JVM.
We assume attendees have working knowledge of basic functional programming constructs such as pattern matching, higher order functions and recursion. Basic knowledge of object oriented programming (classes, methods, inheritance) is also required. Familiarity with Java concepts is a plus, but not required.
An engineer at Twitter since 2008 focused on building Scala applications and libraries for high-volume systems. He has been programming on the JVM since 1999 and in Scala since 2007. He's a contributor to a number of open source Scala libraries.
Marius works on systems infrastructure at Twitter. He has worked on RPC and streaming systems, profiling tools, storage & indexing systems and our front-end serving stack. He loves applying functional programming techniques to these domains.