Why Fcitx?

(伪调查用意……)

这是一个我难以回答的问题,我无法向别人很好的回答这个问题。

在我看来,缺少一个feature或者多一个feature无法成为这个问题永恒的答案。(当然这可能是你们的答案 🙂 )

每个有兴趣选择开发Fcitx的人(虽然也没几个)在最开始的时候,都无一例外的被我问了这个问题。为什么选择Fcitx而不是其他的输入法?

这个问题的答案也许没有理由,但对我来说也是一个值得思考的问题。

我也想从其他人那里知道答案。

因为对于我来说最终的答案可能只是我对它投入了精力而已。剩下的都只是附属产物。

This entry was posted in fcitx development and tagged . Bookmark the permalink.

24 Responses to Why Fcitx?

  1. wish says:
    Google Chrome 15.0.874.102 GNU/Linux x64

    因为那时候的我只知道fcitx。

  2. henryhu says:
    Android Webkit 4.0 Motorola Xoom

    因为Fcitx好看一些?…

  3. dword1511 says:
    Google Chrome 16.0.912.21 GNU/Linux x64

    因为简洁稳定。

  4. 依云 says:
    Firefox 7.0.1 GNU/Linux

    Why not Fcitx?

    NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!

  5. 右京样一 says:
    Google Chrome 15.0.874.106 GNU/Linux

    这是一个很长很长的故事……

    一开始用Fcitx,因为快,在我的老电脑上不会像ibus-pinyin一样慢半拍……
    我那时是个图形界面+默认配置控,结果发现不能即装即用,需要配置,而配置功能又太弱(编辑文本文件,还是GB编码的),想着自己学会PyQt之后写个Fcitx配置程序,发到网上。
    结果当时基础太烂,PyQt没学会放弃了。不过倒认识了阁下。后来发现阁下在搞4.0版,于是乎觉得总该在假期结束前做点什么事情,于是就做了个主题。那是去年夏天。
    后来Fcitx的东西就慢慢丰富了,官方文档、sunpinyin集成、配置界面什么的都有了,我觉得已经没有转向其他平台的必要了。
    然后就到了最近……一开始我是想再做个皮肤编辑器,后来觉得还是先从简单的做起,于是做了个皮肤查看器。后来kcm-fcitx也有这功能了。
    然后我想着,Fcitx总要有人来测试嘛……于是就一直用着hg版。
    然后就到了现在……

  6. BYVoid says:
    Google Chrome 15.0.874.106 Windows 7 x64 Edition

    我一直想不通why fcitx,所以還是在用ibus。

  7. polong says:
    Google Chrome 16.0.912.21 Windows XP

    (这条评论已经被csslayer吃掉了!)

  8. 依云 says:
    Firefox 7.0.1 GNU/Linux

    @BYVoid Why ibus?

    NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!

  9. zino says:
    Sogou Explorer Windows XP

    我接触fcitx比较晚,最早是因为要在一台远古机上安装slitaz才去试的fcitx,感觉挺好,于是后来就一直在用。
    感觉fcitx最吸引我的就是简洁。

  10. csslayer says:
    Firefox 7.0.1 GNU/Linux x64

    @zino 你的“简洁”指什么?

  11. zino says:
    Firefox 7.0.1 Windows XP

    @csslayer
    尺寸不大运行流畅,没怎么出过问题,挺好配置,自带的拼音也能基本满足需求,还有外观很喜欢
    其实我这个“简洁”主要还是凭感觉,没怎么想过只是感觉不错就在用= =

  12. litkt says:
    IceWeasel 7.0.1 GNU/Linux

    简洁,不浪费资源。象当年几百K的在DOS/Windows95上面也能如飞的输入法,现在再也找不着了。FCITX是最接近那个时代的简约风格的了。Linux能让被WindowsME/XP淘汰的十龄硬件保持青春,而上面的输入法如SCIM和IBUS却如XP/VISTA一样越做越庞大笨重,好象写几笔汉字是多了不起的事,脱盲就可当博士了似的。幸好FCITX不这样。

  13. csslayer says:
    Firefox 10.0a1 Windows 7

    @litkt
    你的认识是不完全正确……
    1、笨重的定义,这点一向众说纷纭,有些人说,用了gtk就笨重了,有些人说用了qt就笨重了;有些人说库的大小大就笨重了;有些人说代码多了就笨重了,这些都和程序最终的性能没有直接关系,或者说起码大部分的程序还考虑不到这方面的性能。
    2、慢或者不慢的原因
    一个程序是快是慢有很多可能。内存访问的,磁盘访问的频率,以及算法本身的复杂度,或者bug都会影响程序的速度,这和一个程序笨重与否都没关系。
    拿拼音输入法来说,fcitx的拼音和sunpinyin的区别主要在算法上(sunpinyin git里面的代码已经优化了磁盘使用了),fcitx快就是因为算法简单,举个不恰当的例子,如果拿智能abc/全拼 和 sogou让你挑,我觉得选择sogou是很正常的一件事情。当然sunpinyin没sogou那么好,fcitx也没智能abc/全拼那么烂就是了。

    但这些都不是一个输入法框架的问题,实际上比较的是具体里面的输入法的问题,当然对具体的用户来说可能就认为某个输入法的快慢就代表了输入法框架的快慢,框架替输入法背黑锅我觉得基本是个常态……

    我更加关心的其实是fcitx作为框架有什么能吸引大家的地方……
    一个不恰当的例子,比如都是使用sunpinyin,选择fcitx的原因是什么。

  14. litkt says:
    IceWeasel 7.0.1 GNU/Linux

    @csslayer
    Windows95上的南极星输入法框架是什么?
    如果按您的回答,我还真没法说FCITX比Ibus强在哪里,要不是我的旧本硬盘紧张,我可能就用Ibus的五笔了。文件尺寸大小对于硬盘和网络(如果通过速度不高的网络安装的话,如Debian+ADSL)也很敏感。另外正向我以前发现的那样,在CPU速度不高(400MHz)的情况下,输入法框架中字体渲染部分也很影响性能,所以输入法就不能一次显示太多的字。
    至于说现代青年人喜欢高资源消耗的句输入而不是以往简洁的字词输入,只能说他们活得太滋润了,机器配置也高,也不需要大量书写科技句式。日常口语整句输入有优势,在科技写作中整句输入的优势就没有了。既然我不用整句输入,我的计算机配置也低,就只能选用FCITX了。
    对于低配计算,Linux普遍较友好,FCTIX是最保持Linux风格的了。

  15. 右京样一 says:
    Google Chrome 15.0.874.106 GNU/Linux

    @litkt
    虽然我也习惯单词输入(被智能ABC调教出的习惯),但是想为喜欢整句输入的人做个辩护……

    五笔输入,候选字是唯一的,可以实现真正的“盲打”,组词功能对输入效率的影响不大;拼音则不然,候选字的排列对输入效率有很大的影响,而人们多数时候都是按句输入,所以拼音输入法发展到整句输入是必然的趋势。谷歌拼音(PC版)的一个重要卖点就是即使按词输入,候选词还是会按照输入框里已经输入过的词对候选词进行排序(参见N-grad相关资料)。
    科技写作中之所以单词输入存在优势,专业词汇是一个重要的原因。由于输入法训练的时候往往使用常规文章而非专业文章(关于训练,同样参看N-grad),即使词库中包括了专业词汇,让一篇文章都没看过的引擎正确的分词、识别,实在是强人所难了。不过幸运的是按照按词输入的方式使用一个支持整句输入的输入法,也不会比用整句输入支持不佳的输入法慢到哪里去。
    至于说喜欢整句输入的人是“活得太滋润了”,这就好像是用原生C语言的人批评用Python这样的脚本语言的人“太懒了”一样。算法再好,效率再高,性能和方便之间总还是有矛盾的。不同的人寻求不同的平衡点,并不能说孰对孰错。

  16. BILLYKANE says:
    Opera 11.52 Windows 7

    一开始只知道fcitx和scim。发行版默认的scim在opera上面打不出字,fcitx可以,就换成fcitx了。ibus从来没使用过,据说Python的慢。另外只会中文和拼音,其它的输入法不需要,也就不关注别的了。
    其实吧说到底就两点:第一是习惯,第二是够用了。

  17. litkt says:
    IceWeasel 7.0.1 GNU/Linux

    @右京样一
    我说“活得太滋润了”是指他们不必多写科技词汇。
    你的回话算是证明了我的一个论断,曾经在Windows95时代不过1M左右轻巧快捷的输入法到了现在这么笨重,都是拼音整句算法引擎闹的。
    计算机硬件的高速发展是为了更多的应用,而不是让程序员更舒服的重写已有应用,让其笨重。

  18. csslayer says:
    Fennec 10.0a1 GNU/Linux

    @litkt please remember your requirement is not mainstream, and I totally disagree about your last opinion.

    no chinese im on my phone yet.

  19. csslayer says:
    Fennec 10.0a1 GNU/Linux

    @litkt faster hardware means program can use more resource, and they should, in order to provide better user experience. There is no reason to still let a program writing nowadays to support ten years old hardware. If they explicitly do this, they step away from mainstream, like *box wm, which is not fcitx intention.

    Lightweight? Ah, it’s just a coincidence but not consequence.

  20. litkt says:
    IceWeasel 7.0.1 GNU/Linux

    @csslayer
    现在写软件当然不是给十年前的计算机用的,但现在的计算机硬件资源都消耗得差不多了实现的仅仅是十年前的应用,而十年前的轻快应用又不被现在的所兼容,这就是微软所干的好事。庆幸还有Linux。
    我在办公室捡台暂没人使用的P4台式机(2004年版),装上了KDE4,好嘛,速度比我的K6笔记本上的IceWM还慢,堪比Win7了。
    之所以安装KDE,是因为那个计算机不只我一个人要用,其他人(都是硕士研究生)全是Linux盲,为照顾他们才安的KDE。

  21. 右京样一 says:
    Google Chrome 15.0.874.106 GNU/Linux

    @litkt 兼容性问题并不完全是微软的原因,也有软件公司的原因。据说微软为了让VB6.0写的程序能跑在Win7上还带了一套不小的库。不过即使如此,软件商绝不会死卖一套10年前的程序,坐等被其他厂商的新产品所打败。除了增强功能之外,也只能像渣雷之流一样,做做Eyecandy和其他一些“没用”的东西。
    Linux相对好得多,不过问题也存在。比如想用新功能(触摸屏支持),就得用新库(比如Qt4.6+)来写。尽管这个功能并不真的“必要”,但就像我有了碗还不满足,还希望有盘子。商业公司的目标是利益的最大化,因此肯定是会在销售餐具的时候捆绑盘子的。有人觉得盘子占地方,只用碗,由于开源界的利益之争很少,所以就任君选择了。

    另外客观地讲,KDE4(默认设置)在哪个机器上都会不比Win7快到哪(这个说法其实已经很保守了,我无责任推测大多数时候KDE4会比Win7慢)。如果实在慢,您可以试试装Trinity(KDE3.5的fork),比*box之类友好很多,一般DE该有的功能也都有了。如果他们是Linux盲,KDE4的新特性想必他们也不会用到,装了也的确如您所说,只能是浪费资源。

  22. npnufn says:
    Firefox 8.0 Windows XP

    最早因为没有别的更好的。后来因为快和方便的快捷键,再后来因为有皮肤和方便的快捷键。还有就是云输入。

  23. kikyous says:
    Firefox 11.0 Ubuntu

    迅速,开源,free

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.