Object Definition Edit
A CORBA object is defined using the CORBA IDL programming language. CORBA IDL is pure definitions language, like, for example, UML. You only define the external interface and then choose an implementation language to actually implement your object.
However, some implementation languages make it easier than others to implement CORBA objects. In order to implement a CORBA object, the implementation's language needs to have a set of features which include object orientation, modules (packages or namespaces), and generics (templates or dynamic typing). If a language lacks any of those vital features, they have to be emulated. The language mapping provides those emulation layers for you, but it does not mean they are easy to use.
The differences are actually so large that it might be better to learn a new programming language with an easy mapping than use a known language with a particularly difficult mapping.
Another nice feature of the CORBA concept is that you don't need to use the object with the same programming language as the one the object is implemented in. So client and server may use different programming languages.