Markdown: The Spec - it's coming and it's full of personalities
rumproarious.com
rumproarious.com
> 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.
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, ...)
Why them?
> A few markdown users (Doxygen, Github, ...)
Github are also implementors, hence the 2 or 3-years old "github-flavored markdown". https://github.com/vmg/sundown is their core library, with https://github.com/vmg/redcarpet as the ruby interface.
Jeff is already called the initiator of the specification although he just reacted to an email of David Greenspan. [0]
Without Gruber giving at least a nod of approval it will always have an "unofficial" feel.
[0] http://www.codinghorror.com/blog/2012/10/the-future-of-markd...
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.
Sounds like the market has spoken.
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.
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.
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]: https://github.com/fletcher/MMD-Test-Suite
[2]: https://github.com/fletcher/peg-multimarkdown/blob/master/ma...
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.
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.
That isn't the problem. The problem is that the software hasn't changed despite a number of bugs and the source code asking you to submit bugs.
'Deprecate or maintain' is not an unreasonable request of a public persona in the technology sector.
The person at fault would look like Gruber because the person at fault would be Gruber.
It seems to me that Gruber is adopting a 'Trotsky at Brest-Litovsk' position - "no war, no peace".
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.
By sitting on his high horse and proclaiming Markdown "works for him" and that his unspecified version with tons of nasty edge cases is canonical and that not only is it correct, he won't weigh in on any formal specification, he deserves to be case aside and have the project taken forward without him. He doesn't have a moral claim on something as simple and widespread as Markdown, and the fact that he finally has to deal with someone with similar blog reach going on a crusade is nothing worse than he deserves for sticking his head in the sand.
We could say Twitter was instrumental in organizing human rights causes in the Middle East and is now important to the human race as a communication tool; that said, if Twitter doesn't implement a feature that you want, you don't get to redesign Twitter at your whim and call it "New Twitter". You don't have a "moral claim" to write an open letter to @jack telling him why you're moving on without him.
You instead, like all rational people, design a competing service and let your work stand on its own.
John Gruber wasn't moving at all
The fact that you would bring up a hosted service that is extremely complex and costs tons of money shows that you don't understand where I'm coming from at all.
Markdown is not some amazing patented invention that John Gruber is entitled to perpetual dictatorial rights to forever. It's a simple derivative idea. It's out there in the wild and people make tremendous use of it, but none of this use costs John anything, and it's successful on the backs of many implementors, not just Gruber. It's all fine and good to say design a competing "service", but people do do that, and all it does is lead to yet another variant which further exacerbates the problem.
To be clear, I'm not saying John owes anyone anything. He's free to do or not do whatever he wants, but so are other people. Precisely what courtesy do you think he's due if he refuses to act in any reasonable capacity as a steward?
Some people want to make a Markdown spin-off: clean, standardized, tested etc. Nothing ever stopped them, but they could really use the prestige given by the original name.
The question is, does John Gruber have the right to that name? I think he should give it away, but if he won't, we probably shouldn't force him. I'd change my mind if someone makes a compelling case against trademarks.
He may have selected the particular syntactic conventions it uses, but the idea of parsing ASCII markup and converting it to a formatter's input syntax is much older. I'm aware of prior art dating back to 1986 or so -- and wouldn't be surprised if that wasn't the first either.
Completely wrong. Markdown is John Gruber's creation, and he is quite entitled to perpetual dictatorial rights forever (although copyright is limited, his estate is perfectly capable of renewing if he wishes). John Gruber is the copyright holder on Markdown (the idea and implementation, which most of this thread is overlooking). It says so right here:
http://daringfireball.net/projects/markdown/license
In the same license, it says:
> Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
Think about that while I repeat: You do not get to take over someone's creation and trade on its name simply because you are not satisfied with the stewardship of its creator.
What if he did ask Gruber privately, and the private answer then was the same as the public one now, giving Atwood the choice between disclosing a private conversation, giving up on this, or doing what he has done.
You've also invented a false trichotomy. Those aren't Jeff's only three choices. The fourth one you left out is "make something new without shitting all over Markdown".
We were given the story at face value, we interpret it at face value. We don't make up what could have been nor consider it acceptable to do so.
And then everyone would criticize him for NIH syndrome and needlessly fragmenting the markup landscape further. And they would be right.
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.
I don't think he'll be spearheading it by the end, for whatever thats worth.
Nevertheless, TeX might qualify as standard without commmittee.
There are others, but they did not get very far: http://kasper.phi-sci.com/tex++/ http://www.cucug.org/amiga/amiinfo/reviews/AmigaTeX.txt
[1] http://tools.ietf.org/html/rfc4627
[2] https://github.com/douglascrockford/JSON-js/commits/master
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.
"Say, so-and-so, you wrote a really nice book but there are several errors in the first edition. We think it's great and we love it, and we see the potential in your work, so we're going to rewrite a second edition by committee then sell it under your title and byline without your permission; that cool with you?"
To my way of thinking, Gruber comes out of this looking churlish and unhelpful at best.
The more pertinent question is why Jeff didn't make more effort to base this off one of the existing standardisation efforts.
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.
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.
I like Gruber's writing but if it looks like a duck etc.
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.
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.
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.
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.
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).
How would one reasonably convey that their formatter is markdown-capable?
It would seem to me that there's a significant difference between "Bloopdown - a Markdown compliant formatter for blah" and "Markdown v3.Ice-cream-pony"; the latter clearly trading off the name of the original, while the former is descriptive.
I'm not sure where "$X Flavored Markdown" falls on that scale, although I'd be surprised if something like GitHub hadn't sought permission or clarified the naming provisions.
[1] Having checked a couple of different projects, none of them mention having sought or received that permission, but I suppose they might have
Gruber doesn't have a trademark on the name "Markdown".
Nevertheless, http://news.ycombinator.com/item?id=4719809
> Makeup is a standardized version of John Gruber's Markdown. It has a formal specification, a reference implementation, and an exhaustive test suite. It also handles edge cases in a more sensible way than the original Markdown.
I think "Markdown" as a name can no longer be killed. The same holds for Markdown as a format. Alternate implementations will exist for a long time, and they will be referred to as "Markdown implementations", at least informally.
And so will whatever Markdown based "standard".
I probably crossed the line by suggesting "<qualifier> Markdown" as an official name. But as an informal name, it will be used, and John Gruber won't be able to do a thing about it.
By the way, I can't fathom why he wouldn't want Markdown spin-offs to be called "Markdown" as well. That name is his legacy. A standard would make sure to preserve it. As for his Perl implementation, it belongs to the museum, to be glorified as pioneering. But for actual use, Perl is now obsolete.
I like Showdown. :-)
I just felt the need to count something, don't mind me.
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.
I know the main thread is a very serious topic and there are passionate opinions. However, let's make sure we keep it light and civil.