You may well think that all you do is program in Perl. All day, every day. This is almost certainly not the case. Mini-languages abound everywhere. Here's just a few that you may use all the time without thinking about it.
And that's just the core language. If we extend the list to include popular uses and modules:
- SQL Almost any database application has SQL in it somewhere. If it's not SQL, then it's almost certainly some lesser-known query
- HTML Lots of (IMnHO) naive people still embed HTML in their CGIs. Those of us who have moved on to templates are actually adding
yet another language (that of the templating system itself). Interesting that adding another mini-language tends to make things easier . . .
- Parse::RecDescent Those strings containg the grammar certainly aren't Perl code.
And probably gobs and gobs more. Any given peice of perfectly valid and clean Perl code could easily contain four or five mini-languages without anyone realizing it. I find this interesting, as I hear from many managers that your orginization should stick to using just a few languages. They probably mean full-fledged languages, but I still find this view a bit naive.
One of the reasons I'm excited about Parrot (more than Perl6) is to use it to make all sorts of mini-languages that can be more easily embedded into a main language, or have them call routines built from other languages.
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.