You can use Java™ or C to implement a user-defined extension.
You can use C to implement all types of user-defined extension, but you can use Java to implement only user-defined nodes.
If you can, use Java for user-defined nodes, and use C for everything else.
You must compile user-defined nodes, parsers, and exits that are written in C into a loadable implementation library (LIL): that is, a shared library on Linux and UNIX systems, or a dynamic link library (DLL) on Windows systems. You must package user-defined nodes that are written in Java as a JAR file.
To achieve platform independence, use the ANSI standard C or Java programming languages, and avoid platform-specific code in your user-defined extension.