Ch Language Rivals Java Functionality

Ever heard of Ch? Probably not. In the world of embedded computing, platform-independent managed code languages and application servers, SoftIntegration's Ch is not about to stand out; however, application providers should take notice because those lucky enough to discover this little gem will find a robust scripting language that rivals Java's core functionality and even Java's "write once, run everywhere" edict.

Ch is a scripting language based on C and C++. It runs on Windows, Linux, Mac OS and Unix. The language supports most of the features of ANSI C 1999 standard, C++ class structures and POSIX, including libraries such as OpenGL, ODBC, X/Motif and GTK+.

Since Ch is interpreted, it works on top of a virtual machine, just like Java. In fact, it is one of the most complete C interpreters and can execute the same code on multiple operating systems with its virtual machine. CRN Test Center engineers found a few C-based virtual machines at and other Web sites, but they didn't provide Ch's functionality nor had they been extended with third-party libraries.

Like Java, Ch can run in a secure sandbox, allowing Ch applets to execute through the Web. Safe Ch disables the use of C pointers and restricts memory allocation outside arrays and memory functions such as memcpy, memmove and memset. Safe Ch also has a small footprint and is highly portable for handheld devices.

SoftIntegration offers a free Ch Standard Edition, which arrives with 8,000 C functions. The Standard Edition supports cross-platform Windows and Unix commands such as cd, cp, ls and mkdir. Text-parsing utilities, shell utilities and archiving commands also are supported.

SoftIntegration sells an embeddable Ch that can be integrated into any hardware and software. Like Java, Embedded Ch is highly portable and relies on free third-party libraries to generate graphics, link to databases and communicate with applications.

Some ISVs are now using Embedded Ch to execute scripts inside their own packaged applications. For instance, Ch has been integrated with National Instruments' data acquisition products, allowing engineers to speed up development of mechanical/electronic systems. Ch has also been integrated with Oracle's 9i Developer's Kit, libxm12, various flavors of ODBC and LDAP.

By conforming to Windows programming, Ch provides a Win32 library for developing Windows shells and can even be extended to work with any Windows program. Most of the library extensions and software binding projects come from the open-source community and are available at

To promote its use, SoftIntegration released a freeware ChExcel add-in, which plugs into Microsoft Excel and allows developers to extend Excel with Ch's supported graphical libraries. ChExcel is simple, but it demonstrates how well Embedded Ch can work with any software package.

Ch's strengths lie in its ability to share memory and program addresses with external programs. Java cannot do this. In fact, Ch can access global functions and call external C/C++ functions and DLLs without having to link through special interfaces.

As part of its Professional Edition, SoftIntegration offers a Mechanism Toolkit for Ch that provides engineers with numerous physics routines. Engineers can test static as well as dynamic equations using QuickAnimation functions that can demonstrate various movements of bars and cams. The toolkit enables Web connectivity, allowing users to quickly demo their work.

In addition to OpenGL, SoftIntegration offers a native graphical library to perform 2-D and 3-D plotting. Combined with the Numerical Analysis library, the plotting library provides a powerful environment for engineers. With just a few lines of code, engineers can create complex 3-D graphics. With OpenGL, developers can create simple graphics programs as well.

SoftIntegration has added Web support for many of its libraries, allowing developers to quickly publish scripts over the Web. Ch generates CGI-based programs that can be published through any Web server. Web plotting functions are provided through CGI and also run on Ch applets. Web plotting supports Unicode.

CGI programming using Ch is simple, so developers can quickly build form-based programs and add complex graphics with just a few lines of code. The company offers an open-source package to build control systems, which
are used to perform mathematical modeling. The Control System Toolkit
provides many of the graphical and analytical functions available on
MathWorks's Matlab. Ch Control System package source code is available
for download on the Ch Web site; it is free for academic use.

Even though Ch is almost an equal to Java, it lacks many of the frameworks that make Java a powerful enterprise language. These are just details, though. Test Center engineers believe that SoftIntegration easily can expand Ch and provide the frameworks needed to run enterprise systems.

Unfortunately, the language has only attracted ISVs and some integrators for scientific use and specific software and hardware implementations.
Developers looking for channel support will be disappointedbut developers purchasing products for in-house coding or to generate a marketable application should be used to that already. Technical support is available through telephone and e-mail for paid cutomers. For general users, technical support is available via a mailing list and several noncompany-hosted forums. Developers may be able to garner support from SoftIntegration's distributors, which are usually ISVs themselves. The lack of a channel program is not necessarily a negative as most developers' revenue comes from either selling completed applications or by billing out for time and materials.