top | item 4716322

Markdown: The Spec - it's coming and it's full of personalities

168 points| voidfiles | 13 years ago |rumproarious.com | reply

96 comments

order
[+] buro9|13 years ago|reply
As Gruber said:

> If you liked the original, which I created dictatorially, what makes you think you’d like a sequel from by a committee?

What dictator ever accepted that a group of people could do a better job?

The best thing for this new effort is to now embrace the new name (tentatively Rockdown), create the test suite and move on.

Markdown becomes one of the influencers in the footnotes, and hopefully we all get a highly consistent and implementable syntax and set of parsers that we can use.

My hope is that the "committee" isn't open to anyone joining it, or open to too much external influence. dgreensp (from Meteor) seemed to hope that too, and was reaching out to just the right people who could make a difference and whose views were valuable.

It's a shame Jeff felt the need to create such a spectacle when this could've just been presented fait accompli without having such a distracting spectacle.

dgreensp had it right though, but just didn't account for Jeff's character (although he clearly did account for Gruber's by not CC'ing him originally). Here's hoping that he now ignores both of them and pushes forward anyway.

Consistent tests that lead to consistent and implementable parsers... these are good goals.

If Markdown has to have a 5% change in it's DNA to make this work, then this is also a good thing.

I hope dgreensp isn't feeling too disheartened by the clash of personalities of Gruber and Jeff.

[+] Tyrannosaurs|13 years ago|reply
I don't think Jeff was trying to create a spectacle, I honestly think he's all about the community and was trying to be inclusive.

What both Jeff and Gruber bring to the party is profile. As the article points out, there are already variants of Markdown that fix many of the problems but it would seem none of them have gained traction.

If you can get the founder of StackOverflow / StackExchange and the original creator of Markdown on-board, there's a good chance that whatever you come up with will get some momentum.

Specifications and test suites are all well and good but if no-one uses them what was the point? I suspect Jeff, as well as being someone with a good track record on making stuff happen, was an attempted solution to that problem.

[+] qznc|13 years ago|reply
The best defense against "anyone joining" in my opinion is time and boredom. A standardization takes at least one year and while in the first week everybody and his pet wants to add their opinion those people usually disappear after a few weeks.

Personally, I have a wishlist of people who should sign the resulting spec. Jeff and Gruber, of course. Furthermore the implementors of solid and/or widely used markdown libraries (Pandoc, MultiMarkdown, Markdown Extra, etc). A few markdown users (Doxygen, Github, ...)

[+] chjj|13 years ago|reply
Sorry, creator and maintainer of marked here ( https://github.com/chjj/marked ). Is a repo for this spec up on github yet? I have a few obscure cases across multiple markdown engines that I've documented over the past year or so. Are only the top dogs (reddit, stack, github, etc) invited to join the development? A spec for markdown should be more than just what features are included (GFM tables, code fences, etc).

I hope development of this spec will be perpetual, similar to the WHATWG's HTML(5), if it happens at all. I've been dealing with markdown edge cases for more than a year now and I'm always finding new things I missed. It's really amazing how markdown is just a giant string of special cases and exceptions (this is probably due to the way it was initially written). The post by Jeff Atwood lead me to believe it's supposed to be geared more toward features as opposed to exact specifications. (I could be wrong about this).

Although I agree Gruber seemed kind of impolite and dismissive here, I think we should take things slow, and not rush into making a "spec" right away. The closest thing there has ever been to a markdown spec was Gruber's original test suite (on top of the markdown docs). It is actually kind of hard to track down since you can't find it on his website (I don't think I saw it mentioned in these articles either). My test suite is based on a fork of it ( https://github.com/chjj/marked/tree/master/test/tests ). That test suite covers no where near enough to demonstrate everything. I have a feeling this spec would take a long time to complete, especially if it's including more compex features like GFM tables and whatnot. There will also probably be a ton of arguing over which features should be included.

[+] voidfiles|13 years ago|reply
Hi, I wrote the blog post. I haven't been able to find any public discussion about a spec from the parties involved other then Atwood's blog post.
[+] zoul|13 years ago|reply
Wow. I think that Atwood’s proposal was an honest and good move, and a needed one. If Gruber feels like someone is twisting his hands by asking publicly, why not say so in a decent, grown-up manner? “OK, this makes sense, but I would have preferred you to write in private and not force me by writing an open letter.”

It’s a shame that so many technologies get shaped by egos instead of rational thinking. Good engineers should know better than that. If someone thinks the proposal for a spec plus a test suite is somehow technically flawed, say so and state the reasons. If not, let’s put the egos aside, take an extra dose of tolerance and work towards a common goal.

[+] zzzeek|13 years ago|reply
The best ideas and software are labors of love, but love is not very rational.
[+] Groxx|13 years ago|reply
The spec. The spectacle. This fall, only on Twitter!

I see the assertion that:

>MMD has a very clear specification. It also has an openly available test suite.

But the specification link goes to the help page [1] which as far as I can tell has no spec, just links to descriptions (Gruber's canonical blog post) and examples. Is there an actual spec for MMD, or are they claiming examples are specs?

[1]: http://fletcherpenney.net/multimarkdown/help/

[+] mvzink|13 years ago|reply
There is a test suite [1] available, though. Furthermore, the core of MMD is in the PEG grammar [2], which is enough of a specification for me. Compatibility of language subsets is even provable, so specifying a MMD-lite version (which might be the vanilla Markdown features) would be simple. On the other hand, I think its flexibility/sanity is actually a disadvantage for MMD: with the confusion and variability of a spec-free language that is still roughly familiar (i.e. Markdown), people seem more likely to adopt it with their own implementations and customizations.

[1]: https://github.com/fletcher/MMD-Test-Suite

[2]: https://github.com/fletcher/peg-multimarkdown/blob/master/ma...

[+] ianb|13 years ago|reply
Looking at the site, it seems like MMD is Yet Another Markdown Implementation. Which is a good reason to participate, and they might have some particularly good things to contribute (like a test suite), but it's not itself "standard Markdown". And even the test suite probably is overly specific and needs to be reviewed. For instance, it seems unlikely that balanced quotes would become a required feature (or at least to do so would require discussion).
[+] mathias|13 years ago|reply
> On Macdrifter Gabe Weatherhead said: > > > Nowhere does he mention MMD and it seems very unlikely that he does not know about it. [http://stackoverflow.com/questions/tagged/multimarkdown]

Wow. Just because there’s a Stack Overflow tag for it doesn’t mean that Jeff knows about it. It’s a community-driven site.

[+] nthitz|13 years ago|reply
As usual, Gruber seems like a bit of a prick.
[+] jspthrowaway|13 years ago|reply
Regardless of how much I dislike Gruber's opinions on occasion, Jeff Atwood is completely steamrolling him here and I really feel for him; it isn't an accident that Jeff blogged about it instead of asking him privately. You do that when you don't care either way what the person says, and it's a completely dick move. As another commenter pointed out, there is no winning move for John Gruber here. That's so obvious that I can't even give Jeff the benefit of the doubt that he overlooked it.

This entire experience has left me with a bad taste in my mouth about Jeff Atwood -- I sure hope he doesn't set his sights on something useful that I've created for the world. You can make whatever argument you like about Gruber not "paying enough attention" to his creation, but Markdown doesn't really need to be "fixed" or "standardized". I look forward to the, undoubtedly, dozens of vendor-specific extensions that will be necessary in the final product and we'll end up right back at square one.

Really, really presumptuous and poor judgment. Invent your own stuff and let it stand on its merits rather than trading on Markdown's well-established name by force.

[+] SuitAndThai|13 years ago|reply
It's not terribly hard to see how this whole thing came to be offensive to him. Jeff put Gruber in the public spotlight with a question like "give us permission?"

Gruber says 'Yes': whoop de doo

Gruber says 'No': Well, the person at fault looks like Gruber for being prohibitive of others trying to improve his work.

If his opinion was really to be respected, Jeff should've messaged John behind closed doors to see if he could expect his support or not on this committee, like John had any real say in the matter.

[+] gadders|13 years ago|reply
Pretty much. Why would the answer be anything other than "Of course! I'm really happy it's getting looked after now I'm busy on projects x, y and z."
[+] redbad|13 years ago|reply
Am I the only one who thinks Jeff Atwood is completely without the necessary credibility to spearhead an effort like this?

To say nothing of the time-tested idiocy of designing a spec by committee? IEEE telco protocols being the canonical example?

The whole effort seems like a terrible idea. Gruber's responses seem to me to be completely appropriate.

[+] petercooper|13 years ago|reply
Am I the only one who thinks Jeff Atwood is completely without the necessary credibility to spearhead an effort like this?

That's how things get done. People get credibility by standing up, leading, and getting things done in the way Atwood does. He didn't have the "credibility" to partner with Joel Spolsky and create Stack Overflow either but I'm glad Joel didn't see it that way.

[+] smackfu|13 years ago|reply
The problem is that the existing spec is something one guy wrote up years ago, and there are edge cases that aren't handled. There is also a buggy implementation from the same guy, also from years ago, that sets behavior for those edge cases, but also does stuff that isn't in the spec. So if you want to write "MarkDown", do you write to the spec or to the implementation or what? And Gruber's response is "I'm happy with it as it is", which isn't even an answer to the question.
[+] jamesaguilar|13 years ago|reply
Are there a lot of things that have been standardized without a committee being involved? I'm not aware of many. Designed, yes. Standardized, no.
[+] unimpressive|13 years ago|reply
> Am I the only one who thinks Jeff Atwood is completely without the necessary credibility to spearhead an effort like this?

I don't think he'll be spearheading it by the end, for whatever thats worth.

[+] brazzy|13 years ago|reply
So you think the only problem with this turning into personality-based drama is that it's the wrong personalities?
[+] mikeash|13 years ago|reply
It seems to me that most good specs started out as individual efforts, then once they reached a certain level of maturity and usefulness, got taken over by a committee to polish into a proper standard. For example, C and UNIX. And this is exactly the path that Markdown will end up following, if this effort is successful.
[+] mmahemoff|13 years ago|reply
For those who are saying Jeff Attwood posted this publicly out of nowhere, please read this from 2009:

http://www.codinghorror.com/blog/2009/12/responsible-open-so...

Now I don't know if he privately mailed Gruber prior to writing that, but to say it came out of nowhere is to forget several years of Stack's history with wanting Markdown to work like one would expect of a living open-source project.

[+] SuitAndThai|13 years ago|reply
>Nowhere does he mention MMD and it seems very unlikely that he does not know about it.

I would hardly expect Jeff to keep track and know of every topic in StackOverflow, let alone one with only 11 questions. Give the man some room to err.

[+] acabal|13 years ago|reply
Wow, Gruber is kind of a jerk. Or maybe that's a symptom of having conversations in 140 character bursts.
[+] DougBTX|13 years ago|reply
Jeff comes along and says, "I'm going to mock you if you don't let me take over your project," and Gruber is the jerk for saying no?
[+] Tyrannosaurs|13 years ago|reply
Jeff's side of the conversation was also limited to 140 characters and he didn't come off like a jerk.

I like Gruber's writing but if it looks like a duck etc.

[+] wamatt|13 years ago|reply
An ideological debate between collaborative vs dictatorial approaches, misses the point entirely.

Markdown was a good effort, but I've been feeling for a while now can do better. It's rather encouraging, that there are others attempting to design a new standard. Ideally it would be one that's easier to work with, and less idiosyncratic. ('new' of course, does not automatically equate to 'better' in this instance).

Furthermore, developing this should not require anyone to 'be someone'. While it may help adoption, if it's great, then by it's own merits, it could have a decent chance of succeeding.

[+] porker|13 years ago|reply
I still wish reStructuredText was considered - it's solid, adaptable and (for some reason) totally unsexy.
[+] calinet6|13 years ago|reply
This post has made me realize how dysfunctional twitter is for real communication. It's nigh impossible to follow or understand.
[+] jimminy|13 years ago|reply
That was the post's fault not Twitter's. I had to stop reading because I got so confused.

Tweets in that post start referencing Gruber's response, but Gruber's response wasn't shared within the post, when it should have been. And authorship of tweets within the post wasn't really clear.

Edit: Looking at it again, Gruber's response is there, but I missed it for the authorship issues.

[+] pohl|13 years ago|reply
Open letter to Jeff: SO is awesome, but long-in-the-tooth. What it really needs is an open spec for federated, gamified Q&A. What say you? I eagerly await your enthusiastic embrace.

FAQ

Are you asking for Jeff to open the SO service?

No, we only feel that the structure of Q&A and reputation management be federated and openly specified. But we do feel that StackExchange would be the perfect name for the protocol.

Are you making an analogy?

No, though we might be modeling behavior.

[+] tarabukka|13 years ago|reply
That's a poor analogy. A service and a way of formatting documents are completely different. Not to mention that most ways of formatting documents have a context-free standard already.
[+] davidgerard|13 years ago|reply
I think of the MediaWiki wikitext specification and how that started as a simplification of HTML and was incrementally extended into a barely-computable disaster that, quite literally, put back a Wikipedia visual editor about six years.
[+] mrpsbrk|13 years ago|reply
We all have pandoc, and <3, and we can all choose between RST and Markdown, and we all know RST is a better spec (as in, there is one), but we keep on coming back to MD.

I suspect the reason is that MD does conform to the end-to-end principle. Having a spec is, itself, putting too much intelligence in the pipes. Not having a spec leaves all the intelligence into the ends: The person who's writing (which is very bad at following rules and specs) and the parser program (which can be as elaborate as needed).

That is why no spec (and Gruber's attitude) is a feature.

[+] loup-vaillant|13 years ago|reply
Let's imagine the worst happens: John Gruber explicitely refuses to give up the name "Markdown", and to bless any standardization process. Which would then need another name.

Ideally the name should be clearly different than the original one, and clearly signal the underlying spec is the same, only better (of course, the actual spec better live to that expectation).

"Rockdown" sounds cool, but it doesn't work. Sure, it rocks, but it's doesn't say "you should use me, not my obsolete father".

An obvious choice is "<qualifier> Markdown". For instance, "Clean Markdown", or "Standard Markdown". We may think that's cheating, but we already talk about "<website> flavoured Markdown". There will soon be another one, that explicitly pretends to be the flavour. Better let the name reflect that. As for the actual Markdown, I guess people will start calling it "Original Markdown".

Now there's little chance, but maybe, maybe John Gruber will still shout that his original version is the standard no matter what. If monsters like Stack-overflow, Reddit, and GitHub make a good "std Markdown" anyway, no one will believe him.

Anyway, enough with the name. Let's just write that BNF. A reference implementation in something like MetaII or OMeta will then be a piece of cake. If I ever do that on my own, I'll call it "Strict Markdown". Because I don't like when obvious errors in my Markdown code produce unintended output instead of an error message (major culprits are links and emphases).

[+] ramses0|13 years ago|reply
Showdown. Teardown. Throwdown.

I like Showdown. :-)

[+] antihero|13 years ago|reply
Did everyone forget about RST? That said, RST is a bit complicated seeming.
[+] klibertp|13 years ago|reply
I did not, but I'm a Python programmer. It seems too few pythonistas participate in this thread to make a difference - RST was mentioned just 3 times. And Textile was mentioned once, although not as an alternative but as an inspiration for Markdown. MediaWiki syntax was mentioned once, but described as crap.

I just felt the need to count something, don't mind me.

[+] grannyg00se|13 years ago|reply
I'm not 100% convinced that one global Markdown spec is going to be of net benefit. I'd be fine with pockets of specialized Markdown flavours. For example, I don't see how merging whatever is in Fountain (for screenplays) into a common Markdown spec would be useful for general use.

On the other hand, having separate flavours for every different online code repository site, or blog engine, is probably too far in the specialized direction.

I think it might be easier to start with standardizing in small groups (eg: GitHub/StackOverflow/CodingHorror) and slowly globbing other variants into the standard. Perhaps that is the direction this will end up taking. So far I can't see what is going on other than conflict.

[+] loup-vaillant|13 years ago|reply
A possibility is to separate the core from extensions. The idea would be for everybody to observe the core spec, and clearly signal any extension. If an extension makes consensus, it could even be standardized. The most widely used standard extensions could then be merged in the core spec. The other, more specialized extensions, would stay in their separate standard.