How Markdown took over the world
13 points by fanf
13 points by fanf
The article gives the impression that Markdown was a novel idea and that it was immediately and universally adopted, which I don't think is accurate.
At the time, there were already many text-based markup languages serving a variety of (mostly web-related) purposes. In most cases, the markup syntax was tightly coupled to a specific implementation: you built a wiki server, and you invented a markup language to go with it.
What set Markdown apart was that it existed as a standalone implementation (as a CLI tool) which people were able to use in contexts that did NOT support text markup but expected HTML. A common workflow was to write a plain text file, convert it to HTML, and then paste the result into blog or CMS software, as there were no rich-text editors, yet.
there were no rich-text editors, yet.
There were: FCKEditor and TinyMCE were already around back then. I know because I was working on CMS-backed websites. We used Textile for markup at the time, mostly because with WYSIWYG-editors there was the infamous "MS Word crap" problem - content pasted from Word contained so much garbage markup that it messed up the website's layout. To prevent such things, it was wise to use a plaintext format with minimal markup options.
Textile turned out to be a dead end, and wiki syntax also didn't make it, but Markdown became popular and probably due to GitHub's influence (see sibling comment by @hoistbypetard) it gained critical mass and everything else (mostly) fell by the wayside.
At the time, there were already many text-based markup languages serving a variety of (mostly web-related) purposes. In most cases, the markup syntax was tightly coupled to a specific implementation: you built a wiki server, and you invented a markup language to go with it.
Yeah, forums were universally BBcode (which was not very standarized, IIRC), and wikis had their own wiki markup languages, which were broadly similar to each other but likewise also very different. Creole was an attempt to standardize those, but then Markdown ate the world.
For such a thorough piece, I feel like it understates the influence of GitHub. GitHub got really popular as markdown was seeing some real uptake, and it shipped with nice rendering of markdown files in its web UI.
Prior to that, people would often check in generated documentation (or upload archives of generated documentation) because the tools for building HTML documentation were such a PITA to install and run, unless you were writing HTML by hand. With GitHub, all of a sudden dropping a few .md files into a directory got you docs that were almost as good for the price of a few plain text files that looked a lot like the README and HACKING files you were writing anyway.
I think that took it from "seeing some real uptake" to becoming the default format for documenting whatever you were working on. It really stood out when I got told at $DAYJOB for a large client to generate all new product documentation in markdown, where they'd demanded .docx files previously.
Also, being able to create a PR (or commit) from the web UI by editing a Markdown file is a fantastic idea. Doubly so to put that into a "derivable" URL so that you can add "edit this" links in published documentation.
There's a lot wrong with Markdown- there's actually a lot wrong with all lightweight markup languages (Djot sounds great, but it lacks some power features), but they're a great invention.
I'm working on hosting repositories "the traditional way" without a forge, and direct web editing is maybe the feature I miss more :(
I think also Discord was a large part of what pushed Markdown into general popularity outside of tech spaces.
I use a lot of Markdown and almost don't use any other languages in the same space anymore (except org mode for planning), but it is still somewhat frustrating that the ubiquity of Markdown has stifled the potential of other languages, such as Org mode. RST, AsciiDoc, and wikitext.
I know that the industry often converges on a de facto standard, and this is probably preferable to having everyone use and learn numerous different languages. However, the lack of a standard extension mechanism and the proliferation of mutually exclusive dialects (quarto, MyST, Mdx, Obsidian, etc.) mean that Markdown doesn't solve the "fragmented ecosystem" problem either.
I’m still curious about what led to Markdown being chosen by GitHub and StackOverflow. Markdown’s creation is well known, and it’s obvious that it took over the world because it was adopted by the two most popular programming web sites. The article doesn’t mention Reddit; my guess is that Aaron Swartz added Markdown support to Reddit, and Reddit was popular enough that GitHub then StackOverflow adopted it. But I haven’t seen any articles that confirm whether my guess is right or wrong.
I think there is probably some Apple connection
GitHub is written in Ruby, and Ruby programmers used Mac laptops circa 2007
At the time, apple was still on the rise among programmers
So Gruber wrote about Apple, and maybe the Ruby programmers noticed his blog is in Markdown
This doesn’t explain StackOverflow though, since that was a company based on Windows
My guess for GitHub is very mundane: GitHub's early popularity was in communities where Gruber was very well-known and rather influential, and adding support for markdown was a quick and easy way to add a thing that the specific early group of paying customers they had would like a lot.
But while I was there in #macsb irc at the time, so I saw some of the early discussions, I was a mercurial person (when it came to SCM) at that point, so I wasn't really plugged in for github's early days.