Comment by russellbeattie
6 years ago
My firm belief is that if Markdown had never been adopted, we would have a standard way of formatting text by now supporting these 10 basic formatting types: headings, paragraphs, bold, italic, strike-through, monospace, bullets, links, images and horizontal rules. That's it. Just 10 basic formatting options.
There's no reason why, in 2020, these aren't available everywhere. Just like every text editor can understand emojis (with colors even!), these simple formatting rules should be baked into every platform by now, and easily used on everything from PCs to phones to TVs, in every editor from Vim in a terminal to email to iMessage to Wikipedia's text entry box. Just like emojis are. It's truly insane we haven't standardized this yet. How old is RTF or PDF? Doing this basic formatting in ascii text is just mind-numbingly stupid.
At the time when Markdown was created, there were a hundred or two wiki and CMS systems each accepting a different syntax.
It seems to me that md won out because SO and reddit were using it.
I remember that I was partial to Creole when I was looking at lightweight markup languages.
If you're interested in a md-like language with more features have a look at pandoc's markdown.
> Doing this basic formatting in ascii text is just mind-numbingly stupid.
Nope, ascii more or less represents your keyboard. Using ascii as user input has zero dependencies. Are you really suggesting some binary encoding for formatting, that is only possible with the respective tooling? I see only disadvantages in that.
I tend to agree with your line of reasoning and wanted to write a blogpost about it eventually.
I implemented a "markdown-like" parser, and I noticed the biggest problem is that the edge cases are a mess, the notation is a mess, and doing efficient single-pass parsing is unnecessarily complicated (urls are also an unnecessarily complicated element that hits a parser of this kind, but that's a story for another day).
I generally agree that making special unicode characters to represent these things could go a long way into making everything easier to understand, parse, disambiguate.
To be fair, this could be tested without insane effort: unicode has a range of characters reserved for private use. Adapt a font and make a simple online editor where holding some key will make javascript generate the appropriate unicode character. We should just try it and see if it's really better.
If the concept works out well, same as we have modifier keys for alt, shift, ctrl, etc., we could use that and integrate in keyboards without much trouble. Of course, it's a big change, but I think it's being proved that there's a common set of markup needs that most platforms should handle.
And many might say: well, it's not like everyone needs to implement markdown, we can have a single implementation and re-use it. It's not such a big deal. Well, I'd argue that the right approach is make things as simple as they can be. This kind of markup is necessary, but we can make it much simpler (now someone might say that pushing more things into unicode is not a good idea, as unicode is far from as simple as possible and perfect, but that shall be discussed another day too).
> Doing this basic formatting in ascii text is just mind-numbingly stupid.
People have been typesetting research papers in LaTeX for awhile, and that's not much different. The beauty of plaintext is that it is easy to both read and author, and almost any tool can do the job.
> Doing this basic formatting in ascii text is just mind-numbingly stupid.
We write programs in text, and they're capable of exhibiting an unlimited assortment of behaviors.
Using a wysiwyg tool is burdensome, inaccessible, hard to automate, and doesn't integrate with the myriad of other tools we have available.
Windows and macOS do carry italics, strike-throughs, and the like through copy and paste. I think it's the tyranny of the teletype emulator that keeps us doing this. After all, why shouldn't we issue textual commands to a computer in a more sane environment?
> Windows and macOS do carry italics, strike-throughs, and the like through copy and paste.
There is no magic, they do it by literally exchanging HTML on the clipboard. Applications use it as a lingua franca and convert the text into whatever form they use internally.
HTML? Not RTF?
1 reply →
Unicode already has this.
Markdown supports all of those things and is the standard. So I don't understand what you mean by "if Markdown had never been adopted, we would have a standard..."
(As does HTML. HTML5, XHTML, HTML4.x, HTML3, ...)
> Doing this basic formatting in ascii text is just mind-numbingly stupid.
It might be today, but many of us who are older used Markdown-like formatting even before Markdown was even a thing, because on BBSes and other applications, everything in those days was plain text.
I don't know Gruber's intentions when he created Markdown, but my guess is he created it for himself first, and then other people adopted it because they think similarly.
Emojis are fundamentally different, as they're essentially just codepoints being displayed. That's fairly easy to implement, as every system has been doing that for years. What you're proposing would require massive rewrites of a lot of software.
I'm also not sure it would even be better; I've never encountered a graphical editor that didn't make me want to throw my computer out the window; stuff like text becoming bold when I don't want it, adding to a list (especially with copy/paste), etc. all tends to be quite annoying and stuff I need to think about. With Markdown, I don't really need to think about the formatting, not more than regular typographic formatting anyway (paragraphs, punctuation, etc.)
Engineers like code and dislike fuzzy things with hidden edge cases. When Slack tried to switch from markdown to a UI engineers complained loudly. There's no reason to believe it'd have been any different had one of the fifty other formats that existed won out.
From a practical point of view, markdown you can diff, you can copy it around without edge cases, etc. There's a reason people use Latex rather than Word which is evident the first time you have to spend 30 minutes fighting Word's formatting edge cases.