If you think that users of StackOverflow and GitHub are “Normal People”, you need to adjust your personal RDF.
My wife is not a geek or a programmer. She will, if forced, learn the intricacies of an idiotic programmer‘s decision to make something easier for him (and it’s almost invariably a him) in order to participate in a particular forum. This is why people put up with crap like bbcode every single day. That doesn’t mean she enjoys it.
Markdown works because it makes plain text readable and formatted nicely. Markdown works because it works just as well in a plain text email as it does in an HTML-formatted email.
It doesn’t work because some geek says that the people who use heavily geek-oriented sites (StackOverflow & GitHub, to use your examples) are in fact ”Normal People”. (And, just for what it’s worth, I do find the fact that I have to join all my hard-wrapped lines back together in SO & GH comments to be immensely annoying. At least their markdown parser for .markdown files doesn’t do this.)
So, no I am not flat-out wrong. I hear geek whining that parsing is made harder because of a design feature that is present because most people don't think about or want to think about “correct” line-endings.
Before you decide that I’m full of hot air, understand that I am working with my wife’s novel that’s written in Markdown so that I can parse it (possibly using an existing well-written-and-maintained parser like peg-markdown or peg-multimarkdown as an intermediate mechanism) and then transform it into the LaTeX formatting required for making her PDF output and the HTML formatting required for making her EPUB (and thus MOBI) output.
I am well aware of how ugly some of it is…but it makes it easier for her to write her novel without falling back to proprietary formats like .docx. I’m willing to deal with some pain as an implementor in order to minimize what she has to deal with.
As such, I don’t really have a lot of patience for this type of geek whinging.
I'd respectfully submit that if your wife is writing a novel with actual line break characters at the end of each visual line, rather than only at the end of paragraphs, she's kind of an edge case. "Normal people" who have been using word processors since the late 70s have had it drilled into their head that you only hit return at the end of a paragraph.
It's my suspicion that Markdown was written the way it was solely to handle the case of blockquotes having ">" characters at the start of each line, and the reason that mattered is because BBEdit and Mailsmith had commands to wrap text that way, chiefly for quoting mail messages. This happens to fit in very nicely with the way Vim and Emacs wrap paragraphs, and I know there are people who've written novels in both. But I assure you that the vast majority of fiction writers are used to word processors, and for that matter, so are the vast majority of users typing things into text boxes. And if those users wrote a little poem
That had lines
Which looked like this
And failed to rhyme
Because they weren't really poets
...the chances are they would just hit return at the end of every line, because that is the way every program they have used in their entire lives works. This is why GitHub and StackOverflow made that change: because Markdown is not like HTML to most people. It's like plain text. In plain text, when you press return it means "end of paragraph." The way Markdown does it -- and the way Hacker News does it, I just discovered! -- violates the principle of least surprise. I am not writing HTML, I am writing text, and I expect it to act like text.
(For what it's worth, I've written a collection of short stories in Markdown and created the EPUB from that using my own Python scripts to do so. I am an edge case. Anyone who is writing fiction in a text editor instead of a word processor is also an edge case. Sorry, but it's the truth.)
Stackoverflow requires you to add two spaces to the end of every one of those sentences in your poem to work as you just said it did ... Stackoverflow DID NOT make that change you suggested it did.
If you are throwing away the ability to have visually formatted source text, all the teeth gnashing over the name of the new, properly standardized and beautifully implemented format becomes completely ridiculous. Nice looking source text is pretty much the core principle of markdown.
Which I suppose is the source of Gruber's apparent obstinance, if someone wants to make changes that exchange his design principles for other design principles (I don't think he cares much about naive users), why should he hand them the name of his project?
(to clarify, "apparent obstinance" is me doing a poor job of keeping sarcasm out of my post, I don't have a problem with Gruber insisting that the markdown name is his)
I agree -- but it doesn't seem to me that "treat return characters as hard line breaks" equates to "throwing away the ability to have visually formatted source text," unless one is using an editor that is unable to deal with soft-wrapped text gracefully.
Why do you feel like normal people, who have been trained for decades--not just on computers but on typewriters as well--that hitting enter means "go to the next line", would have an easier time if that assumption was violated? You even see the formatting in front of you: you are now on the next line, and yet when rendered this information is somehow ignored and the text is pasted together. E-mail clients, which have been doing crazy things to our text for years, don't even do this: the closest they come is format=flowed, and that's a special set of rules designed to be generated by clients, not typed by mere mortals.
I feel this way because of the reality that many people will centre text in a document by inserting spaces in front of the text they want centered, rather than using their word processor's centre command. It drives me absolutely bonkers to see that, but it's reality.
I feel this way because of the reality that many people will hit enter two dozen times to go to a new page, or to position a bit of text.
In the time that I've been working with computers, what I've come to realize is that most people simply don't have a grasp of the abstractions of the computer—they remember particular incantations that worked for them last time and keep doing them again and again.
My wife is an intelligent person; probably smarter than I am. She speaks three languages and has taught for the last twenty-two years. Watching her use the computer drives me absolutely bonkers because she doesn't use any of the things that I know make the computer easier to use. Neither does her sister. Why? Because neither of them have time to specialize in the use of the computer. They use it a lot, and I've been able to introduce a few things—but only for things that simplify their lives because they integrate into how they already work.
If two of the most intelligent people I know don't have a lot of these expectations…why do people think that most people would expect things to work the way that Jeff has proposed?
In a sibling comment (I only want to reply once), stickfigure says:
“Normal People have a consistent expectation regarding the behavior of line breaks.”
Actually, I don't think that Normal People have any understanding of line breaks at all. They understand letters, words, sentences, paragraphs, and to a degree pages. They know they want something to show up on the page, but they have no understanding of how the computer does its magic to make that happen.
stickfigure: “Normal People are comfortable with markdown in the first place. Neither you nor your wife are Normal People.”
For the second sentence, I agree and disagree. I'm certainly a geek with a more-than-passing interest in layout, formatting, fonts, etc.… This stuff interests me in a way that most people and most geeks certainly would never be interested in it. My wife is also not normal people on some level—she’s married to a geek who can take care of things like this for her. At the same time, she is 100% a computer user and has no interest in learning to program or learning to fight with programs that actively get in her way.
She also doesn't know Markdown as such. She knows a tiny subset that I have introduced to her that provides her with exactly enough to write her novel and for me to format it the way she wants it. (That's the paragraph rules, italics, and headings.) I've shown her a few other things for when she blogs—but even when she's using the Squarespace WYSIWYG editor, I often have to go in and edit the links to make them right.
There's a lot more that I could show her, but she neither has the time nor the interest to learn it.
Both of your examples--using spaces to center text and using a dozen newlines to position text--are based on the reasonable assumption of "what I see in my text is what I got when I formatted it": removing carriage returns entirely and pasting lines together to form larger lines violates that assumption. If the user expects that they can go to the second page by adding a dozen newlines, how could they possibly understand that newlines now don't mean anything at all? I will repeat: for decades, the enter key has meant a very specific behavior, and Markdown is the only setup I can come up with that either myself or my mother (or my grandmother) would have ever come across where the enter key doesn't cause at least a single line break.
Most people think that a block of text that is set together is a paragraph, especially as block paragraph format has become the norm for casual and business writing; indented paragraphs are the exception used when you have a layout process and not just depending on your word processor to get it right for you.
Email and HTML have not helped this; it is a common expectation that a blank line between two blocks of text represents the paragraph break—at least based on the emails that I've seen over the last two decades.
A fundamental philosophy of Markdown is that a Markdown document looks reasonable when sent via email as text or when sent as a formatted web page. That it's flexible enough to be usable for more than just email and HTML is a bonus.
It is also a common expectation that if you put a newline in an e-mail message, even without a blank line intervening, that the person who receives the message will not get the two lines pasted together to form a single line. The problem with the newline behavior of markdown--and to a very real extent this is the only such feature of markdown that has this bug--is that the text you are looking at looks nothing like the text that ends up being rendered.
My wife is not a geek or a programmer. She will, if forced, learn the intricacies of an idiotic programmer‘s decision to make something easier for him (and it’s almost invariably a him) in order to participate in a particular forum. This is why people put up with crap like bbcode every single day. That doesn’t mean she enjoys it.
Markdown works because it makes plain text readable and formatted nicely. Markdown works because it works just as well in a plain text email as it does in an HTML-formatted email.
It doesn’t work because some geek says that the people who use heavily geek-oriented sites (StackOverflow & GitHub, to use your examples) are in fact ”Normal People”. (And, just for what it’s worth, I do find the fact that I have to join all my hard-wrapped lines back together in SO & GH comments to be immensely annoying. At least their markdown parser for .markdown files doesn’t do this.)
So, no I am not flat-out wrong. I hear geek whining that parsing is made harder because of a design feature that is present because most people don't think about or want to think about “correct” line-endings.
Before you decide that I’m full of hot air, understand that I am working with my wife’s novel that’s written in Markdown so that I can parse it (possibly using an existing well-written-and-maintained parser like peg-markdown or peg-multimarkdown as an intermediate mechanism) and then transform it into the LaTeX formatting required for making her PDF output and the HTML formatting required for making her EPUB (and thus MOBI) output.
I am well aware of how ugly some of it is…but it makes it easier for her to write her novel without falling back to proprietary formats like .docx. I’m willing to deal with some pain as an implementor in order to minimize what she has to deal with.
As such, I don’t really have a lot of patience for this type of geek whinging.