If you read this blog you will know that I strongly believe in the power of languages. So I am very biased, of course, but I have the feeling that the Language Engineering community is growing and more interesting stuff is coming up.
For this I thought it was a good idea to finish the year by looking at what is happening in the community and list a few things I found interesting.
ANTLR
First of all we got ANTLR 4.6. We got some hints at the beginning of December:
@ftomasse @samharwell before xmas for sure
— The ANTLR Guy (@the_antlr_guy) December 3, 2016
It should bring us significant performance improvements, thanks to contributions from Sam Harwell. In one of the next posts we will look at what else is new in ANTLR 4.6.
The ANTLR 4 target for C++ has been released. You can read more here. Recently it has also been included in the official distribution, as announced on the blog of Mike Lischke, the author of this great work. Thanks to him for sharing this with the community.
Recently I read some interesting short posts on ANTLR from Tobe O, a 17-years old developer. Take a look to his blog on medium: you will find posts on implementing string interpolation using ANTLR or his series on Creating a scripting language using ANTLR.
Finally an ongoing discussion: Listeners or Visitors? Different people have difference preferences and this post by Jakub Dziworski briefly compares them: Antlr 4 – Listener vs Visitor
Jetbrains MPS
In the last months I have noticed a growing activity on the forum. There are more and more questions coming up. However it seems that the people from Jetbrains are not as present as usual and many questions remain unanswered. We discussed this situation in a post on the forum itself.
I think that we as a community need to roll up our sleeves and start helping each other. And we should also produce much more content: sharing our experiences, advises, tricks, what worked for us and what did not. I wrote several posts on MPS this year and I plan to do my part by writing more next year.
There are others already writing posts on MPS. For example Eugen Schindler wrote How to write a dump of an MPS model to XML based on its structure. I am looking for more ways to make MPS interoperable with other tools. I started writing a library to process MPS models from Python, I should find the time to go back at it one day.
Xtext
This year the second editor of the book on Xtext from Lorenzo Bettini came out: you can read my review.
This year we have seen a new company joining the Language Engineering community: TypeFox. I interviewed one of the founders some months ago. They are focusing on Xtext, with many contributors to the project joining their company.
They seem to be working with the new Language Server Protocol doing interesting things like embedding a Monaco editor in a browser. Personally I am very interested in the idea behind the Language Server Protocol. I think it is leading us in the right direction, promoting interoperability and the birth of ecosystems around languages, by sharing the hard bits.
Ohm – A framework to build parsers
Finally a new contender in the Language Workbenches arena. I found out about it reading this post: Language Hacking in a Live Programming Environment. This post presents a live environment for building parsers. I think this kind of immediate feedback would help a lot of people learning about parsers. I personally prefer using long lists of tests for getting feedback on my parsers, but this approach could help speed up development in the initial phase.
It is available on GitHub: ohm project.
Conclusions
In Language Engineering we are moving from not enough happening to the point at which it is difficult to track everything going on and it is impossible to find the time to learn everything. It is sad but it also means that the language engineering field is very alive. Let’s see where 2017 brings us.