OMG Markdown
spinhalf.net
spinhalf.net
Jeff Atwood and co have done nothing but praise Markdown. They've worked really hard to flesh out a starting point for a standardized Markdown implementation. I think the word they chose, "Standard" makes perfect sense here.
Instead, both John Gruber and Marco Arment are acting super immature about the whole situation. Reading their Tweets today I keep imagining them stomping their feet on the ground because someone did something they didn't approve of.
I don't mean to add fuel to any fire, but I really think we shouldn't be validating their overly-dramatic behavior. I'm sure that Gruber could have politely sent Atwood an email or even public tweet asking that his project reconsider a better name, maybe even calling it something like "Rockdown." From everything I've read so far, Atwood seemed to want Gruber on board but got crickets instead.
EDIT: To be really classy, after the rename, redirect standardmarkdown.com to Gruber's Markdown home page.
And he utterly refuses to do anything to actually improve the clarity of the original document and make it easier and more obvious to determine how parsers should behave.
> Atwood and company should just rename their spec and be done with it.
It's kind of upsetting that they didn't. If they'd chosen another name, there'd have been no controversy.
Remember Hudson? Maybe you've heard of Jenkins? Exactly.
All the big players who make use of Markdown are on board with this. If they all adopt this "standard" whatever it's called, it will effectively spell the end of mass usage of "Markdown" as it stands now.
That's why this keruffle is so stupid. Then again, renaming will take away the attention from the stupid yelling over the name, so maybe they should just do it and deprive them of it. Call it Sparkdown or Harkdown or something so the connection is still apparent and move on.
I doubt that. RSS is still widely used even though Atom has the more precise specification.
> Call it Sparkdown or Harkdown or something so the connection is still apparent and move on.
FWIW, Gruber has explicitly endorsed this approach: https://twitter.com/gruber/status/507590561172176897
And while I'm aware he wants them to do their thing with a new name (an argument I can agree with for sure), I think he'd probably still complain about a connective name (e.g., Sparkdown). I don't know for sure, but given his posture to this whole thing throughout the process, it seems likely. At that point, though, I think they could justifiably just give him the proverbial finger. :)
EDIT: Turns out I was wrong. He gave them a list of similar names (with Markdown in them no less!) in a recent e-mail.
Except when "X" is legally a trademark, its not uncommon for "Standard X" to be defined by an entity independent of the creator "X" without needing approval from the creator of "X".
Where "X" is a trademark (e.g., "JavaScript"), things are a little different, but I don't see a convincing argument that Markdown is Gruber's trademark.
There are only two words and you picked the wrong one. The issue is about the word (and apparently, trademark) "Markdown". They can call it "Standard Rockdown" if they want.
> I'm sure that Gruber could have politely sent
Come on. Gruber said he didn't want people to use the name and instead they should create their own flavor with their own name.
> From everything I've read so far, Atwood seemed to want Gruber on board but got crickets instead.
Also don't see how an invitation to the original Author to join your new initiative should legitimize it in anyway.
1. Markdown had a design and ecosystem which largely let it win an overwhelming majority of mindshare against other lightweight markup contenders.
2. As the ecosystem of websites, apps, and users of Markdown has grown so has the desire to have Markdown participate in workflow with a lifecycle outside of more than one app. In all likelihood that means there's more than one Markdown backend involved.
While Markdown may be "done", it no longer completely "just works". This brings us to:
3. As multiple different standards efforts[1] have said, they'd like to solve the interoperability issue for their apps and Markdown's users. So, that generally means a standard.
Markdown has been a de facto success with wide adoption. This creates a sense of community ownership. I'm unclear as to what's really going on with @gruber, but I can't wrap my head around his apparent failure to sensibly interact with the community around Markdown that wants to address these issues. Even if that interaction were just "I don't want any. Please rename and fork." (EDIT: apparently that has in fact been said[2].)
[1] At least: the W3C group (now defunct) and Standard Markdown.
Knuth also protected the name TeX. There have been a number of important packages that run on top of TeX, for example LaTeX and ConText and even enhanced implementations of TeX itself, like LuaTeX, pdftex, and xetex; however, only Knuth's TeX can be called "TeX".
It seems that this has worked out for TeX, something similar could be done for Markdown.
Further, I don't really want to write TeX. I want to write LaTeX, and only care about a PDF output, which isn't what the original TeX program specializes in at all.
Standard Markdown is a breath of fresh air that ensures the continued success of Markdown, just like LaTeX did for TeX. Of course, only a few websites have adopted it for now, but I would not be flabbergasted if I started seeing more websites adopt it.
TeX is dead. So is Markdown. We have a new king.
While I wouldn't say that a project is abandoned, I would say that a project is broken if it's a file format that has many ambiguities in the spec, and bug reports to the author/maintainer are all marked as WONTFIX. I really wouldn't describe that situation as "doesn't evolve" either.
Take the Linux kernel for example. If Linus Torvalds decides to abandon all support for architectures other than MIPS in the Linux kernel, would you not consider it fair game to criticize his stewardship of the Linux kernel? Or is all criticism silenced by, "well, it's my project so I can do whatever I want to do?"
This is also a little more ambiguous because Markdown is a loose file format spec rather than a project with "actual" code, so no one is really "submitting patches."
He doesn't say that, I don't say that, he says that it doesn't fit with his vision.
> Take the Linux kernel for example. If Linus Torvalds decides to abandon all support for architectures other than MIPS in the Linux kernel, would you not consider it fair game to criticize his stewardship of the Linux kernel? Or is all criticism silenced by, "well, it's my project so I can do whatever I want to do?"
Non sequitur. He didn't remove nothing, he created a syntax, he said that he is more attached to it than to its eventual ambiguities and therefore consider his job done. That's not bad stewardship it's simply having an opinion, a vision. And I repeat if people disagree they fork and use their own name as long it doesn't bother Gruber. And to keep your example of Linus Torvalds, you can check, he owns the name Linux because it originally was his project so he might enforce his rights as he sees fit.
There are many long-standing forks of the Linux kernel that don't change all of the source code to remove the name "Linux". I don't see Linus pitching a fit over them.
> And I repeat if people disagree they fork and use their own name.
People have forked it (e.g. MultiMarkdown, Github flavored Markdown), and Gruber hasn't complained about them (at least not publicly).
Not true, actually, I believe he's made allowances for other implementations to be called that IFF they implement it correctly. I still believe it's controlled by him, but it's not a completely frozen name.
In my mind, the problematic part is of "Standard Markdown" is "Standard", not the composition of "X Markdown". "Standard Markdown" makes it the real Markdown for most people, and that is the problem, that it feels like you're trying to steal the work from the original author, not build on it.
Perhaps that's because Dr. Knuth actually standardized TeX, unlike what Gruber did with Markdown.
http://blog.codinghorror.com/standard-markdown-is-now-common...
What do you do when the founder of a project becomes an impediment to its progress? Gruber is clearly the creator and popularizer of Markdown. OTOH, he's been uninvolved in anything related to it for years (AFAICT).
The corollary to this question is to what degree the founder of a project "owns" aspects of the project (code, name, etc.) after they drop out. I'm not asking about legal ownership but rather moral ownership.
However, I also question the success of this initiative had it been given another "flavor" name.
Edit: Not sure if this is the case after seeing this: https://twitter.com/gruber/status/507570504279293953
Naming it something different is very simple. Really, very simple.
People are acting like Atwood and company are just trying to bring a little sanity to the project when it seems pretty clear (to me anyway) that it's really much closer to usurping the project entirely away from Gruber.
Further, he has dumped the project and appears to be completely uninterested in fixing, enhancing, or otherwise having much to do with it besides twitter spats.
In computing,"Standard X" almost never means "The One True X", it generally means "the variant of X that implementations claiming to support Standard X are at least making some gestures in the direction of supporting, but which many of them still won't completely and which, for many practical uses, you'll need to go beyond anyway in manners specific to your application and the particular implementation you are using."
So, these things happened:
- Gruber announces Markdown, and releases an implementation in Ruby and some basic documentation
- Someone ports Markdown to a different language. -> is it okay to call it Markdown?
- Said implementation differs from the original implementation in some minor ways, although it still matches the documentation (which is vague enough). This might not even be intentional; it wouldn't be the first time any software has had bugs. Or it might be intentional fixes of actual bugs in the original Ruby implementation of Markdown. -> is it okay to call it Markdown?
- Other people port Markdown to other languages. Said ports become more popular than the original Ruby implementation, such that pretty very few people who claim to use "Markdown" have actually used said original Ruby implementation. These ports are all subtly different from each other, although they still match the documentation (which is vague enough).
- A bunch of people decide to create better documentation (since said original documentation has been vague enough to cause problems with interoperability) -> is it okay to call it Markdown?
After answering these questions, I'd encourage you to replace "Markdown" with "HTML", and imagine how that originally went down.
Do you think NetScape should have claimed to support "NetScape-flavored HTML" rather than "HTML"? Do you think the WHATWG should have announced "WHATWG-flavored HTML" rather than "HTML5" in response to lack of action from the W3C (actually a very similar situation to what happened here).
Look at the MySQL bifurcation. We don't have "MySQL++" by Percona and "MySQL Redux" by Monty — we have entirely new names. We don't see companies going around calling themselves "MySQL Labs" just to co-opt the good will of a pre-existing name. Oracle would sue the name infringers into the stoneage (temporal lawsuit warfare; very advanced move).
Now, I doubt teh groobz will lawyer up and smack down (unlike Oracle), but if you are creating something new using a pre-existing name just so you can exploit existing popularity you didn't create yourself... that's just a dick move.
Are Atwood et al. calling it "Standard Markdown" because they don't have enough of their own popularity, and feel the need to appropriate someone else's decade-old coolness in order to be recognized as significant people because they can't accomplish that in their own right?
Or are Atwood et al. calling it "Standard Markdown" because they know quite well that, given the massive proliferation of Markdown varieties all of which use the name "Markdown", naming it anything else essentially guarantees that because no one will ever hear of their effort, and therefore no developers will ever use their standardized variant, no matter how much less painful doing so would be for them and their users?
The words "Standard Markdown" sound like it is the standard from the owners of the Markdown. Also, from the "everything has happened before" mindset: https://twitter.com/peterseibel/status/507601508561457154
If they called it "Syntaxx, a flavor of Markdown that 9 organizations agree to support to enable text markup interop," that would be okay. Just like how "PerconaDB" is "PerconaDB, a mysql fork that's still protocol compatible with additional performance improvements."
If they called it "Syntaxx, [twenty more words that no one cares about]", no one will hear of it, and no one will use it. The words around "Markdown" might be negotiable; the presence of "Markdown" itself makes or breaks the viability of the project as a whole -- without that, Atwood et al. might as well not bother.
"Standard X" sounds a lot more to me to be "what a an interested committee did to X after it became popular and multiple different implementations of X existed, quite likely with only a distant, if any, connection to the creator of X".
I mean, if someone says "Standard Pascal" or "Standard SQL", or "Standard HTML", I don't assume it came from the inventors of those technologies.
Formalization of a grammar isn't "design by committee" (and in any case, this work in particular certainly was not). Formalization sets a logical, mathematical foundation for something that has thus far been a rather back-of-the-napkin, cowboy coded, cargo cult kind of thing. Could you name all the terminals before? I couldn't.
Markdown is implemented in hundreds of places (conservative guess). Discounting marked deviations and well-known dialects, it is a nontrivial task to ascertain whether a given Markdown implementation will produce the "correct output". What is correct output? Our ability to express or ascertain that is complicated by the fact that some rather archaic perl code [1] somehow holds the dubious distinction of being the de facto standard reference point for Markdown. Perhaps it was chosen as such on account of being the first mover, but probably its because nobody else had spoken up yet. (We're playing catch up now.)
"Implementation defines the standard" is a poor substitute for formality and is the result of intellectual laziness. (Hello PHP prior to HHVM.)
How did any of us effectively communicate what we thought correct meant? I feel a lot of our consensus was arrived at by enumerating all the examples and complex edge cases we could think of. (There's an idea that'll cover all the bases, yet it still maintains the niceties of being wonderfully concise!)
A formal grammar, as it turns out, is rather usually concise by nature (at least for the types of languages we care to design). To the attentive and deliberate thinker, a grammar's rules can be beautiful. A random mental walk through a complex repeating parse tree fills the mind all at once with intracate patterns and possibility. These are structures you can truly grok. With just pen and paper, or a standard text editor, you can easily define how the edges and vertices of an arbitrarily complex, infinite graph can connect. It's really kind of special, and definitely cerebral.
So now that we have a Markdown grammar to look to, libraries now have an easy model for attaining consensus agreement. Nobody is going to force anyone to change their current implementation or preference. If you like the one you've got, that's perfectly valid state to be in. If your only objection to the new formalization is because it was named the so-called "standard grammar," it's just a name. A silly old case of primate chest pounding, at that. Great ape problems.
Despite all the drama, this spec will probably not be the final end-all, be-all of 80 character wide expression. I can picture infinitely many such grammars, each one being just a little more absurdly named than its predecessor. Nothing is stopping you from forking "standard markdown" and calling it MarkyMark or something.
I still can't believe none of us ever noticed there wasn't a grammar for this. Especially given we communicated all of it through bloated Perl code shared from a zip file.
[1] https://github.com/rtomayko/shocco/blob/master/Markdown.pl
(Sorry for the non-canonical link; I'm on my phone. Google search results mention a downloadable on Gruber's site, but I could be wrong.)
The canonical example would probably be the NetBSD/OpenBSD split (by Theo de Raadt) or the emacs/xemacs split. Or the vim/neovim split.
> 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.
> So does MultiMarkdown. So does Github Flavored Markdown.
This is what I don't understand about this uproar. The word "markdown" has been used in multiple products and offshoots from Markdown, and no one has said a peep. What makes "Standard Markdown" different from the existing products?
"Comment Markdown"? "Code flavored Markdown"? "Startup Flavored Markdown"? "Startup Markdown"? "Standard Flavored Markdown"? "A Standardized Implementation of Markdown"? "Specced Markdown"? "The Standard Dialect of Markdown"? Are any of these acceptable?
Why do these folks, alone, need to remove the word "markdown" from their name? And is it specifically the word "Standard", or perhaps the lack of a "flavored"-type word, that is grinding gears?
I think this is it. I think Gruber sees "Standard" as implying ownership or original or universal [1]. I think naming it another "flavor" would have been completely fine with him [2] [3].
[1] https://twitter.com/gruber/status/507562824311508992
1. This is a project designed to become the new Markdown spec, thereby wrestling control of "Markdown" from Gruber.
2. This project was developed in-concert with most of the big sites that use Markdown (StackExchange, Reddit, Github), and therefore has enough weight behind it to push it as the defacto standard.
3. The name "Standard Markdown" is generic enough to possibly cause brand-confusion whereas "MultiMarkdown" and "Github Flavored Markdown" come off as offshoots of The Original Markdown(tm).
Personally, I think that Gruber's mostly upset that this has the potential to become the defacto Markdown while still using Markdown in the name. If (e.g.) MultiMarkdown was in a similar position, he would probably be pitching the same fit.
[ I really don't like the name "Standard Markdown" in general. I prefer a suggestion I saw elsewhere, "Common Markdown." ]
So both product names derived from "Markdown" may break some permissions, but only one of them makes somebody care of it. So what's the difference between them? I find it pretty understandable. Say you invented ice-cream and you have the same careless approach to use of its name. It's "Open source product". It becomes popular. So when some guy starts making "cherry ice-cream" you don't think it's bad — it's not the same product that you make, but it clearly resembles it, so people understand what they are going to consume. And you don't mind it, such a nice guy you are. Some other guy living in Hampshire starts selling stuff that he names "Hampshire ice-cream", which you can think is also ok. After all it's pretty natural, to call "ice-cream" something, that very much resembles that very stuff widely known as "ice-cream", but his ice-cream might be somewhat different from yours so it's fine to give it distinctive name.
But then somebody starts making one of his own, which he calls "Real Ice-cream". It's also "Open Source" but its recipe is very detailed and everything that doesn't comply it cannot be called "Real Ice-cream". But "real" isn't only name of his product, it's some natural word and from now on it's implying that every other ice-cream recipe in the world — including your own, the original one — isn't "real".
With "Standard Markdown" it's even worse, as "standard" is pretty clear word in the tech-world. And now when some bunch of guys try to "standartize" something that isn't ultimately their it's only natural that somebody doesn't like it. It's not like markdown is born yesterday, it's widely known thing and it has nothing to do with all these ambitious guys like codinghorror. If you wrote your own markdown compiler it was just some markdown compiler. You like how it works, maybe somebody likes it too, you don't really want to change anything. But from now on it's some non-standard markdown compiler. Must be pretty offensive for somebody.
Marco: What if they just make their own thing,
give it their own name, and see if it catches on?
[Gruber]: Exactly!
https://twitter.com/gruber/status/507590561172176897I can see why Gruber is upset, but why does anybody else feel the need to be upset for him?
They may very well end up changing the name, but that doesn't change the fact that this project is basically Markdown++.
Everyone knows Linux was inspired heavily by UNIX, and yet, it's called Linux instead of "Standard UNIX".
When I first encountered Markdown, almost a decade ago, I loved it. To say that I now hate it would be going a little bit far, but only a little; I'm awfully close to that.
This change in opinion has occurred almost entirely because, every single time I encounter something that "accepts Markdown", I have to spend some time investigating its documentation to find out what ill-specified sui generis variation of Markdown it supports, and then, usually, also poke at the implementation in order to find out where it differs from the docs. Every single time.
This would not happen if Markdown were well enough specified that developers could just drop in a parser library and be done.
Gruber's currency? Everyone knows he invented Markdown. Everyone loves him for it. And everyone who has ever dealt with Markdown more than once knows that Gruber didn't take it far enough. He's had ten years in which to do so, and he hasn't done it. Now the community, led by Atwood et al., is acting to redress the lack.
That Gruber should be upset by their calling their standardized Markdown "Standard Markdown", when he's had and squandered a decade in which to address the plainly evident need for that very thing, leaves me utterly unmoved. If it bothers him badly enough, let him sue! And we'll all see how well that works out for him. Otherwise, his "currency" would I think gain more from almost any other course of action than further prolonging the exercise in sour grapes which his Twitter appears to have become.
If "Markdown" was just one ergonomic markup syntax among many, then yes, a hostile name-takeover would be completely a dick move. However, Markdown won; there's a bazillion slightly-incompatible implementations, and it's not Gruber's baby anymore. Hundreds if not thousands of people have invested a part of their life into Markdown, either by writing an implementation, using one in a larger product, or just taking the time to learn the syntax.
While Gruber is the original creator of Markdown and deserves respect for that design achievement, the Markdown community is much, much larger than he is and when the two come into conflict, it's not surprising that Gruber loses.
I might even have some sympathy for that perspective, if not for the fact that his disinterest in doing anything with Markdown has resulted in such a broad range of subtly incompatible forks, thus complicating many people's lives, mine included, for what strikes me as frankly no good reason at all.
Let him sue, if he likes, or let him keep unfavorably impressing people with public bitching and moaning -- or let him do the sensible thing, if he hasn't yet entirely foreclosed that possibility, and try to walk back his recent bitter outbursts in favor of a public opinion on the lines of "I sure wish I'd had the time to do this sort of thing before now! But I'm glad to see such a strong community carrying forward the idea I came up with so long ago." But to leave Markdown in the dust for a decade, then get all grabby again all of a sudden for what look more and more like the most transparently shallow of reasons, is just churlish.
That others disagree is not an argument for his having abandoned his ownership or rights to the name.
Want to write some Markdown? Do you use vanilla markdown, github markdown, stackoverflow markdown, PHP markdown, a markdown parser with extensions? What we don't need is yet another fork but a standard. Gruber doesn't want to step up to the plate? Fine. The community will. Gruber doesn't like the name? Deal with it.
He gets to decide what the name is, what projects may use that name, and how they may use it.
"New syntax, new name. That’s all I ask." https://twitter.com/gruber/status/507651498692849665
Regarding the name: "It more than just suggests control, it asserts control." https://twitter.com/gruber/status/507557595906052096
Markdown interoperability is not now and has never been a goal of Gruber's -- indeed he seems to celebrate the lack of it. Use of the name "<adjective> Markdown" for incompatible derivatives has been accepted for many years. So replacing the word "Standard" with an explicit description of the difference ("Interoperable") between plain old Markdown (whatever that is, since it's not well-defined) and this must be OK, right?
> They’ve done more than “formalize”. They’ve changed the syntax. New syntax, new name. That’s all I ask.
Read the foreword to http://flash-gordon.me.uk/ansi.c.txt , and it sounds very similar to the Markdown issue. C is still called C, regardless of what ANSI (and later ISO) did to it.
I didn't see any mention of Standard Markdown being an modification to the original Markdown code base.
He didn't complain about MultiMarkdown or GitHub Flavored Markdown, because those examples of precisely that evolution. The problem with "Standard Markdown" is that it implies "the one true way", and gives a (theoretical at least) power to a relatively small group to dictate what is Markdown-kosher and what isn't.
“I immediately loose my train of thought.”
Me too, man. Me too.
MacFarlane, GitHub, meteor, reddit and Atwood/stackexchange can let the world know that "markdown" is now legacy and the future lies in Marky
got pissed over a name because others do a better job than you at maintaining it is a dick.
I'm with Jeff and the gang on this.
Gruber apparently directly disagrees with this:
I just thought it was interesting that the OP's quote was in direct contradiction to a quote Gruber Tweeted yesterday, and thought the Tweet and its context was worth including here, considering it wasn't cited in the blog.
I added support for using pixel shaders on emulated video game output, but rather than have separate files for the vertex and fragment shaders, I put the pair into an XML file, and also included settings for min/mag filter, texture format, etc there as well; so that it was all self-contained as a single file that you could paste on a forum.
I released this, and some other people liked the idea, but wanted it to support multiple shader passes. Which was great! I wanted to add this, but had a lot of much higher priority items on my plate and couldn't get to it quickly enough.
So they went ahead and added multi-pass, texture lookup, reflection, and a whole bunch of other neat features without consulting me, released their own software and then called it "version 1.1", while continuing to support my spec as "version 1.0"
The results were obvious: lots of users coming to me to ask why their XML shaders weren't working, which turned out to be because they were using a different standard. Shader writers began targeting 1.1 syntax even without using any additional features, which needlessly took away compatibility with my own program.
This wouldn't have been so bad, I could have just supported their new spec once I had time, except that they took the spec in a direction I felt was flawed and against the spirit of it. Referencing external texture files which created file naming conflicts (shader A and shader B both loading their own separate versions of texture.png), losing the ability to post them as inline text on forums, having very inconsistent syntax to what I had been doing, features that were vague in their combinatorial effects, etc.
I ultimately had to abandon my own (retroactively named for me) "version 1.0" specification and start on an entirely new format to resolve that ambiguity.
They were certainly in the right and clear to do the work that I wouldn't, but I do regret that they took my name, and ended up causing a lot of confusion for end users. And now I worry about this happening to all of my formats (I have a markup format, a delta-based binary diff tool, the new multi-pass shader format, and a few others.)
I could try and come up with some licensing term that would most certainly get all of my software kicked out of Debian's main repositories; but there's really no way for me to stop anyone from fragmenting my specifications again, as I simply don't have the money nor desire to trademark things and attempt to sue people for enforcement.
So, with that said ... I'm with John Gruber on this. If he is asking them to change the name, they should change the name. It's just the polite thing to do. Even if Gruber is a terrible steward, he created it. Keeping Markdown in the name is clearly just intended to capitalize on the success of the format, which they themselves did not earn.