Tuesday, October 30, 2012

Atwood: Learn The First Thing About Open Source

Somebody who apparently enjoys Internet drama, run-on sentences, and the passive voice recently said:

Standards processes are not to be missed. They are grand spectacles that unfold in real-time. They are fraught with personalities, big egos, and grand ideological dialogs it's the West Wing, but like the parts that are between the snappy dialog.

All this is of course in reference to Jeff Atwood. I owe Jeff Atwood a lot. I used to aspire to being a real name in the world of tech blogging, until Jeff Atwood conclusively demonstrated that this is not necessarily something to be proud of. The enormous success of his banal and pointless nattering inspired me to find a more interesting goal. He's kind of like Kafka meets the Cookie Monster: he doesn't appear to have ever encountered a method of boring people to death which he didn't relish to the point of near abandon.

Several years ago, I compared Atwood to Jerry Springer:

Watching Jeff Atwood pick a fight with Paul Graham was marvelous entertainment. Not only did we get to see a baboon flinging its doodoo at a lion, we got to see how silly and befuddled the lion had gotten in the winter of its old age. Paul Graham first defended himself, then wrote a post called How To Disagree - which Atwood pretty accurately described as "an EULA for disagreeing with Paul Graham" - and finally had Atwood over for a Y Combinator dinner where they presumably hashed out their differences.

Atwood launched a similar attack on DHH as well. I can only assume he was angling for a dinner with DHH but may be willing to settle for lunch. Or in fact a photo opportunity. However, DHH never responded at all.

This appears to be something Atwood does a lot. He may have even met his business partner this way, and the last time I dissed him, he sent me these "let's be friends" emails, which sounds great in theory but for some reason actually creeped me out a little. So, just to be clear, Jeff, if you're reading this, I have no interest in starting a company with you, and I'm not going to invite you to dinner.

Atwood's latest stalk-target: John Gruber. I'm a fan; in fact, it's agony to me that the "canonical" book on Steve Jobs didn't come from the guy who writes the canonical blog, because if you want to understand Jobs, you go to the blog, not the book. I've always hoped Gruber would one day write his own book on Apple. But instead, I may now have to witness a Gruber/Atwood collaboration. Atwood trolled Gruber, seeking to rope him into some standards committee bullshit around Markdown, instead of doing the respectable thing and just being awesome.

As a fan of Gruber's, I'm ashamed to say that Gruber failed to reach DHH-level disdain, and responded to Atwood's dull trolling -- as indeed I am doing now -- but I can happily report that Gruber understood the purpose of the conversation:

@codinghorror When you tell me to jump, should I ask “How high?”

@codinghorror Next step is for you to offer a $5m donation if I release my college records, right?

I'd love to call the blog post at the root of Atwood's latest shenanigans "a tale told by an idiot, full of sound and fury, signifying nothing." But that's a better description for the movies of Michael Bay, who may actually be a pretty smart guy. Atwood specializes in tales told by an idiot which are nonetheless both sound- and fury-free. I hope he skips straight to the signifying nothing for the sake of expediency, but I suspect he does it because he lacks imagination.

Atwood trolls as a form of recruiting and introduction. It is the modus operandi of a bully. That probably makes Atwood himself a bully of some kind -- perhaps a verbal bully, but one whose words make for incredibly dull weapons -- but he's so fundamentally unintimidating that it's probably more reasonable to call him an aspiring bureaucrat.

Atwood blogged about Markdown a few days ago, but also back in 2009:

The biggest problem with Markdown: John Gruber.

...the fact that there has been no improvement whatsoever to the specification or reference implementation for five years is kind of a problem.

There are some fairly severe bugs in that now-ancient 2004 Markdown 1.0.1 Perl implementation. Bugs that John has already fixed in eight 1.0.2 betas that have somehow never seen the light of day. Sure, if you know the right Google incantations you can dig up the unreleased 1.0.2b8 archive, surreptitiously posted May 2007, and start prying out the bugfixes by hand. That's what I've had to do to fix bugs in our open sourced C# Markdown implementation, which was naturally based on that fateful (and technically only) 1.0.1 release.

I'd also expect a reference implementation to come with some basic test suites or sample input/output files so I can tell if I've implemented it correctly. No such luck; the official archives from Gruber's site include the naked Perl file along with a readme and license. The word "test" does not appear in either. I had to do a ton more searching to finally dig up MDTest 1.1. I can't quite tell where the tests came from, but they seem to be maintained by Michel Fortin, the author of the primary PHP Markdown implementation.

But John Gruber created Markdown. He came up with the concept and the initial implementation. He is, in every sense of the word, the parent of Markdown. It's his baby.

As Markdown's "parent", John has a few key responsibilities in shepherding his baby to maturity. Namely, to lead. To set direction. Beyond that initial 2004 push, he's done precious little of either.

This is patently ridiculous. Creating an open source project in 2004 does not set you up with obligations to do anything in 2012 whatsoever. The entitled whining here is so absurd you have to read the whole thing to really get it, but I'll just summarize for you here:

"John Gruber created something. I want that thing to be different. Therefore, John Gruber hates babies."

I wish I was kidding, by the way. He literally included a picture of a baby in the blog post, and the title refers to "responsible open source parenting." He totally implies that Gruber hates babies because he didn't do work that Atwood is clearly capable of doing himself.

GitHub responded to imperfections in Markdown by creating GitHub-flavored Markdown. Some people call that being awesome; some people call it not sucking; everybody who works in open source knows that it's the only socially acceptable response. Harassing people to demand that they do things for you is not socially acceptable in open source. What is socially acceptable is creating solutions for your problems and then sharing them.

Also, as far as I'm concerned, GitHub-flavored Markdown is now the canonical implementation. That means Atwood's whole effort is barking up the wrong tree anyway. But there's a much more fundamental problem here.

Open source is about giving. It's not about obligations. It's not about "you have to create the fixes I want, or you're a bad person." Jeff Atwood does not understand the most fundamental thing about open source.

Less bullying, please. More giving.