I found Strumenta last year, and finally wrote to Federico who encouraged me to join the community.
While I’ve been developing software since 1989, I was a theatre major and still do that as a hobby. Starting out (after the ooooold BASICs) with QuickBASIC gave me an appreciation for languages that could be both efficient and human friendly. I specialized in Visual Basic for 11 years, and was one of the first 4 MS MVPs when they started the program. Always on the lookout for things to learn, I’ve tinkered in many languages through the years. In 2001 I found Rebol and fell in love with it. When the closed source version was no longer maintained I began contributing to one of its open source descendants: Red.
Since I doubt many here, if any, have heard of Red, as a Rebol-like language, it’s a data format first, originally designed for messaging. To that end it has a large number of datatypes with distinct lexical forms (email, URL, pair, tag, issue/hastag, etc.). It also has a number of built-in DSLs, which we call “dialects” if the are of the embedded type. One of those is called parse
, and is a PEG-like interpreter. A key feature in it is that you can not only parse strings at the character level, but you can parse loaded Red values at the datatype level. This makes building dialects quite easy and common. In one view Red is almost a language construction toolkit.
Thus began my descent into languages and DSLs. As we continue to design Red and its ecosystem, much time is spent looking at the big picture; how dialects fit together in a holistic view. I learned early in my time with Rebol that the best DSLs are invisible. You don’t even realize you’re using one, but reap the rewards just the same.