For most of 2020 I was planning to create a dedicated website for my “language engineering with MPS” tutorials that I streamed on Twitch at the end of 2018 and early 2019. As part of creating a website for them I also wanted to update the tutorials to more recent MPS version as it was still stuck on 2019.1. Through 2020 I didn’t find the time to do it for various reasons but in November I finally got around doing it.
You can now find them at heavymeta.tv.
The new website is a single page that lists all episode with a brief description of the content and an overview about the concepts covered. Most of the videos are unedited recordings of the live streams including the “prestream” and I can’t cut a Youtube video after it’s published. To make easier for you to skip the “pre-stream” all the embedded videos link to start of the content. While creating the website I updated the source code examples to recent MPS versions which is now linked from each episode as well. The readme in the liked source code references the correct MPS version and MPS-Extensions to each episode. The new structure of the source code repository now allows me to easily update the tutorials future MPS version which will help me to keep the tutorial up to date.
Right now the website hosts the first 10 Episodes round about 20 hours of video which gets you started with MPS to build your first expression based language from scratch. In the end you will have a simple, yet complete language for basic calculations making you familiar with every aspect of MPS: editors, type system, constrains and code generator. I’m planning to bring the two “bonus” episodes on interpreter and diagram editors back soon. Before I add those two parts I want to verify that everything is still working after updating the source code.
For the future of my MPS tutorials I can’t promise to add new episodes soon. I have some ideas but nothing concrete to share at the moment. That said if you have ideas for future tutorials in the context of MPS let me know. The best way is to open an issue in the Github repository or let me know on Twitter.