Categories

Calendar

January 2018
M T W T F S S
« Jun    
1234567
891011121314
15161718192021
22232425262728
293031  

Open Source Never Die

sproutOpen Source 应当算的上软件开发历史上最耀眼的运动之一吧。然而虽然有数不清的明文 Licence 以及各种社区,Open Source 这个词,对于不同的人大概也有不同的意义吧。例如微软最近在 GPL 下“捐献”大量代码,他对于 Open Source 的看法(或者说 Open Source 对于他的价值)大概又和其他许多人不太一样的。而我自己嘛,说起来,我并不是一个狂热的 Open Source 鼓吹者。也许在刚接触的时候还有些激动,不过很快就平静下来,当然我一直都很喜欢 Open Source 这样一种方式,不过那并不是因为它“叫做 Open Source”,而只是因为我觉得这样很好。一方面,我并不排斥别的形式的存在;另一方面,如果哪天发现有什么更好的方式,我肯定会转移过去。一直以来,我也都是这么认为的。

不过最近发生的一件事情让我似乎又激动了一次,大概 Open Source 这个词本身也还是有它的魅力的吧。 :) 事情是关于 YASnippet 的,这是一个在 Emacs 里模仿 Textmate 的 snippet 功能的包,最初看到这样的演示是在萝卜的一次 Ruby 小课堂上的一个 Rails 的演示视频里,当你在输入的时候别的地方也跟着变化,看起来确实很 cool !后来我发现有人写了一个 snippet.el ,来实现类似的功能,我在那个基础上加了一些让它稍微“智能”一点的东西,于是就是 smart-snippet 。不过后来我对 smart-snippet 并不满意,于是就有了完全重写的 Yet Another Snippet 。重写之前想了许多,例如功能要强大,但是却让用户用起来简单,因此定义 snippet 的语法尽量和 Textmate 很接近,并且让默认配置就满足大多数人的需求,拿来就处于比较好用的状态。我对 Emacs 的很多 package (包括 Emacs 本身)都有一个印象就是:经过精心配置,可以变得很强大很好用,但是默认状态却一点都不人性化。

总之,第一个版本 0.1.1 发布于去年三月份,反馈很让人欣慰,当然也许还和我录制了一个简单的演示视频并把它上传到 YouTube 上有关系吧 :D 。后来做了很多改进,一直到今年二月的 0.5.10 版,我渐渐地将开发进度放慢下来。一方面是我没有精力去做这个吧,收件箱里一直维持着 20+ 封未读邮件,多半是 YASnippet 的 bug report 或者 feature request ;另一方面大概是我自己没有用了吧,不过这个理由多少还是有些牵强,也许最开始做这个东西的时候还是想自己会用到的,但是实际上后来我并没有经常用,YASnippet 一直安装着也是为了方便测试,用得最多的也就那么一两个 snippet ,比如 c-mode 的 once ,用于生成一个头文件的 GUARD 。再后面甚至连 Emacs 也用得不多的(现在真是对编辑器一点都不挑剔了,只要不是太怪异的都可以拿来用,挑剔实际上是跟自己过不去呀,世间本来就没啥完美的编辑器 -,-)。所以说自己是因为自己需要才开发和维护 YASnippet 的,连我自己都觉得怀疑,之前曾经疑惑了很久,写了篇 blog ,得出的结论也无非是 Just For Fun 。

不过现在 YASnippet 又有新版本发布了,João Távora 参与进来,做了许多改进,刚刚发布了 0.6.0 beta 版,在于他谈过之后决定逐渐将维护和后续开发工作转交给他。然后逐渐将收件箱里一些上百天的 issue 转交出去,一瞬间觉得轻松了许多,不过,令人更加兴奋的是那种突然活跃起来的感觉,就好像回到了一年前一样:有人下载,有人讨论,有人称赞,有人致谢,有人写 blog 推荐,有人报告 bug ,有人提交 patch ,有人贡献新的 snippet ……于是突然想到一句话:“Open Source Never Die”。不知道我在哪里见过这句话,亦或者是我自己胡乱想出来的,不过这样的切身体会让我也突然觉得 Open Source 这个词本身也是有重量的。

Open Source Never Die ,仅仅是一句口号而已,但是此时真的让我能感觉到更多的东西,突然还想起了那句“铁甲依然在”。说实话现在真的突然有种跃跃欲试的冲动。 :p

14 comments to Open Source Never Die

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>