1. A method comprising: defining, by a processor, a set of user-defined data types with an encoding; using the encoding and a code-generator utility to generate, by the processor, a first at least one class to implement each of the user-defined data types within the set of user-defined data types in a first software general-purpose language (GPL) as a first container; using the encoding and the code-generator utility to generate, by the processor, a second at least one class to implement each of the set of user-defined data types within the set of user-defined data types in a second software GPL as a second container; running a code-generator to generate, by the processor, software configured to marshal each of the set of user-defined data types within the set of user-defined data types in the first and second at least one classes; marshalling, by the processor, data directly between the first software language and the second software language utilizing a Matlab executable (MEX) interface; and de-marshalling, by the processor, the marshalled data directly into the second software language utilizing the MEX interface.