Ervin Yan's Weblog

Ervin Yan's Weblog

全部分类 | General | Java | Music
« A good article about... | Main | IIIMF Common GUI... »

20050321 星期一 2005年03月21日

What's difference between IIIMF and SCIM Someones discusse such article on Linuxsir website, see: http://www.linuxsir.org/bbs/showthread.php?t=180826 (IIIMF 相对 SCIM 有何优势,FC 要选择它?) I thinks the differences as follow: 1. different design philosophy (设计哲学) SCIM: KISS (Keep It Simple and Stupid) and 20-80 (use 20% resource to finish 80% features). IIIMF: 100% meet the input method developer's requirement. 2. different priority on FrontEnd and Backend: SCIM: High priority on GUI and user experience. IIIMF: High priority on input method control and backend services. From the view of MVC (Module/View/Control) model, IIIMF more focus on Control side, while SCIM more focus on View side. 3. different professional level for the design of API (Application Programming Interface)/SPI (Service Provider Interface) IIIMF provide professional IIIMCF (IIIM client framework) APIs so that all kinds of applications can call IIIMCF APIs to get input methods services from IIIM server. that's one possible that we can replace XIM with IIIMF in the low_level implementation in X11 and applications (such as StarOffice). SCIM have no such kind of designs. 4. different market target. IIIMF focus on market with enterprise system environment, for example, thin client system. And end users more like SCIM. from the development view of input method architecture, I think, in the long run, IIIMF have more possibility to survive and become one industry standard because it is more scalable that it can accommodate itself to input system with different complexity, from most simple to most complex. if IIIMF developers put more resources on the GUI enhancement, then IIIMF will everywhere. X11, GTK, Qt, Windows ... I think, That's why FC choose IIIMF. ( 2005年03月21日, 11:31:59 下午 CST ) Permalink 评论 [2]

反向跟踪 URL: http://blogs.sun.com/eyan/entry/what_s_difference_between_iiimf
评论:

The complexity of IIIMF is much higher than SCIM, not only the architecture itself, but also the leif API. It gives input method developers too many restrictions, for example: 1. Must use namespace storage api It makes almost impossible to use 3rd input method library in IIIMF LEs, because those libraries always handle files/databases themselves. 2. Must handle multi-user issue It makes LEs much complex than single user model.I always don't understand why input method should be a system wide service. Why input method can't be an user application just like firefox OOo or something else. 3. Must implement aux object to get better GUI Implementing aux object is nightmare for input method developers, at least for me. 4. Very few utility functions to help development LEIF is just an API interface, it lacks a library which contains utility functions to help LE developement. 5. LEIF interface is very hard to use Just as jserv said before, he spent several weeks(days?) to hack iiimf-chewing but couldn't get it work. But only spent half of a day to get scim-chewing work. 6. Many design/implementation issues for example: a) Doesn't support multiple input methods in one LE very well. b) Doesn't support Key Release event (has it been fixed?) c) xaux is tightly binded to X Window and many LEs provide their own xaux objects, so it's hard to use these LEs in other environments. In my view, IIIMF is more like a commercial/close source product. It's not a good opensource project. Comparing to IIIMF, developing SCIM IMEngine is much easier. Look around on the internet, lots of independent developers are writing input methods for SCIM. And SCIM itself is developing rapidly.More and more features are adding into SCIM. for your 1st point: I think KISS is just a good rule for OpenSource projects. And IIIMF definitly can't 100% meet the developers requirement, at least for Chinese input methods developers. Otherwise there wouldn't be so many additional wrapers on top of IIIMF, eg. Unihan, ThizInput etc. for your 2nd point: SCIM cares about both FrontEnd and BackEnd. for your 3rd point: SCIM itself is a library, all necessary APIs are in it, including APIs for developing client adapters, GUI components, Socket Communication modules, Helper modules, and so on. What does IIIMCF provide? for your 4th point: SCIM can also fit into thin client system and provide similar functionality than IIIMF. And please have a look at the major distributions: SUSE and Mandrake use SCIM as their primary input method, Debian, Gentoo, FreeBSD and may others provide SCIM package to their users. Many users of FC switch to SCIM (refer to the discussions on linuxquestions). As you said IIIMF and SCIM have different focus, thus they are suitable for different kinds of users. SCIM is mainly for desktop users, IIIMF is (maybe) mainly for thin client system users. So I think none of them could be an exclustive industry standard, no matter in long run or short run. Because we are all in OpenSource world, so please don't make such decision by ourselves. Instead, we should let users and developers choose the best one for themselves.

发表于 James Su 在 2005年03月25日, 09:39 上午 CST #

>I think, That‘s why FC choose IIIMF. That is not true any more: FC5 decided to migrate to use SCIM by default

发表于 LiuCougar 在 2005年11月07日, 05:50 上午 CST #

发表一条评论:

姓名:
电子邮件地址:
URL:

您的评论:

HTML语法: 禁用