Talenthouse is a Los-Angeles based company offering an online platform for creative collaboration and brand advertisement. With over 3 million users, it is one of the most active platforms of its kind. In late 2013 it became clear that it was necessary to rebuild the platform, at that time based on the Zend PHP framework.
The chosen technology for the new platform was a combination of the Play Framework and the Scala programming language. The time-frame for the rebuilt was set to a challenging 3 months.
Java patters in Scala, decorator, command, builder, iterator, strategy, null objects
Scala's type inference algorithm tries hard to automatically infer generic type parameters' actual values. If there are implicit parameters to a function that depend on yet underspecified type parameters, it can use this as a source of type constraints. This yields a variant of logic programming on types.
In this lightning talk, I will show the main powers and limitations of this method of metaprogramming through a series of short examples.
Rea is a language and framework based on the principles of Task-Oriented Programming, in which computations are described as workflows of independent tasks. The aim of Rea is to support programming Cyber-Physical Systems that are collaborating computational elements interacting with their physical environment and controlling physical processes. In the lightning talk, I will introduce Rea through a small example, and discuss the issues we face when implementing it in Scala.