| # In Defense of Markdown Consider the alternatives: 1. Plain text only interfaces aren't feasible in a lot of contexts. Rich text formatting and/or hyperlinking is far too useful, if not actually mandatory, in most contexts. 2. Raw HTML isn't feasible either. Even ignoring the cognitive load it imposes on non-developers, it's too easy for malicious users to exploit unless you validate and whitelist aggressively, and that invites human error in even the most technical users. 3. WYSIWYG editors aren't great. They're slow and cumbersome and frequently have major variations in behavior between different libraries, or even between the same library on different platforms. Most of the implementations I've used are buggy. And they actively fight against the reality that an HTML snippet can and does appear very different in different page contexts or on different screen sizes. What you see in an editor is almost never actually what you get on the final rendered page, and unless the site designer is extremely careful that can easily cause more confusion than it prevents. So we're left with simplified domain-specific markup languages as the least bad option. Of those, Markdown is probably the best. Its pave-the-cowpaths approach to how people pseudoformatted text in old plain-text forums and emails means it's probably as close to intuitive as a markup language could ever get. Which is, admittedly, still not very intuitive; but in my experience it can be learned quickly by an intelligent but not technical user, provided they have some motivation to do so. And the fact that it's becoming a de-facto standard on much of the internet means that the percentage of users who have some experience with it is only going to go up over time. That, combined with the relative ease of implementation, makes it a very attractive option for developers. |