我最近正在寻找一个个人wiki并且来到Hatta,它使用Markdown简化编辑和生成html.我的问题是,当官方的Perl实现已经存在时,为什么在Python,Javascript,PHP等中有很多Markdown的实现?有这个选择有什么好处吗?
因为不是每个人都运行perl?
你也可以问,为什么有汽车和公共汽车,你可以用脚来获取地方.
有一点是,重写比尝试将Perl脚本与恰好用于开发的其他语言集成更容易.
另一点是John Gruber五年多来没有更新原始实现,很多人想要原件中没有的东西或其他东西,所以他们自己添加它,经常在这个过程中重新实现它.
另一点是,无论人们如何努力推动软件的重复使用,相当多的人至少会隐藏一些NIH的态度,因此他们会不必要地重新实施.这也不是完全错误 - 它可以帮助理解,并且随着时间的推移导致更清洁的实现(我不得不说 - 我比大多数自己写的更有罪,而不是重用已经可用的东西).
人们通常首先编写一些主要用于理解的东西 - 但在降价的情况下,规范非常简单,通常很难区分作为作者自己使用的练习而写的内容与真正适合生产的代码之间的区别(很多网站开发人员也缺乏了解差异的经验,至少非常好).
有太多的Markdown实现,原因相同,有太多的Scheme编程语言实现:
它看起来像一个快速,有趣的项目.
Markdown看起来非常好,但是我想做的只有一个很小的改进......
将可读ASCII转换为排版文档或HTML的问题已经存在很长时间了.我知道的第一个例子是notech
Richard J. Lipton和Robert Sedgewick在1990年的一份名为"没有格式化的排版"的技术报告中.如果有人有该报告的副本,我很想拥有一份......
我最喜欢的Markdown重新实现是pandoc,它将一整套格式进行了互换.
有很多原因,blowdart提到了可用性,我将提到一个让我总是重新发明轮子的原因:乐趣
有些人发现自己写一些东西很有趣,无论是为了好玩还是为了提高他们在特定语言或一般情况下的编程技巧.
我用大约8种不同的编程语言编写了IRC机器人,它帮助我将旧技能转换为新语言并将新技能带回以前的语言!
人们没有很多东西没有为了好玩而复制,或者因为他们只是想要这样做,或者因为他们对最初的实现或想法不满意.
Pidgin,OpenOffice,整个Linux发行版和其他操作系统的克隆只是因为人们想要这样做.
有许多编程语言的实现,如Ruby,Python,C,C++,Haskell,Basic和Javascript,因为人们想要将它们与Java(JRuby,Jython)或.NET(IronRuby,IronPython)集成,或者显然想要编写自己的编译器和学习口译员.
编程不仅仅是所有业务,"如果它还没有制造",它就是许多人的业余爱好.
我肯定很快就要编写我自己的Markdown实现了!