The Interface Window Manager uses Objective C and the GNUstep libraries to provide strictly minimal functionality, with all additional features in bundles called IWMComponents. It uses the GNUstep defaults database for user settings such as mouse button configuration, key bindings, and initial color settings, and is optimized for use in a strictly GNUstep environment.
Preferences.app is, functionally, a clone of NeXTstep/OPENSTEP tool of the same name. Just like the original program, it's a simple application for setting preferences for the GNUstep system, with a friendly interface. The program is simple, but powerful, in that people can create new modules, called "bundles", that add new things to the program that its original developers did not think of or even intend, that don't require recompiling the main program.