This episode is an update on the developments around the Scala language. We covered the new features in 2.7 and 2.8, as well as what’s planned for 2.9. We then discussed briefly the different “proficiency levels” of Scala programmers. The main part of the episode centered around Martin’s new research project: the polymorphic embedding of DSLs for expressing concurrency into Scala.

On Banks and Scala, lots of them may be experimenting with Scala because they already have a large existing java infrastructure, so they:
– trust the JVM
– want compatibility with existing local code
– want compatibility with libraries they have training/experience with

For gaining real speed-ups when parallelizing iterative solvers (e.g., computational fluid dynamics) it is sometimes necessary to reduce inter-core communication by relaxing the dependencies between data elements. Thus, the parallel algorithm solves a different problem than the sequential one, but faster and eventually with same results (at least it was like that in the 90s when I did my PhD).

After listening to this very interesting episode (thanks!), I wonder how this could be expressed with the Scala/DSL-approach, where the the goal is to hide concurrency under the hood. It could be a challenge to abstract from parallelism and allow close interaction of numerics, physics and software at the same time…