Markdown and "Little Languages"

David Sparks @macsparky and Katie Floyd @katiefloyd in their MacPowerUsers 37 podcast talked about Markdown and MultiMarkdown. I actually used Markdown - see John Gruber’s Daring Fireball Markdown Syntax - in a project at work in which I had to generate documentation formatted as docbook. Fortunately there was a Markdown to docbook translator called Pandoc and it performed (almost) flawlessly - I had to add in a small macro in (ugh) UltraEdit to clean up the generated documentation so the Eclipse postprocessor would be happy with it.

This led me to recall a chapter I had read in Jon Bentley’s highly recommended programming book “More Programming Pearls: Confessions of a Coder” (ISBN 0-201-11889-0). Jon talks about what he calls “little languages” in Column 9, in which he describes a language as ‘any mechanism to express intent’ - thus the linkage to Markdown. Notations or languages such as LaTex, TROFF, and Markdown are akin to other “programming” languages such as C and FORTRAN in that they instruct the computer to process input and generate output. It’s just that these little languages hide a huge amount of complexity in their brevity and let us get on with the things we want to do instead of worrying about the actual syntax of the final output (docbook XML, HTML, instructions to a typesetting system…)

PS This post is written in Markdown within the RapidWeaver application for Mac OS X. The Markup Plug-In for RapidWeaver comes courtesy of André Pang, source code hosted at GitHub.