Before reading the article I was expecting a mention of MML but, no dice.
Woah, I just wrote a big ranty comment then clicked on MML. I don’t think I’d seen that in 25 years… and I didn’t really know what it was at the time. wow. thanks.
Can I jump in with a pontification on the term Domain Specific Language. For instance, TidalCycles is a Haskell domain specific language for musical patterns, originally just sample based, but now able to talk to supercollider (a la overtone/sonicpi) but in the end it still has plenty of Haskellisms.
And this gets to my main point about DSLs, more and more of the time dsl seems to mean “some function names that can maybe be chained together in neat ways with relevant data types” but you end up still having mucho extraneous syntax hiding in plain sight in the domain specific language. So the term has been coopted from Language to Domain Specific Model in a new Language.
Compare pure music DSL’s like CSound, RTcmix, SuperCollider itself (smalltalky), LilyPond (notation only, TeX-like) or perhaps most adventurous syntax wise ChucK from Princeton and you don’t have to learn another language’s ins and outs, you merely have to learn the terms and how they combine. Anyway, it’s just a distinction I wish was more clear, if you’re using a General Purpose Language’s parser as is… you’re just writing in that language. If you write a new Parser, now you’re in pure DSL land.
Just a rant I’ve had in my mind that I wanted to type out. Keep rockin.
On the subject of music & Haskell, anyone played with TidalCycles?