|
两年前把fcitx移植到scim上的时候,曾经"深入"研究过这两个程序的代码,我后来找工作的时候,也不要脸地把这个移植工作写到简历里了(事实上我觉得我的简历里除了这个工作外基本乏善可陈:-)。只不过移植完后,我就一直使用着scim-fcitx,再也没有怎么关注过输入法的问题。几天前心血来潮的想在Google上搜索上一下"scim fcitx",结果搜到fcitx停止开发了的消息,赶紧搜索了一下相关链接,大概了解了此事件的来龙去脉。此后几天一直在想,是什么使得fcitx壮烈地牺牲了呢?我想大概与fcitx的优缺点有关吧。
fcitx的优点在于它的人性化。YuKing极大的照顾了用惯Windows下各种五笔如极点等用户的使用习惯。他的大部分的精力都花在了这个上面,fcitx的每个大的升级都是由新功能驱动的,这大概与YuKing自己是一个用户多过是一个程序员是分不开的。在北南的帖子里也有提到,YuKing开发fcitx的一个原则就是用户需求什么,他就实现什么。最早的fcitx据说(我没有用过)只有五笔输入法,后来有了拼音,再后来有了双拼,二笔,多码表,现在最新的版本已经支持五笔拼音混合输入了。这些或许是不是所有的用户都欣赏还不一定,但是肯定是有一部分用户非常想要的功能。这就是fcitx最大的优点,也是fcitx拥有大帮忠实用户的最直接的原因。
那么缺点呢?缺点同样也与YuKing的角色有关,如上所说,他是一个用户多过他是一个程序员。一方面他非常设身处地的为用户着想,用户想要什么他就实现什么;而另一方面,他的代码的质量却总是为一些真真假假的“高手”所诟病:真高手们自然是比较客气诚恳的希望YuKing不断改进提高,伪高手则大约是忌妒YuKing这么个水平不怎么样的人却能写出那么受欢迎的软件,于是孜孜不倦掘地三尺地挖出fcitx代码里一些“幼稚”“不与国际接轨”的地方。其行为是打压了YuKing,其目的大概还是想突出他自己有多聪明能干。突出的确是突出了,不过不是突出聪明能干,而是自己的幼稚,说好听点就是不成熟。最近这个导致YuKing决定停止开发的倒霉孩子更成为了fcitx拥护者们口诛笔伐的严打对象。
或许对不关心编程的用户来讲,上面说的缺点根本不是缺点,因为只要软件好用,代码写得好不好跟他们没有关系。不知道会不会有狂热的支持者因为我对fcitx代码评头论足而攻击我,给我脸上贴金把我划为伪高手(不是伪高手我还能是什么,真高手吗?看过《霍元甲》后我经常问自己,flonk,你嘛时候才能成为高手呢:0),呃,至少请相信我作这些评论的态度是诚恳的吧。
一个开发者在开发的过程中能拥有几种快乐,软件写出来,一个新功能实现出来能带来很大的成就感;软件给用户用了,用户喜欢,说好说顶说赞更让人有快活似神仙的感觉,Linus据说就曾在演讲的时候对听众说“我是你们的神”而让人非常反感。而在开源的环境下,还有一种可以带来快乐与打击的双面刃,那就是同行对开发者的肯定与批评。Fcitx的代码有点混乱,YuKing 自己也承认,并且一直在努力的改进,然而收效不够显著。他的本职工作不是编程,他最为追求的是极大的满足用户的需求。一个人的精力毕竟有限,六年来单枪匹马的开发fcitx,虽然也经常有人提供帮助,比如二笔输入法,configure配置脚本的使用等,但是都没有从根本上改变fcitx的代码框架。这样fcitx自然入不了一些眼高手低的人的法眼。这些人只会破坏不会建设,最喜欢放过别人的长处不看,揪住别人的小辫不放。悲剧的定义就是这样,一群不知所谓的人,抓住 一根小辫子,毁掉了一个长着这根小辫子的英雄。
作为一个程序员,或许YuKing是业余的,但是他的作品fcitx却是伟大的,这就是我们自己的开源传说... |
|