LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 800

输入法版掐起来了。。。

 关闭 [复制链接]
 楼主| 发表于 2004-6-9 13:37:43 | 显示全部楼层
呵呵,有人接茬,那我少不得要多说几句了。有言在先,我把gentoo版当成自己的地盘,所以并不会像在其他版那样说话比较谨慎。有些可能只是我的个人意见,有的看法可能有错,有什么得罪或什么错处,大家但说无妨。我还继续发贴子,并不是想说服谁,更不是要跟谁吵架,辩一辩对了解事情也是有好处的,大家和我都稍微克制克制就是。

我并不讳言,在输入法版回贴子,有一部分原因是针对苏哲个人的。我不认识苏哲,也不认识yuking,所以我只是个单纯的第三者,谈不上偏帮谁。我个人对苏哲有这样那样的看法或成见,有同感或能理解人相信也不用我解释,而且有同样看法的也不止我一个而已。
苏哲性格怎么样那是他自己一个人的事,如果他要显露于外,别人看不惯而针对他也是再正常不过的事情。我觉得这件事上我说话已经是非常克己了,不相信去翻翻贴子就知道。我说“求名求利”之类,他的作为的确让我有这种疑惑而已。不过就算求名求利也没什么,这是人之常情。但也还是那句,要讲方法不是。说某些话做某些事,结果大家也都看见了,效果很好么?
至于meteo的话,我不多作回应。说得不客气些,你又干了什么活呢?有本事你让苏哲只干活不说话去,我们这些人也就没什么好叽叽歪歪的了不是。

说点技术性的。在我的理解里,fcitx的架构大概是xim——imdkit——fcitx。xim是x的内建模块,imdkit是xim的浅封装,fcitx可以说是借助imdkit直接对应xim,除了x外不需要其他的软件包。这样的结构最大的优点就是紧凑、简单,相信很多喜欢fcitx的人就是看中了这一点。
而scim那边,则大概是scim-lib——scim-gtk-panel或skim——各种输入法模块。scim-lib是对各种输入法协议的封装,比如xim、gtk2-immodule等。scim-gtk-panel和skim是scim-lib的统一gui,各种输入法模块是需要借助该gui实现中文输入的。这种结构最大的好处就是结构清晰、扩展相对容易。就结构来看,我想基于scim从头开发输入法应该是比使用imdkit容易的。
我想比较到这里就很明白了,fcitx相当于自己封装了输入协议,自己提供了gui,并且自己实现了输入法。举个不恰当的例子说,fcitx就是fluxbox,scim就是kde。谁一定比谁强么?未必吧。

以目前的情况来看,fcitx“移植”到scim上去有什么明显的优势么?恕我驽钝,除了scim或能提高一些自己的市场占有率外,我想不出别的来。
scim-lib是不需要gtk或kdelib,协议封装不涉及gui,当然不需要gui-sdk。可sim-gtk-panel和skim一个需要gtk2,另外一个需要kdelib。fcitx“移植”过来后,要么用现成的,要么另外用xlib开发一个,大家觉得哪一种比较可能?
scim-lib比imdkit更强的一个地方在于,scim-lib可以支持多种输入协议。现在scim就提供xim和gtk2-immodule,这也是有人讥笑fcitx的地方。可对gtk2-immodule的支持有那么重要么,现在的scim用户有几个是用gtk2-immdule的?在现在的x下面,对应xim的输入法一样可以在gtk2程序中输入。而对应gtk2-immdoule唯一的好处就是输入法可以在gtk2中实现over the spot(光标跟随),可这也是gtk2自己的功能缺失,而且还丧失了在使用其他gui-sdk程序中输入的功能。
对于现有的fcitx用户来说,“移植”后的fcitx安装更复杂,软件体积更大,库依赖更多,可是好处在哪里呢?

还没说完,有点事情做先,等下继续
 楼主| 发表于 2004-6-9 14:41:19 | 显示全部楼层
说了近的就扯远的,就是xim“消失”,iiimf,还有scim成为“国际标准”之类的。
大家都说iiimf会取代xim,以后有可能会成为国际标准,不过iiimf到底是什么,可能没几个人清楚吧。我也不太明白这是个什么东西,但有关iiimf和scim的关系,这里有苏哲的原话:

“按照我的理解,SCIM 和 IIIMF 不是一个层面上的东西。SCIM 要更高层一些。比如,我可以写一个 IIIMF 的前端,让 SCIM 基于 IIIMF,但反过来估计是够呛了。

“而且现在 IIIMF 还相当不成熟。这个东西设计实在过于复杂,实现起来就难免出这样或者那样的问题。而且主要是日本人写的代码,里面有很多专门为日语考虑的东西,感觉很不爽。这也是我当初放弃 IIIMF 转向自己写一个架构的原因之一。

“Fedora 使用 IIIMF 也是有道理的,因为基于 IIIMF 的日文输入法还是相当成熟的。等到 IIIMF 足够成熟了,我会考虑把 SCIM 移植上去。”

既然scim和iiimf都不是一个层面上的东西,又何来“抗衡”一说呢?现在我们用的scim其实也是基于xim的,一但xim“消失”掉了,scim的基础也没了。有关这一点,这里也有苏哲的原话:

“我计划为 X.org 写一个输入法服务器模块,来代替原来的 XIM 服务器模块。”

虽然大部分人都不是什么高手,不过这也并不妨碍概念的理解。xim和iiimf的地位大概类似,不同的大概是xim是平台相关的,而iiimf则更大,或者可以说iiimf将xim实现的功能整合到其内部去了。
而一旦xim“消失”,iiimf成为“国际标准”。scim要么就写一个iiimf的前端,这样的话iiimf不能提供的功能scim也不可能提供得了;要么则是自己“写一个输入法服务器模块”,绕过iiimf。
一个输入法服务器是那么好写的么,影子在哪?既然总说人家“重复发明轮子”,说什么“有不足别抱怨,参加进来进行修改”,那苏哲干吗不放弃scim,加入iiimf去呢?说iiimf是“日本鬼子的东西”就更是荒诞,这种观点根本就不值一驳。

另外有关“国际标准”、“系统集成”,刚才没引完,这里还是苏哲的原话:

“SCIM 不可能,也没有必要集成到 X.org 中。
“X.org 的输入法服务器本身是模块化的,IIIMF 和 XIM 都是以模块形式提供的。
“我计划为 X.org 写一个输入法服务器模块,来代替原来的 XIM 服务器模块。这样的话,SCIM 就可以和 X.org 紧密结合了。”

不用我再多说什么了吧?
 楼主| 发表于 2004-6-10 00:16:43 | 显示全部楼层
兄台的话我不太理解说,是问iiimf能不能不使用xlib、gtk提供的库,而又能够在这些程序里输入中文吗?呵呵,这不太可能说,没有经济基础哪来的上层建筑啊。

这个是IIIMF Project Detail:

Multiplatform, platform independent.
Multlingual and Full UNICODE support, but satisfactory for native speakers.
Windowing System Independent.
Multiple language engines concurrently run.
Multiuser.
Distributed, lightweight clients and scalable server.
Extensible in multiple means.
Input method protocol efficient enough to be used over low-speed modem connection.
Easy input method engine development with plugin API.
Easy input method enabling with libiiimcf, even on console apps.
Small core part to start from.

这是正在开发的IIIM Client Framework列表:

IIIMXCF - IIIM X Window System Client Framework
IIIMJCF - IIIM Java2 Client Framework
IIIMECF - IIIM Emacs Client Framework
IIIMGCF - IIIM GTK+ client Framework (aka iiimf-gtk immodule)
IIIMWCF - IIIM Windows Client Framework
IIIMQCF - IIIM Qt Client Framework
libiiimcf - IIIM generic C client Framework library
 楼主| 发表于 2004-6-11 07:38:52 | 显示全部楼层
呵呵,不要急眼,有话慢慢说。
我并不认为这里是什么技术论坛,而且即便这里真的是技术论坛,我也不认为只能讨论技术问题。事在人为,做得不恰当,好事也会变坏事,这种例子多了去。我更加不以为我是在对苏哲进行“道德审判”,我认为苏哲的言行让人会有某种想法,赞同的也不乏其人,这又如何呢?我并没有说苏哲这个人“道德沦丧”、“狼子野心”吧。也许有的人看到“求名求利”四个字会觉得刺眼,可我说那根本就是不必要的。君子而爱财,又有什么不对的了?即便是求名求利,只要方式方法得当,并没有什么不妥的地方。真要觉得这四个字无法容忍的人,不是观念陈旧,恐怕就只能是心里有鬼了吧。
我并不是要表明我有多中立或怎么样,不过有个例子或可证明些什么。相信大家还记得,在scim-chinese没有开源前,有很多人以此来指责苏哲。那个时候,我记得大概是两次,我在输入法版发贴支持苏哲的做法。
事情说一说辩一辩,对了解事情到底是怎么样肯定是有好处的。大家也不妨想想自己所说的什么地方对了,什么地方错了。相信这件事碰撞的两方也没谁是罪该万死的,说不得,言行总有可以改进的地方。现在输入法版那边有种闹个没完的感觉,已经开始各说各话了。这样闹下去一点意思都没有,对yuking个人也非常不公平,这也是我为什么把贴子发在这里的原因。

回到事情和贴子上来。
在这件事发生以前,苏哲就曾对yuking摇过橄榄枝,当时yuking也曾作过正面回应。但我印象中yuking并没有表达过要将fcitx“移植”到scim上的准确意向或承诺,也许是苏哲有所误解了。接下来yuking发表fictx3-test1,苏哲和他的合作伙伴在该贴中发表了类似“无语”、“重复发明轮子”之类的言论。我想这种话由scim的用户者来说还没什么,但由开发者在公开场合说这样的话,或许就有些不太妥当了吧。
再来就是发投票的事情,这也是苏哲拥护者们唯一认为苏哲“或有不对”的地方。投票的标题是“并入”,即使windrose改过来了,可投票内部仍然写得很清楚。这并不是苏哲的口误,他在回贴里也说得非常明白了。不管他出于何种考虑,这种事本来就不该拿到大庭广众下来让第三者作什么决定,更不该当众说这样的话。说苏哲处理不当,应该也不为过吧。
之后在一系列的争辩中,苏哲还是多次使用了“重复发明轮子”之类的言辞,还有什么“大家的感情真丰富”、“寒心”一类的。除了大谈“大一统”的虚无缥缈的好处和iiimf的坏处,具体又说了些什么呢?呵呵,难不成fcitx“移植”到scim真是有百利而无一害么。
苏哲的言行真要讲有直接受害者的话,自然是yuking本人。yuking的确是没说什么,我也不可能跑去让yuking出来说苏哲两句。但既然苏哲的事情是公开做出来的,如有不妥自然也该公开表态。“我自屹然不动”,那恐怕就真得有被人针对的心理准备了。
说这种话真的非常无聊,我想就算我说得条理再清晰,措词再谨慎,接受不了一样接受不了,不以为然的一样不以为然。话也就这么一些,斗胆高姿态一下:若有我的对立面能静心好好看看,想想我什么地方说对了,而不是什么地方说错了,我就阿弥陀佛了。

接下来再谈技术。
上面的回贴里我已经把我的理解都拿出来了,虽然我也担心自己有信口雌黄的地方。心里话是,我也希望有人能比较技术地来回我的贴子,虽然我要真错了,还是挺丢脸的。可除了meteo说了几句我并不太明白的之外,并没有谁这样做。而且我再插一句,对于fcitx合并入scim不可替代的优势,本就应该是苏哲在发投票以前撰文说明的。要别人支持你,总是要以理服人,不是么。
有关我并不认为现在将fcitx合并到scim有什么必然性的问题,我觉得我已经说得很充分,暂时没什么可补充的了。但我也承认,在写上面的回贴时,我是比较“技术性”地处理过的。追究起来连续的第二张贴子里多少有点避重就轻的味道,那我就再把自己的看法说明白一点好了。
我引了两次苏哲的话,其实我也觉得苏哲的那些话里有些不太对的地方。在我的理解里,iiimf和scim应该是很类似的东西。有scim源码的朋友去目录树里找找一个叫distributed-scim.png的文件,0.9.3的路径是scim-0.9.3/docs/manual/zh_CN/figures/distributed-scim.png
这张图里画得很清楚,输入法模块只需要跟scim打交道,再由scim通过xim或gtk2-immodule之类的协议或接口,实现中文输入。除了措词上有可能引起争论外,就算说scim是中间层也没什么不对的地方。
iiimf号称平台无关,想要做到这一步,必然也是个抽象出来的“中间层”。说市井些,就是输入法模块将就iiimf,iiimf去将就各种协议和接口。IIIM Client Framework列表里有一个IIIMXCF - IIIM X Window System Client Framework,要我猜其实就是xim一类的东西,也就是苏哲“写一个输入法服务器模块”指的东西。
如果说scim和iiimf的不同之处,我感觉iiimf的体积结构应该比scim更大更复杂。另外我虽然不太清楚,不过iiimf应该是不像scim,有scim-gtk-panel和skim之类统一的gui(当然要写一个出来应该也是可以的)。
说iiimf不适合中国使用,我想应该是真的。不过就算那样,也是中国人参与不足所导致的。别人实现的东西,没什么必然理由非要满足你的要求吧。不过我不打算深谈这个,我们说说有关“标准”之类的事情。
“中国人的国际标准”,听起来似乎太过美好,可能有的人听到这个词就开始热血沸腾了。不过单就“标准”这个词(呵呵,meteo?)就太过模糊,有必要仔细说上一说。
iiimf似乎是很有可能成为标准的,那现在的scim是否有能力跟iiimf抗衡呢?我的判断很简单,就是没有。
iiimf的主页上写着,iiimf是为了“取代”xim而出现的,“取代”这个词也太模糊,其实我们需要关心的只是xim。iiimxcf跟xim会是种什么样的关系,我没找到相关的资料说明。但假如取代意味着简单的替换的话,也即是说,当iiimf成为国际标准时,xim会被拿出x,放iiimxcf进去。
那对于scim来说将是一场灾难,因为目前的scim是需要xim来实现大部分输入功能的。没有了xim,就意味着scim除了能在gtk2程序里输入外,其他任何程序都用不了。这样的话,也就是苏哲说“想写一个输入法服务器模块”的终极原因了。
这里又有一点需要说明,即使iiimf成为了国际标准,iiimf也不会整个被放入x。理由非常简单,x没道理包含gtk2、java2、qt之类的程序在里面,所以要放的话也顶多是放iiimxcf。同样的道理,就算scim成为了国际标准,我们也不可能在装好x之后,简单设置就可以ctrl+space了,gtk2-immodule和scim-gtk-panel是gtk2的,skim是kde的,明白?
其实要说xim“消失”,iiimxcf被放入x,我都觉得古古怪怪的。按我的思路来考虑,x必然要提供一组api来实现输入法的功能,而iiimxcf只是针对iiimf的一个模块而已。比较合理的解释应该是,iiimxcf是对那一组api进行了包装,而iiimxcf本身可能都不会被放进x。看来我对“那一组api”和xim的关系还是有模糊的地方,不过这应该也不影响上面的那些判断。
基于以上的分析,iiimf也好,scim也好,就算成为“国际标准”,也不会是“x标准”内的一部分。装上x,不会立刻就有scim可用,我想这已经和很多人的想法有所出入了。而即便scim有了“输入法服务器模块”,今后能做到最好的地步也仅仅是作为发行版内置的一个包,即不是“国际标准”,也谈不上“打败iiimf”。
再反观fcitx,scim和iiimf与fcitx的诉求根本不同。fcitx并不打算在ms windows、嵌入式系统里使用,fcitx关注的只是桌面x。fcitx只想符合桌面x的要求,并且gtk2、qt、java等等是基于xlib的,fcitx就能用。

说这么多也蛮累的,我并不想争是非或说什么人会不会做人。如果有人回贴的话,恳请尽量就贴中问题展开讨论,拜托了。
 楼主| 发表于 2004-6-11 09:15:28 | 显示全部楼层
有什么不好的啊?合并的事情本来就是苏哲说的。说拥护者我觉得还客气了,你自己去输入法版看看,有些话除了恶心我想不出别的形容词来(嘿嘿,不要随便对号入座就成)。斑竹也是人,又不是神仙。
我真是不觉得求名求利求心理满足有什么不对的地方,哪错了?不过话也说回来,我不知道meteo你跟苏哲关系如何,就算是亲密友人,你也不是他肚子里的蛔虫吧。凭良心说,他到底有没有这样那样的想法,你真的很清楚么?大家都是凡人,要吃饭要上洗手间是不。我还是那句话,做事要讲方法。礼到理也到,没什么不可以的。
我觉得你并没有很仔细看我的贴子呢,我个人反对合并的最大理由并是什么习惯问题(这俩东西都不合我的习惯;p)。fcitx和scim的基本诉求就是不同的,scim要大而全,fcitx要小而精。yuking有过原话:“我就是要实现一个简单可用的中文输入法。”
有关什么标准的问题,其实你的回贴好像也跟我的贴子关系不大说。而我说中国人参与iiimf少,这也是事实啊。有人说iiimf大部分是日本人设计的,那必然是符合日本人的使用习惯。苏哲有没有参加iiimf我是不知道,贡献了多少东西我也不知道,但这并不妨碍我说iiimf并没有太多中国人参与吧。
不过你说x就是想装好了,ctrl+space就能输入,这也有可能。但即便是这样,scim目前有能力跟iiimf抗衡么?真要达到你说的那样,iiimf至少还需要一个xlib的gui。iiimf有没有我不知道,起码scim是没有,连“输入法服务器模块”都没有,那一堆cf就更没有了。再即便这些都实现了,你觉得scim有多大的把握说服全世界人放弃iiimf而使用scim?苏哲自己都说了不可能了,无非是发行版里的几个包而已。
呵呵,再再即便这些都实现了,那也是遥远或不太遥远的将来,没必要现在来拆fcitx的台吧。我也还是那句,fcitx跟scim的诉求是根本不同的。

我费劲力气写那么多,你也不说点什么。那meteo你要是再回贴,又不针对我提到的“技术性问题”表示怀疑,我可就当你默认我说得对了。
 楼主| 发表于 2004-6-11 09:24:39 | 显示全部楼层
呼呼,强调一下。我说了我个人反对合并的最大理由是,fcitx和scim的基本诉求是完全不同的。fcitx追求的不是结构清晰、可移植性之类的,而仅仅是个“安装简单使用容易的中文输入法”。

我也已经承认了,如果要我现在重新写一个输入法,我应该是会选scim的。可这不能成为非要fcitx基于scim的理由,就像没道理非要fvwm和fluxbox的用户去用kde一样。
苏哲在这件事上又不是一点做错的都没有,他即没有对自己观点的必然性进行完整阐述,也没有对质疑的声明正面回应,更没有对自己做得不对不好的地方表达歉意。要是这样你也觉得他可以心安理得地寒心,那我也要认为别人可以理所应当地骂他了。
 楼主| 发表于 2004-6-11 09:32:07 | 显示全部楼层
呵呵,再补充两句。
其实要我来说的话,中国人并不应该自己搞一个输入法平台出来,而是应该参与到国际开发中去,这才是对中国用户和中国开源社区最好的办法。要按这么说的话,该放弃开发的其实是scim。
就算scim以后能够成事,进入x的可能性真的不大。而让所有日本人放弃iiimf的可能性也没有,让台湾人放弃xcin-iiimf的可能性也很小。这不仅仅是使用习惯之类的问题,还有文化认同的问题(台湾方面这个问题尤为重要说)。
 楼主| 发表于 2004-6-11 09:35:24 | 显示全部楼层
我说scim要进入x,肯定要一个只用xlib实现的gui,哪里错了?现在的scim不要gtk2或kde能跑起来么?
另外也拜托你,说我说我欢迎,我说了那么多就是给人挑错的。不要搞得:“你就是错了,你就是水平低。你哪里错哪里水平低,自己慢慢想去,我不屑跟你说。”
呵呵,没意思是吧。
 楼主| 发表于 2004-6-11 09:46:25 | 显示全部楼层
可以不承认iiimf是国际公认的,可又为什么要说iiimf会成为国际标准呢,会成为“中国人不认同的国际标准”?
 楼主| 发表于 2004-6-11 10:17:16 | 显示全部楼层
scim-gtk-panel和skim是scim-lib的统一gui,各种输入法模块是需要借助该gui实现中文输入的。
sim-gtk-panel和skim一个需要gtk2,另外一个需要kdelib。

meteo同志,该说你看得不仔细,还是我说得不明白呢?你自己选一个吧。;p

另外liuspider也别怪我穷追猛打说。要是没了这两个gui,真的能输入中文么。我现在没办法测试,不过预编辑区、选字区都是画在gui上的,你的意思是“盲打”么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表