Like other responders, I worry that this mentality causes fewer coders to release their projects, for fear of backlash like this post. Think about it: Your feelings toward Gruber are incredibly negative and hostile, and in fact, you would have better feelings toward him if he had kept Markdown to himself and never released it at all. Does that seem fair to you? If the ill will generated by people like yourself outweighs the good will generated by those who appreciate the code I release, or if I fear that it might, what motivation do I have to release my code?
It’s that he thinks the best option is to do nothing. He claims the title of BDFL without playing the role.
See his first reply to the Markdown mailing list in nearly three years: http://six.pairlist.net/pipermail/markdown-discuss/2012-Octo...
He enjoys the credit for being the creator of something used by millions every day, but is entirely unwilling to take the responsibility that comes with that creation being a very public mess.
It works for his usage, but all the ambiguities and undefined behaviors affect a huge number of people, and his only response he's made for eight years has been to retain sole moral authority and refuse to use it.
You gain moral authority by actually doing something. If you use markdown, and wish to propose a better markdown than markdown, go for it, I'm sure lots of people will be pleased, but bear in mind that lots of people will whine about any bugs as well, and expect you to work for them for free and spend significant resources and time fixing edge cases which don't matter to you personally, just because you released the source.
If you're ready for that though, of course go ahead and create a better markdown, or help with this proposed spec, Gruber certainly can't stop you. It doesn't really matter what Gruber says, what trolls on a mailing list say, or what you say on this forum about his responsibilities, whether he is self-appointed dictator for life etc (though I'd dispute that), what counts is putting the work in, which is often surprisingly difficult - far more difficult than criticism.
Right now, the canonical markdown implementation isn't very good. It's hard to change what the canonical implementation is without Gruber's support. It doesn't even require much from him - just his blessing.
He isn't under any obligation to do this. No-one thinks he is. But it would be a good thing for him to do.
If someone wants to write a spec, a better parser or a better markdown full stop, there is absolutely nothing to stop them. The problem is, people would rather bitch about why no one else is doing anything and complain about gruber than actually do the hard work necessary. Do the work first, then look to gruber for canonization if you must, though by that point his views on the matter would be irrelevant.
If the exploits are as well-known as the grandparent comment asserts, and Gruber is aware of them, there really is no excuse for him to leave the code up without any warning that it contains known exploits. However, if he has no idea and everyone is assuming he knows without someone telling him, that's not exactly fair.
He wrote a text-to-HTML parser with a particularly elegant little language design and got on with his life, which involves writing more than keeping up with bug reports in Perl scripts. Get over yourself; comments like this make us all look bad.
unfortunately many of the other implementations out there are direct transliterations that replicate all of its absurd errors
he outright refuses to either disclaim or fix his implementation
This is important to know if you are interested in Markdown.
Personally, I encountered edge cases almost as soon as I started using it.
We all write code with bugs and flaws and we sometimes release it online.
'Fix or deprecate' is not an unrealistic obligation on a technology journalist with a public persona and a large readership.
I believe markdown.pl is being blamed for over 100 bugs. Not just security flaws.
> I suppose the memory corruption bugs in the "optimized" C Markdown parsers are somehow his fault too?
Strawman, you're better than that.
> He wrote a text-to-HTML parser with a particularly elegant little language design and got on with his life
And he did a horrible job of it. Horrible. But he considers himself the BDFL of Markdown. Break that down for me.
> which involves writing more than keeping up with bug reports in Perl scripts
He clearly can't keep up with any bug reports, so it's good his life is more broad than bug reports.
> Get over yourself; comments like this make us all look bad.
No, comments like this make us look like we have higher expectations than "it worked on my machine, suck a dick!"
Christ, you're being a dick. All John Gruber did to you was design a minimalist markup language and write a quick-and-dirty proof-of-concept Perl script to implement it. Just use a better implementation and get on with your day.
No you don't, that's insane.
People like Gruber, with an audience, a following, should set an example. If his code has bugs and he is informed of those bugs, he should take a few minutes to list those bugs. He doesn't have to solve them. He doesn't even have to point people elsewhere. Just listing them is enough and saves a lot of people a lot of time. If you can't be bothered to do that, please take your code down: it is nothing but pollution, keeping us from finding the better code.
Well he needs to be something other than a pathetic apple fanboy! :D
I think there's something to your post, but the tone makes me want to dismiss it. I know, stupid emotions.
This internet lynch mob mentality... I wonder how much this discourages people from releasing things. So, Gruber releases markdown.pl. People like it. People love it. People use it, people reuse it, people rewrite it. Next think you know, he's being insulted on the internet because he released something he wrote to serve his needs and not passing on some sort of figurative mantle or blessing.
Oh please, double standards like this disgust me. Microsoft had shit slung at it for years on end by the tech community because IE was terrible and held back innovation on the web, but no one claimed that IE is "not so terrible" just because everyone cared about it.
The difference with Gruber is that he's a darling of the tech community because he's Apple-anointed nobility. But as a programmer, in my eyes (and in the eyes of any other objective observers) he's absolute shit.
I didn't care that IE was terrible (until v3 or whenever), I cared that Microsoft went to all the major PC manufacturers and told them that their licensing deals were toast if they preloaded Netscape.
I didn't care that Word was a crappy word processor, I cared that they used their market position on office documents to make minor incompatibilities that prevented WordPerfect from interoperating.
I didn't care that Windows file sharing wasn't half as good as NFS, I care that they continually fucked with the SMB protocol so that no one could sell UNIX machines that could share with Windows networks.
It has been an absolute pleasure watching that Microsoft's power over device makers disappear. The world is better off for it, and Microsoft will always be an asshole in my book.
Abandoning basic etiquette that you should have learned in primary school and calling someone "absolute shit" is not cool.
Over those years it's grown in usage exponentially, and so has his fame as a sportswriter for team Apple. Throughout that period he's continued to brush off all kinds of attempts to clean up bugs, define ambiguous behavior, or fix the security vulnerabilities. It hasn't mattered what approach people have taken, he just does not give a shit. Here's an example from last week: http://six.pairlist.net/pipermail/markdown-discuss/2012-Octo...
He's spent so long burning off any goodwill I would have for him on the matter, being cordial just isn't a priority anymore. NERD RAGE.
You're right: he just does not give a shit. I can see why. What possible upside could there be to engaging with someone who handles themselves like you are here?
Imagine that you're a mechanic working on a motor that uses the ProprietaryNew fastener (hex heads? so 20th century!). Unfortunately, the only ProprietaryNew wrenches are made out of cheap metal, and the sockets strip with regularity. You can't imagine saying a few nasty words about the parentage of everyone in ProprietaryNewCo?
From a comment on Twitter yesterday in response to someone, it doesn't seem that Gruber is particularly interested in engaging with this (though I may be wrong). If that is the case I suspect we'll see a forking of the project and we'll get to see whether a committee will do better.
It may well do - Jeff has a good track record at getting things done and is well respected and well liked - but personally I wouldn't put my mortgage on it because as well intentioned as these things are we all know how design by committee usually turns out.
Care to show us your alternative? It'll be on Github or GoogleCode, or maybe your personal blog, somewhere we can download it, try it out, and criticize it too, right?
Surely 8 years of rage is enough encouragement to write your own replacement for ~1000 odd lines of Perl?
Or by "enraged", did you mean "annoyed enough to write critical posts on random internet sites, but not motivated enough to spend an evening or two solving the problem myself"?
"NERD RAGE" indeed…
The real problem cannot be solved without some forward action on his part. He has refused over and over again.
Sure it can - you write something better, then get everybody who's already using Gruber's version or one of it's presumably also-flawed reimplementations to switch to yours. Or, is "8 years of enragement" really just keyboard-warrior-hyperbole on your part and an excuse to criticize someone who's achieved widespread adoption of some code you claim is 2nd rate, but which haven't bothered to improve or replace?
Besides, it sounds to me like David Greenspan has come up with a fine solution.
Being great at designing a format and writing code are two different things: one can be great at once while being terrible at the other.
It is a great format.
The original parser (and specification) has serious problems.
At some point there's no constructive criticism left to give.
His program is bad and he should feel bad
The dude released a script to the public under a free software license and people used it. If you think it's bad, fork it and fix it, otherwise don't use it, that's how the open source ecosystem works.
He just needs to add a sentence or two to his website and he'll save countless developers a ton of headache. He just doesn't give a shit.
It's pathetic.
Your project can cost people a lot of time if it promises, but doesn't deliver. I just spent quite some time searching for a decent XSD parser in Ruby, haveing to wade through a score of projects that promise to do what I want, but turn out to be incomplete, buggy or otherwise useless to me. Many people will perform the same quest and together a lot of time is wasted, which could have been prevented if people would not just publish any damned thing, but would also take the time to properly document its state.
Open source projects without proper documentation, I can do without. This problem will only become worse in decades to come. I sure as hell hope github will start purging old projects with too many 'not useful' votes within the next few years. Otherwise it'll be a morass of stink where the gems can no longer be found.
You may want to look into seL4. (If you consider formal verification to be perfection, that is.)
You know what programmers think because of such comments? "My code is so bad I can't release it. Even if the idea is good." And this Sir helps no-one.
Stop this shit.
I agree. This has even stopped me from __starting__ a few FOSS projects I've wanted to develop.
Stay classy.
Perl makes it look small, if you have to write something like this in Java or Python, multiply the LOC by at least 20. But I assure it will be higher.
So - no, bullshit, you need to multiply by 2 at most in case of Python :)
This comes (including blank lines, comments & POD) to 1739 loc - https://metacpan.org/source/BOBTFISH/Text-Markdown-1.000031/...
Nobody should be using the original script, and unfortunately many of the other implementations out there are direct transliterations that replicate all of its absurd errors, like where if you mention the MD5 hash of another token in the document, the hash will be replaced with the token, because it uses that as an inline escaping mechanism! Reddit got hit with a XSS virus that got through their filters because of it: http://blog.reddit.com/2009/09/we-had-some-bugs-and-it-hurt-...
See the changelog for what started as a PHP transliteration and turned into a rewrite that squashed 125 (!) unacknowledged bugs: http://michelf.com/projects/php-markdown/
The worst part is that he outright refuses to either disclaim or fix his implementation, and so far he's repudiated everyone else's attempts to do so. He's a terrible programmer and a worse maintainer, he really still thinks the documentation on his site is comprehensive and canonical. As much as Jeff Atwood leaps at every chance to play the fool, there's no way his directorship can be anything but an improvement.