SCIM was originally written in the
C++ language but has moved to pure
C since 1.4.14. It abstracts the input method interface to several
classes and attempts to simplify the classes and make them more independent from each other. With the simpler and more independent interfaces, developers can write their own input methods in fewer lines of code. SCIM is a
modularized IM platform, and as such, components can be implemented as dynamically loadable modules, thus can be loaded during
runtime at will. For example, input methods written for SCIM could be IMEngine modules, and users can use such IMEngine modules combined with different interface modules (FrontEnd) in different environments without rewrite or recompile of the IMEngine modules, reducing the compile time or development time of the project. SCIM is a high-level library, similar to
XIM or
IIIMF; however, SCIM claims to be simpler than either of those IM platforms. SCIM also claims that it can be used alongside XIM or IIIMF. SCIM can also be used to extend the input method interface of existing application toolkits, such as
GTK+,
Qt and Clutter via IMmodules. == Related projects ==