With the development of both the Dotty Language Server and Metals, Scala is now well on its way towards providing great compiler-backed IDE support. But even though we're now using our compilers more interactively, there is still a lot of knowledge about our code that we never get to interact with directly: how type inference makes decisions, how implicit search proceeds, how macros get expanded, etc. How different would programming be if the compiler could act as a true assistant to the developer? The possibilities are vast and we should start exploring them! In this talk, I'll present some early experiments in this area and hope to inspire others to start doing their own experiments too.
IDEs and compilers: an ever closer union
October 7, 2019