For example, there will be an object representing the form and there will be an object in charge of connecting to a mail server and delivering the email message. In order for each program to work, each of these objects, will have to be defined in each of the three languages. As you might imagine, this is quite inefficient. The algorithm involved in connecting to a mail server and delivering the email message is not really language specific. Java objects can't speak to Perl objects and Perl objects can't speak to Visual Basic objects.
Groups never mingle.
In the COM universe however, anything can talk to anything else. Thus, in the COM universe, you do not write three mailer objects. Instead, you write one special mailer object that can be used by any application in any language. It is an object that conforms to the COM specification. It is a COM object.