在试图改变这个世界的时候,请保留一份敬畏

前几天打开CSDN的mdeditor时不经意看到了它在说明文档的第一行注明了这个编辑器是基于StackEdit的。这不由得让我想到了当前很火的一个叫Cmd Markdown(作业部落)的markdown编辑器,CSDN的编辑器与Cmd Markdown在界面上有一些相似之处,不过Cmd Markdown在字体/渲染的处理上显然是做得要好很多,我常常用它来写一些数学笔记(基于它采用MathJax对LaTeX的支持)。

出于好奇心,我去GitHub上查看了一下StackEdit的界面——
在试图改变这个世界的时候,请保留一份敬畏_第1张图片

Cmd Markdown的界面是这样的——
在试图改变这个世界的时候,请保留一份敬畏_第2张图片

是不是很相似?两者都是左侧编辑(部分样式实时预览),右侧完整实时预览,中间一个可拖动的分界线。而且更重要的是两者都是node.js开发的(Cmd Markdown的Windows客户端是通过Node-Webkit实现的),然而我翻遍了Cmd Markdown作者的微博,作业部落官网,还有它github的页面也没有找到任何关于知识产权的声明。
StackEdit是一个开源的GitHub项目,拥有将近7000 Stars,1200+ commits,它的GitHub首页是这样的——
在试图改变这个世界的时候,请保留一份敬畏_第3张图片

图中清晰地指出了它是基于PageDown开发的

在试图改变这个世界的时候,请保留一份敬畏_第4张图片

在Features中,StackEdit也说明了它的各种功能都是由诸如highlight.jsMathJax等第三方实现的。
反观Cmd Markdown的GitHub页面——
在试图改变这个世界的时候,请保留一份敬畏_第5张图片
首先Cmd Markdown不是开源的(这一点无可非议,取决于作者的理念),但是让我困惑的是它没有提到任何其他人的工作,仿佛所有的代码都是他一个人完成的。

其实markdown的开源项目有许多,他们都是有开源协议的——绝大部分基于类似Apache 2.0这样的协议(StackEdit就是),是允许其他作者复用其代码进行修改并且将其用作商业的,但是Apache 2.0协议需要你在你的软件里加上原来代码的开源协议。而GPL协议则更严格,它是有“传染性”的,如果上一个人是GPL开源的,那么你基于它修改以后的代码也必须是GPL开源的。


那么问题来了,Cmd Markdown的制作没有参考任何开源项目的代码吗?我不信,我赌五毛钱。

其实在翻看了编辑器的html页面可以很容易发现

Cmd Markdown的编辑器是基于ace editor的 (StackEdit/PageDown用的是wmd-editor)

代码高亮是基于google-code-prettify (StackEdit也是)

uml是基于http://bramp.github.io/js-sequence-diagrams/ (StackEdit也是)

Markdown解析是基于Markdown.Converter.js的(也就是PageDown的markdown解析器)

……都是一些开源项目

编辑器的页面引用了这样一个js
https://zybuluo.com/static/assets/mdeditor/2fc15cb6.mdeditor.lib.min.js
稍微用一下Ctrl+F搜索一下关键词(例如github, MarkDown.Converter, ace/mode/markdown)就不难发现,作者把许多原本是开源项目的代码都捆绑压缩成了一个min包,丝毫没有任何源代码的协议声明……我认为这是无法容忍的

对比一下另一个国外的一个markdown编辑器,http://dillinger.io/,它在首页介绍文字里就清楚列明了它用了哪些第三方技术(包括了ACE Editor),而后,当我查看源代码时我发现了http://dillinger.io/js/bundle.js,没错,你打开仔细观察会发现,他虽然把所有的js编译进了一个min包,但是他保留了所有的作者开源声明。

有句话叫习武先习德,我想这句话同样适用在程序员的身上——码农先码德。


我曾经在微博上@过Cmd Markdown的作者对作业部落大加称赞,也曾给朋友们推荐过Cmd Markdown——它的文字渲染真的是很漂亮。但是我觉得困惑的是,如果一个创造者对这个世界不怀有敬意,它又能走多远呢?

在知乎上看到了这样一个问题 http://www.zhihu.com/question/23962028
在试图改变这个世界的时候,请保留一份敬畏_第6张图片
Cmd作者的回答排在第一个,看着很像是一个软广告(我就不吐槽把SEO关键词做到谷歌排第一跟它好不好有啥关系)。下面有一些其他用户的发言,其中就有拿Cmd Markdown与其他几个产品作样式对比的,而后有这样一位朋友说出了这样的声音——
在试图改变这个世界的时候,请保留一份敬畏_第7张图片
“你们向先行的开发者们致敬了吗?”

其实,在改变这个世界的时候,我们都是下一代人的先行者,那么,请怀有敬意地接过前人的火炬吧,这也是对自己劳动最大的尊重。

你可能感兴趣的:(随笔,Markdown)