Scala.Meta with Eugene Burmako
Details
scala.reflect - a public Scala metaprogramming API available since v2.10 - turned to be very useful in practice. Thanks to macros, the implementation of such libraries as async, pickling, scala-blitz became possible. Moreover, macros have helped to improve scalatest, Play!, parboiled and other popular libraries.
However, scala.reflect has some shortcomings, because it is essentially a thin wrapper over the existing codebase of the Scala compiler. As a result of the architectural choices, scala.reflect ended up being overcomplicated, tightly coupled to the scalac platform and requiring the knowledge of the compiler internals to be used effectively.
The lessons learned from the scala.reflect experience were incorporated into the design of scala.meta - the new foundation for Scala metaprogramming. Its main goal is to make metaprogramming easy to use and portable across existing and upcoming language implementations. We have an opportunity to see how it's going to look like and discuss the plans now, before the release of the public technology preview scheduled for this autumn!
About the speaker
Eugene Burmako (https://twitter.com/xeno_by) - programming languages enthusiast, PhD student at EPFL, member of Scala team and the creator of Scala macros
