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