7 ms·
Responsible Open Source Code Parenting
- ElliotH 17y agoNot to be too harsh on Jeff Atwood - as he has decades more experience than myself. But does anyone else feel that this blog post is a bit out of line? 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.
- rubyrescue 17y agoYou're not being too harsh. Atwood's decades of experience is no excuse for what is essentially a personal attack, nor should it be a defense when you call him on it.
- andreyf 17y agoNot harsh at all. IMO, the kind of attitude that equates the responsibility to maintain your open source projects to the parenting of a child is one thing which scares people from contributing to the open source community.
- apinstein 17y agoI agree. I don't see why Jeff didn't just start a GitHub project himself as a new starting point for the community.
- rapind 17y agoMy guess is that this article is a precursor to doing just that. I expect an announcement from Jeff pretty soon about a new markdown project on Github. I don't agree with his point of view in this article, however it does sound like he knows the project pretty well and would be suited to getting it rolling again.
- StrawberryFrog 17y agoIt's over here: http://code.google.com/p/markdownsharp/ http://code.google.com/p/markdownsharp/
- StrawberryFrog 17y agoUm, he pretty much did that: http://code.google.com/p/markdownsharp/ http://code.google.com/p/markdownsharp/ 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
- pwim 17y agoGithub's strength is that it allows for incredibly easy collaboration. If you want to make a change to any open source project, you just need to fork it, make changes in your copy, and send a pull request to the original author. Neither Google code nor SourceForge offers such a simple contribution mechanism.
- pohl 17y agoI haven't participated in any Github projects yet, so forgive me if I'm missing something, but isn't what you're describing a part of DVCS (Distributed Version Control Systems) in general, and not Git per se? (and, least of all, GitHub?) 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?..."
- pjhyett 17y agoI don't think anyone said GitHub is "the one true way". I think you'll find more and more people putting code on GitHub, because of the general uptick in contributions when code is hosted there. (disclosure: I work for GitHub)
- pohl 17y agoI don't think anyone said GitHub is "the one true way". 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 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 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.
- algorias 17y agoWhen you release code, there's an implicit commitment of improving and maintaining it, or at least finding someone who will when you can't anymore, unless you say otherwise from the start. 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.
- nollidge 17y ago> When you release code, there's an implicit commitment of improving and maintaining it Why? Why are there any commitments whatsoever attached to making code publicly available? I could just as easily keep it to myself.
- algorias 17y agoIf you say you'll help someone out, then you better show up. Otherwise, you'll leave the other guy worse off than if you hadn't offered to help in the first place. 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.
- thejake 17y agoWhat an entitled attitude.
- slavingia 17y agoI disagree. When you release code, you release code. Improvement and maintenance are not things that you imply you'll give. Especially under a BSD license. If you gift someone a laptop, you're not bound to help them with every problem they encounter.
- boucher 17y agoHave to disagree. Releasing code doesn't imply any obligation to that code. If it did, the volume of open source code out there would be a fraction of what it is right now. 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.
- nickelplate 17y ago"as he has decades more experience than myself" Decades? I doubt that. And no, you're not being too harsh. In fact, I think you might be too kind.
- deleted 17y ago[deleted]
- joeyh 17y agoIf Gruber had released markdown and explicitly walked away from it, then yes, we would only be justified in appreciating his gift. (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.
- joeyh 17y agoCorrection: Text::MarkDown differs in compatability in that it _seems_ to fix the internal underline issue. Although possibly not completly.
- billpg 17y ago"Item #3, the conversion of returns to linebreaks, is somewhat more debatable. I'm on the fence on that one, but I do believe it's significant enough to warrant an explicit choice either way." 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!"
- andrewcooke 17y agosome people hit return when the text is nearing the end of the input box. as in this text, which has "return" after "end of".
- billpg 17y ago(Edit: I think I was a bit rash in this message, stemming from my sense of sheer disbelief. While I stand by my overall point, I would like to apologize for my tone.) 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.
- andrewcooke 17y agodude, i'm telling you what people do. perhaps your problem is confusing people with computers?
- billpg 17y ago
- sfk 17y agoMarkdown is not John Gruber's baby, it is an open source project. Stop anthropomorphizing everything in order to make a cheap point.
- daleharvey 17y agoOpen source projects are usually someones 'baby', democracy is nice and all but experience suggests that open source does best with an 'owner / leader', if the owner/leader isnt committed, then the project flounders until someone else takes their place. 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
- thwarted 17y agoOpen source projects are not someone's baby unless someone claims them as such and takes their development personally. Having a leader on a project is nice, but not all source code needs a leader, and not all projects flounder without a leader. And just because development is stagnant on a popular project doesn't mean that it's floundering either. 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 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.
- blasdel 17y agoIt's not a collaborative project in any way -- Gruber does not accept contributions and repudiates forks + reimplementations. His Markdown.pl implementation is dogshit even by the already low standards of hand-written many-pass regex-based spaghetti-parsers. It's absolutely his buggy baby.
- michael_dorfman 17y agoI don't understand why the term "fork" didn't appear in Atwood's article. It's the simplest solution to his problem.
- lutorm 17y agoIt did appear.
- michael_dorfman 17y agoOnly in a quoted passage, and Atwood didn't engage with that portion of the quote.
- ra88it 17y agoI suspect the word "fork" was deliberately excluded from the article because it would be less provocative. Atwood appears to be more interested in starting controversy than actually solving problems. [edit: Ok, so it does appear in the quote taken from a mailing list, but Atwood does not explicitly address the idea.]
- deleted 17y ago[deleted]
- ZachPruckowski 17y agoThis is blogging, not problem solving, Bloggers are capable of solving problems, but ad impressions, not solutions, pay the bills.
- telemachos 17y agoThis isn't directly relevant, but if you use Markdown a lot, I highly recommend David Parson's Discount (a Markdown implementation in C). (Parsons is also active on the Markdown mail list, which is helpful.) http://www.pell.portland.or.us/~orc/Code/discount/ http://www.pell.portland.or.us/~orc/Code/discount/
- nostrademons 17y agoI'll put in a plug for Pandoc here: http://johnmacfarlane.net/pandoc/ 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?
- sharkbrainguy 17y agoI found this really handy (from PLT scheme) http://github.com/toyvo/libpandoc http://github.com/toyvo/libpandoc "a build configuration for Pandoc that produces a standalone C-callable system library"
- gfunk911 17y ago1. This article is a bit too personal, 100% agree on that. 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.
- tptacek 17y agoWhat's the "problem" here? The bugs Atwood is talking about are minor, and their solutions don't require drastic incompatible changes to Markdown-the-language. 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.
- joeyh 17y agoThe underscore bug sounds minor, but is not. 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.
- tptacek 17y agoThe change required to fix that glitch is so not drastic that many (most?) Markdown implementations have silently applied it already.
- dasht 17y agoWhy should Gruber pass on "ownership" in the absence of a prospective owner who's work on the project he likes? 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?
- Chickencha 17y agoThis is the nature of free software and a big part of why free software is great. Sometimes a maintainer can no longer work on a project for a variety of reasons. A free license makes it pretty easy for someone to fork the project and take over development. 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.
- ihumanable 17y agoThe idea that since markdown hasn't done anything in years its somehow being stewarded improperly is a bit foolish. Look at Gruber's vision statement, he wanted to make an easy-to-read easy-to-write markup. 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.
- sjs 17y agoI'm all for the first 2 proposed changes. They would very welcome by almost everyone. But that 3rd idea.... oh boy. > 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!
- dasht 17y agoAtwood's blog post is an example of why I sometimes say that the main point of inventing "open source" was to turn the free software movement into the gratis labor movement. 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 http://en.wikipedia.org/wiki/Loaded_question )
- pkaler 17y agoThe way that Atwood quotes the mailing list is irresponsible. Please read this message: http://six.pairlist.net/pipermail/markdown-discuss/2008-March/001188.html 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.
- kragen 17y agoJeff wants Markdown to make a bunch of backward-incompatible changes that would change the interpretation of existing Markdown documents. It doesn't matter if Jeff is right that the new language would be better than Markdown; changing the spec in this way would still be an act of vandalism, because it scribbles all over the pages already written in Markdown. 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.