This weekend I was at ScalaMatsuri 2017, the largest international Scala conference in Asia, which I have been lucky enough to attend for a few years now. The videos are available at https://freshlive.tv/search/Scala. As they left the video recording all day, you should fast-forward to the various presentations. There is always a lot of interest going on there, but a few things seemed to stick out to me this year:
Functional Programming
Paul Szulc, among others, gave a couple of talks on functional programming. The first was about the Free monad (https://freshlive.tv/tech-conference/83829 about 4 hours into the video), allowing you to reason about your concerns in isolation and combine them together on a higher level. The second was on recursion schemes. Very interesting but unfortunately my main take away was that I need to brush up on my functional programming. Connie Chen gave a talk on monad transformers that I wasn't able to attend but she did make her slides and code available on line on GitHub - monad transformers. Naoki Aoyama gave a talk on the basics of Van Laarhoven Lens in Japanese.
The state of Dotty, the next-generation Scala compiler
, the next-generation Scala compilerGuillaume Martres (EPFL) explained the new, experimental compiler for Scala, Dotty (http://dotty.epfl.ch). Union, intersection and literal singleton types along with faster compile times are what I am most looking forward to but there is a lot more there. I was pleasantly surprised to find out how easy it is to try it out. (https://freshlive.tv/tech-conference/83829 about 3 hours into the video)
Using Deep Learning for Recommendation
Eduardo Gonzalez introduced different ways to use Deep Learning for recommendation systems using DeepLearning4J and Scala on GPUs. His honesty around the challenges, and there can be many challenges getting to a good model, was refreshing. I alway enjoy Eduardo's presentations and am consistently impressed by his presentation skills in Japanese. (In Japanese https://freshlive.tv/tech-conference/83835 around 5 hours and 38 minutes into the video).
Meta-program and/or shapeless all the things!
Scala.meta seemed to be very popular topic this year, perhaps because scalameta 1.6.0 was released just before the conference. Chris Birchall gave some good examples of implementing a “def macro” and a macro annotation, how to use scala.meta (which Devon went into more detail in on Sunday), the next generation of Scala metaprogramming and when when you should NOT use a macro as well as when to use Shapeless. (https://freshlive.tv/tech-conference/83829 about 5 hours and 2 minutes into the video)
Coding in Scala Native
Denys Shabalin (EPFL) took us through the development of a simple game using Scala Native and on the way explaining the basics of how to interoperate with native code. It was impressive both how far along Scala Native has come and the start up times when you are not using the JVM. Having said that if you are interoperating with C or C++ libraries there is no way you are going to get around having to know C or C++ and a certain amount of verbosity for the interface.