Responsible Open Source Code Parenting
codinghorror.com
codinghorror.com
Atwood's account of history here is misleading, judging by the mailing list he quotes. He is unfair to accuse Gruber of being "passive aggressive". I'll talk at the end about why the accusation is part of the gratis labor movement.
The discussions started in February of 2008. Joseph Lorenzo Hall asked if anyone has considered forking Markdown.pl "hopefully with Gruber's blessing".
In reply, Tomas Doran mentions that maintains a CPAN module called Text::Markdown and that he would like this to be the fork or, "if [he] can get John to agree and approve - [to] become the 'official' maintained version which is linked from daringfireball [Gruber's web site]."
In short, the question arose which we can paraphrase: "Would Gruber give his name to bless Text::Markdown as the successor project of his earlier work?"
Gruber responded fairly directly that he does not like the way Doran has maintained Text::Markup (and he gives technical reasons why). He asserts that he would not like that to become the 'official' version of Markup.
From that, Atwood somehow gets "passive aggressive".
Why is that a "gratis labor" play? Atwood asserts that Gruber now has a problem and that he would not have that problem if between 2004 and 2008 he had given away labor to manage an open source community. That Gruber did not give away such labor makes him a "negligent parent". Evidence of the bad parenting is to be found in Gruber's alleged bad attitude, visible in his "passive aggression".
We ought to ask what effects such pronouncements have, especially coming from a prominent blogger. I can think of two that are quite conceivable (and jive with my own experience): First, let's suppose that Gruber decides to apply for a job somewhere and happens to mention on his resume that he has some experience with free software or "open source" projects. Recruiters are often advised to scan for articles like Atwoods to weed out (or in) resumes. In this case, the accusation that Gruber is a "negligent parent" with a bad attitude hurts his chances of getting hired. It especially hurts that this accusation comes from Atwood. Second, consider what happens if Gruber wants now to start a project and solicit public volunteers. The first time he makes a project decision someone doesn't like, there's every chance that someone opposed will say something like "This is no different from how Gruber handled Markup.pl. We should just fork away from him and move on." Yes, that kind of thing really happens.
So the Atwood's of the world are creating and helping to enforce a set of social norms within the so-called "open source community" in which failing to give away labor upon demand, or standing up for a technical decision when it is inconvenient for others - these are grounds for marking and ostracism.
Quite absent from Atwood's hit piece is any consideration of why Gruber was inactive on Markdown.pl for those years or why declining to endorse Doran's fork might be quite appropriate. Atwood just wants to generate some smoke, it seems.
Turnabout is fair play? Perhaps Mr. Atwood should next answer the question "When did you stop beating your wife?" ( http://en.wikipedia.org/wiki/Loaded_question )
That confused me too. Exactly how is "I despise what you've done with Text::Markdown" passive?
In short when John Gruber gives the code out under a BSD thatis a gift to whoever wants to use it - and it gives them near-complete freedom to use Markdown however they like. I don't see why on top of this gift he is in any way obliged to provide 'leadership' or 'direction'. I don't really see why its even required. Anybody can feel free to come in, fork the project with their own modifications - and if its popular then they can be the leader or their fork.
(And I think anyone seriously using markdown has to conclude he did essentially release and walk away from the perl implementation. Aside from it being 6 to 12 times faster, there is no reason now to use it rather than the Text::MarkDown in CPAN -- which fixes its many, many, crippling bugs and maintains perfect compatability.)
However, somehow or other, we've gotten the idea that Gruber is responsible for at least the ongoing development of the spec. Atwood excerpts a recent mail from Gruber where he's clearly still trying to do that. I sorta get the impression Gruber wants to keep the markdown spec exactly as it is, although the last time he surfaced on mailing list it was to say that a proposed addition looked like a (rare) good idea.
At least the internal underlines issue makes markdown a real PITA to use for any technical writing, and really needs to be fixed in the spec. The URL thing is debatable; while Atwood's newline suggestion misses the point of markdown. The risk is clearly that markdown will fragment with different sites handling these issues differently. There are many better ways to manage specs than what Gruber is doing.
Decades? I doubt that.
And no, you're not being too harsh. In fact, I think you might be too kind.
By the way, what's with the assumption that github is the one true way? Is it that much better for you? I have code on Github, SourceForge, google code and while Github has some UI goodess, the windows tools for it are quite raw. The others also work fine. If you like DVCS, Sourceforge and Google code both do Mercurial
Couldn't one do what you're describing with a Google Code project that uses Mercurial? Or at bitbucket.org using Mercurial? Or at launchpad.net using Bazaar?
I don't think StrawberryFrog's question has been adequately answered: "what's with the assumption that github is the one true way?..."
(disclosure: I work for GitHub)
I'm pretty sure the question was meant a bit more loosely, not as a direct challenge to someone's post here, but to the general prevalence of a meme that roughly fits that description. I certainly wouldn't suggest grepping for that phrase as a method of getting a feel for its virulence out "in the wild".
Instead, look or tacit assumptions, misattribution's of value, and conspicuous omission of alternatives. I guess good, old-fashioned "reading between the lines" is what I'm suggesting.
A pretty dramatic illustration popped up on my RSS reader this morning. Someone submitted a HN article with the title "Jeff Atwood's open source contributions", which was nothing but a link to http://github.com/codinghorror - which currently shows zero projects. It was quickly flagged here at HN, but it lives on over at Reddit.
http://news.ycombinator.com/item?id=1023696
The tacit assumption here is that if Jeff has zero repositories at GitHub, then he has made zero open source code contributions.
I don't mean to detract from how cool it is that your product is so successful. (Kudos!) But its fans often have a creepy blind spot to alternatives, in my opinion.
Not to take away from GitHub being good, but I'm asking what makes it seems that good.
I put a new code on Github and it seems all right. But I'm not going to move code that's been hosted elsewhere for several years even if something slightly better comes along. Consistency is a virtue.
No, I don't think anyone did. pohl's comment that it's meant about "the general prevalence of a meme that roughly fits that description" is about right.
because of the general uptick in contributions when code is hosted there.
Github is a slick and friendly home for open source, even if the Windows Ui tools for git still need a lot of polish. But do you have numbers to back that idea? It could well be true, who knows.
The attention and effort others invest in your project needs to be respected. You do have an ethical obligation to follow through on the project, at least in my view.
Feeling no obligation towards your user base just because one of the price dimensions (money) happens to be 0 is an irresponsible attitude.
People are constantly changing directions, and constantly trying out new things which may or may not be useful to them in the future. We're all better off if that code gets released. In turn, we can't expect people to support code they may no longer use, or may not have ever really cared about in the first place.
It should be clear that running an open source project is something completely different. If you make an attempt to start a community, you probably should keep up with that community, or at least responsibly exit it. But people usually build communities around things that are really important to them, or that they have an ulterior motive for advocating (not necessarily a bad motive, just one beyond pure open source).
From where I'm sitting, if Gruber isn't adding anything to the community, he should have been made irrelevant by that community.
Click on anything that's not a JavaScript project, and you get a broken link. Would you rather he spend time fixing them up, or would you rather he spend time improving JQuery?
It's great that this guy works on JQuery, but I think the minimum that should be expected is to properly tie up loose ends: Fix broken links, make sure it's clearly stated that the code in question is considered done (feature complete, unmaintained, etc). Officially hand it off to someone else if possible.
There're a bunch of counterexamples to the "all projects that are making an impact are doing so because they are actively backed and developed." Markdown is one obvious one. The Internet Explorer team was disbanded from 2002-2005, even though it was the most popular browser on the market. Several Google projects that are used by millions of people a day are completely de-staffed.
And there are many more projects that are actively backed and developed and yet are not making an impact. We'd be much better off if their developers quit what they were doing and found something else to do.
Besides, the Markdown license explicitly says it's "as is" with no such support promises.
I don't think you can even call Markdown users Gruber's userbase. He created Markdown because it works for him. If you don't like how it works, change it and call it something else (MarkSide? MarkIn? MarkOut?)
Why? Why are there any commitments whatsoever attached to making code publicly available? I could just as easily keep it to myself.
So, yes, it is better to release nothing than something buggy and unsupported. The former doesn't waste everyone's time pretending to be a solution.
He did it, it is done, it's called markdown. If Atwood had his way Gruber would have spent the last 4 years filling it up with features and today we would be reading a post about how Markdown went from slim and sleek to fat and bloated.
a highly visible blog post criticising gruber isnt the way to move forward though, email your issues offline, maybe offer to take 'leadership' of it if gruber is too busy, and if it seems gruber wont relinquish control, but wont help the project either, then fork.
the cathedral and the bazaar is a pretty interesting read on the politics of open source
It seems that the "official" version is 1.0.1 and is available as a zip file on daringfireball. The license file doesn't say anything about Gruber being against someone else maintaining it, or forking it, or whatever. Nothing is stopping anyone, or everyone, from importing the code into github and people maintaining it there. Considering the recent comments on this submission http://news.ycombinator.com/item?id=1017698 it only makes sense to put it on github, where everyone can contribute or fork and make it easy for control of the conceptually "official" version change hands.
It's absolutely his buggy baby.
Really?
Has anyone ever typed stuff, hit enter once, then typed more stuff, ever not intended a line break?
"Oh no, I kept hitting Enter between words instead of using the space-bar! If only pressing Enter was interpreted as a space character unless it was prefixed by four spaces. What a world! What a world!"
Edit: to answer the question of the comment below this, poems need to be handled specially in Markdown as in HTML. It's an issue more generally, and I think that the standard solution is <p> for the poem as a whole and <br> (or <br /> depending on your markup flavor preference) for the lines. It's a known thing: http://blog.signified.com.au/a-poem-element-for-html5/
In published work, poems are usually set apart from the prose and rendered in a different font anyway, so this seems natural enough to me. Courier isn't exactly my first choice for a poetic font, but it's good enough and gets the formatting across.
"Oh no, I'm trying to paste this block of text from an email and it thinks every line is a new paragraph!"
Besides, Markdown was designed to be readable as plaintext and test written with the expectation that single return -> linebreak is not easily readable (unless people are in the habit of indenting the first line of their paragraphs.
When programming, do you never cut lines with enter except after the semicolon either?
Compilers (except maybe Python) don't care about layout.
Yes. It makes diffs of version-controlled documentation far, far more readable (and efficient).
^Q in TextMate does it for you, so it's not even much extra effort. Type your paragraph, ^Q to wrap it to 78/80/whatever characters. I think someone else mentioned that emacs has a similar feature, and I'm sure vim does too.
Really? I can't recall the last time I saw a multi-line text box that didn't word-wrap.
That may have made sense back in the day when TEXTAREA form elements didn't wrap and there was no way to switch the wrapping on, but its been over 10 years since that was the case. Do people still do that?
Even in the presence of people needlessly hitting enter because they don't realise the input box will word-wrap, the effect of doing the-wrong-thing still seems preferable with turning enter key presses into line breaks.
The worst that happens when you hit enter at the end of the input box is a narrow column of text.
If you expect hitting Enter to result in a line-break, doing the-wrong-thing results in text being wrongly joined together into one paragraph.
perhaps your problem is confusing people with computers?
Also, my earlier response was written a little rashly, stemming for my sense of sheer disbelief. While I stand by my overall point, I'd like to apologise for my tone.
IMO any situation where that behaviour is undesirable is an edge case and should require more effort to work around.
> It should be a standard configurable option in every Markdown implementation that you can switch on or off depending on the intended audience.
I hope Atwood never actually tries this. Markdown should not have any configurable options. Any attempts to augment Markdown like this should be clearly labeled as such. One way or the other the spec should make a single choice and stick to it. If someone wants something different they should create something different and use it, rather than confuse people who use "Markdown" on several sites and have to remember which options each has. ... yuck!
2. The best thing Gruber could do is pass on "ownership" of the project to someone else. He is under no obligation to do so, but it seems like that would essentially solve the problem, while requiring almost no effort from him.
The issue here is that Gruber seems to be satisfied with Markdown-the-language, and Atwood (and many others) aren't.
Obviously, Atwood could just create a new markup language derived from Markdown (like MultiMarkdown). But then he can't call it Markdown. He wants the best of both worlds, and he's not going to get it. And that's his problem, not ours.
The problem with this bug is you can start with something that works just as you would expect, like "HTTP_PROXY is a CGI variable".
Now you go back and, edit the sentence: "HTTP_PROXY and REQUEST_METHOD are CGI variables". Suddenly, and in violation of Least Suprise, markdown spits out text that has a em tag between the two underscores.
So, in practice, you have to remember to always escape underscores, so you start with. "HTTP\_PROXY is a CGI variable" and never run into the problem.
Except now you have to keep this arbitrary rule in your head, and remember to do it all the time, and you end up with something that does not look like a plain text email; it's obviously marked up now. Which rather defeats the point of markdown.
What "problem" would be solved here other than the problem that Atwood is bad-mouthing Gruber, apparently to force him to pass on "ownership" or at least to make Gruber into a negative example for others?
Isn't the better solution to that "problem" for the rest of the libre software community to disapprove of Atwood's defamatory statements about Gruber?
Please read this message: http://six.pairlist.net/pipermail/markdown-discuss/2008-Marc...
1) Gruber states that he doesn't have time to update Markdown. 2) Gruber states that any fork of Markdown should be clearly stated as such.
End of story.
Gruber could respond with a post titled "Responsible Forking". Hopefully, Gruber just ignores Atwood and spends his time and attention on stuff that actually matters.
I think Gruber is providing admirable leadership and direction by not making backwards-incompatible changes to the spec and smacking down people who want to do so.
It's the simplest solution to his problem.
[edit: Ok, so it does appear in the quote taken from a mailing list, but Atwood does not explicitly address the idea.]
http://johnmacfarlane.net/pandoc/
It's written in Haskell, it uses a real parser, it fixes several bugs in the spec, and it can output to nearly any format imaginable. What else could you want?
http://github.com/toyvo/libpandoc
"a build configuration for Pandoc that produces a standalone C-callable system library"It would be nice if John Gruber opened up the contribution process or officially handed off development to someone else, but he's under no obligation to do so. We're not paying him. He probably started Markdown for his own purposes and was kind enough to release it under a free license. It's totally fine if he doesn't want to continue work on it, because I can easily take his code, check it into GitHub, and start my own fork.