Discussion
Why the heck are we still using Markdown??
causal: These examples are contrived af.Nobody uses markdown like that bro. We like markdown because it's easy to read both rendered and raw.
dangus: When I read articles like this my reaction is always “put up or shut up.”If you have a better idea, make it happen.The author merely described the parameters of a solution and didn’t even attempt to solve it.
sethherr: This website, at least in dark mode, doesn't have any visible indication when text is selected.... Which is additionally frustrating, since the links at the bottom aren't actually links (so you have to select them to copy and paste into your address bar)
fl4regun: i use it because it does what i want and is easy to use.
otterley: Because, like UNIX/Linux itself, worse is better: https://en.wikipedia.org/wiki/Worse_is_betterWe want to encourage people to produce written output with minimal friction. Barriers to writing--and especially barriers to producing documentation--should be minimized.Markup is overhead. Complex markup is even more overhead. Markdown is the best compromise we know of today that provides just enough structure and typographic capability, while imposing very little cognitive load on the author.Besides, if you need something more complicated these days, you can have your favorite AI agent do it.
andai: Aaron needs to hurry up and reincarnate already.
raincole: > These 2 produce IDENTICAL output....and? What a weird article. Of course two different pieces source code can produce identical output. Every single mainstream languages are like that too.
docheinestages: I don't think Markdown should be (ab)used as a programming language. It should be treated as a plaintext container that has some formatting to organize the contents.
warkdarrior: Agreed, if you need programmable content you can add some Javascript: https://www.markdownlang.com/advanced/javascript.html
sorrymate: The article talks about how confusing Markdown can get. I understand, but HTML is *much* more confusing when it comes to creating technical articles. These days we are going to see more and more markdown with the advent of AI. Markdown works really we with AI because it reduces the number of tokens required for the same amount of information vs HTML.
mewpmewp2: Yes fully agreed, markdown is going to win by far just because of tokens and AI. The only thing I think right now that should be advanced, is plugins/custom components for markdown, like .mdx, etc token efficient ways of visualizing things in various ways, or custom interactive components, etc.
aerhardt: Yea I’ve been typing encyclopedias worth of markdown, most to throw away, some to publish, and I’ve never had any the problems shown here.
quelsolaar: Mark down is great because it doesn't define a bunch of things. Headline? Its a headline, no font, no sizing, no colors... Just a headline. It means that it can be displayed on any device, printed on any paper, work with any accessibility tool and optimized for what ever requirements the reader has, not what ever the writer thought looked good. The web is full of great content being made hard to access because of poor/inflexible layout choices. Just give me the text and let me choose how to make it readable. The added fact that you can read raw markdown without even parsing it makes it even better. Not having total control over what its going to look like for the reader is a feature not a bug.
stared: Not many keystrokes to get a readable text. Yes, it has issues. But at its core, it is a plaintext with extra stuff, and no temptation to turn it into a webapp. (See my footnotes on HTML vs MD for saving text in https://p.migdal.pl/blog/2025/02/markdown-saves/).Yes, there is a problem with "many ways to do the same thing". The solution is ease - use a linter or autoformatter. No more bikeshedding.If you plan to use a clean yet expandable syntax, look at Typst. One of its core design principles (https://github.com/typst/typst?tab=readme-ov-file#design-pri...) is:> Simplicity through Consistency: If you know how to do one thing in Typst, you should be able to transfer that knowledge to other things. If there are multiple ways to do the same thing, one of them should be at a different level of abstraction than the other. E.g. it's okay that = Introduction and #heading[Introduction] do the same thing because the former is just syntax sugar for the latter.
kennywinker: Ambiguous means unclear meaning, not that there is more than one way to achieve the same thing.Html has that same problem. Think <b>, <strong>, <p style=“font-weight: 900;”>, etc.That’s life. Get used to it.
IshKebab: <b> is now hilariously called the "bring attention to" element. I shit you not.
ceejayoz: That's the sort of "we started at the acronym and worked backwards" approach the Pentagon loves to do.
vessenes: Hard, hard no on this.Why are we using Markdown? Why do I use it every day?It's easy to write. It's easy to read. Despite the OP's complaints, quality parsers exist.pandoc can turn it into almost any format. We will still be writing markdown in 50 years, because the design bridges a bunch of compromises very nicely.
nharada: I just can't find myself summoning the energy to be mad about markdown. It's good enough for like 99% of the things I use it for. Sometimes I get annoyed at specific extension support or whatever when I realize I shouldn't be using markdown for that task.
xigoi: For me, Markdown produces a lot of unnecessary cognitive load compared to other markup languages.• I have to decide whether to use asterisks or underscores for bold and italic.• I have to decide whether to use asterisks, hyphen-minuses, or plus signs for unordered lists.• I have to remember all the various rules and edge cases about parsing.
nxpnsv: 1&2 just pick one, it doesn’t matter. 3 mostly you’re the parser… if you’re after accuracy there are better versions, but it sure is simple to read and write
fny: Everyone seems to forget Markdown was invented for humans and incidentally for machines.Almost everyone who complains has some parser or rendering related agenda. No one cares if you can't nest asterisks inside underscores. Most of these edge cases don't read well as Markdown, which defeats the purpose.
krapp: >Everyone seems to forget Markdown was invented for humans and incidentally for machines.We already had plain text for that. Markdown was invented to be converted to HTML. It has no utility over plain text otherwise. The link and image syntax is doing what HTML tags do, but are less readable for humans than just pasting the URL. The relationship to the machine isn't incidental, it's intrinsic.
montroser: That is a lot of complaining for having no suggested better alternative.And there is your answer to the clickbait title -- we're still using markdown because there's no alternative that is so much better that it is going to dethrone the one that has all the momentum from being the first good-enough take on this that got any traction.
paranoidrobot: I don't read HTML all the time, and I don't expect it to be easy to read when outside of a browser.Markdown though, that's my slightly fancy readme. It has just enough structure that I can easily read and understand it on the command line.I can easily grep it without need for an advanced parsing engine.If you need something with font and style weight then go for HTML.But if I see README.html with a project, it's going to put me off wanting to contribute. I do not want to learn that project's style guide for how to add some new parameters to a table or remember that they want to specify italics in one of a dozen different ways.
asdfman123: The article correctly identifies the upsides of Markdown, then identifies a bunch of issues that I, as a casual user of it, don't care about.Then, in the solution section, doesn't identify a solution.No thank you, I'll stick with Markdown.
daft_pink: Markdown is essentially plain text with a couple extra features. I think Markdown’s basic appeal is that it’s plain text.
nostrademons: It's also worth remembering that markdown tried very hard to encode conventions that were already used in Usenet, email, and other text media. A > to indicate a quote was widespread Usenet convention. Asterisks or underscores to indicate emphasis was also a common convention; both are legal because both were common. Double asterisk or double underscores to indicate really, really emphasizing something was also a common convention. So were asterisks to display a bulleted list, blank lines to separate paragraphs, and indenting 4+ spaces to write code.It's a good example of "pave the path" design philosophy, where you do what users are already doing rather than trying to impose some platonic ideal of what the world should be like. And it works quite well at that.
Brendinooo: When you look at wisdom principles, like those of the Solomonic kind, you observe that a proverb is profoundly true, wise, and useful when you first hear it, but it starts to feel less so when you subject it to intense scrutiny/deconstruction, or try to extrapolate it to places where it's not supposed to go.Markdown is like that.We use it because it's an incredibly human way of writing and reading data without having to wade too deeply into the various forms of overhead that allow machines to read, process, and display it.
Glyptodon: I think markdown has problems, but this doesn't really propose a sane solution.The need markdown solves is document formatting without needing to know or use a tag-based markup language and remaining easily human readable and editable.That said, this is actually not the most widespread requirement. And when people need to solve this requirement, there often not tons of options. So some flavor of markdown is often the least problematic option.
Arainach: Somewhat related past discussion: https://news.ycombinator.com/item?id=41120254Copying my thoughts from there which haven't changed:>To which I say, are you really going to avoid using a good tool just because it makes you puke? Because looking at it makes your stomach churn? Because it offends every fiber of your being?"Yes. A thousand times yes. Because the biggest advantage of Markdown is that it's easy to read, and its second-biggest advantage is that it's easy to write. How easy it is to parse doesn't matter. How easy it is to extend is largely irrelevant.Markdown may or may not be the best tool for writing a book, but Markdown is the best tool for what it does - quickly writing formatted text in a way that is easy to read even for those who are not well versed in its syntax.I don't want to write a book. If I did I'd use LaTeX before RST. I want something to take notes, make quick documentation and thread comments.*****My thoughts on strictly-defined XML-ish syntaxes are the same: they're harder for humans to read, write, and modify, which defeats the primary purpose and benefit of Markdown.Very few people have to write a Markdown parser. Many orders of magnitude more have to read and write Markdown. Optimize for them even if it makes writing the parser painful.
vbezhenar: HTML is valid markdown. So I'm not sure how you make oppose markdown and XML. XML is basically a subset of markdown. <b>This</b> <i>is</i> *valid* <ul> <li>*Mark*</li> <li>_down_</li> </ul> Markdown basically adds a whole layer of complexity upon HTML.
jbritton: I strongly dislike flexible input like __Unambiguous___, *Unambiguous*I’m reminded of the time Microsoft allowed mistakes in html writing. They attempted to parse a wide variety of common user errors. The effect of this was no standard and nobody else able to write a Microsoft compatible parser.I dislike Nim lang because of this. At least Nim defined the specification. Still though I think it creates more cognitive load learning every legal variation and it makes searching more difficult.I think to authors point if Markdown actually had a strict simple definition with one day to do it and no embedded html we would be better off.
singpolyma3: Those three are not the same thing though. They might render the same visually with the most popular visual user agents, but that's about it
dbacar: Markdown is for us humans. HTML is for machines.Per keyboard stroke, you write much more content with MD than HTML.Even without a specific browser/reader Markdown is relatively non-intrusive to read. You cant read HTML without an extra tool/effort to discard tags.And you can parse MD with regular expressions, or can you? ;). (tip hat to infamous Stackoverflow discussion)
Arainach: If you're writing things like that in Markdown files (without being escaped in code blocks as HTML syntax examples), you're doing it wrong.
smahs: Not wrong, perhaps a little weird. HTML is a first class citizen in the commonmark (spec)[https://spec.commonmark.org/0.31.2/#html-blocks].
reaperducer: markdown tried very hard to encode conventions that were already used in Usenet, email, and other text mediaFor those of you who weren't there: *bold* _underline_ ~strikethrough~ /italics/ > Quotation - list - list - list I've been using these for almost half a century. They're much easier and more intuitive than Markdown. I see no compelling reason to change.
nostrademons: Your quotation and list syntax should work out of the box in most Markdown flavors (HN has a very non-standard and crippled version - basically nothing other than italics, paragraphs, and code/preformatting works.)Strikethrough and bold are doubled to avoid common ambiguities. Your underline should technically work, but it comes out as an <em> (emphasis) tag, which is rendered as italics in most browsers.