1. A method for generating an application using a computer that performs actions, including: when a generic type is encountered during compilation of a source code version of the application into a machine code version of the application, further actions are performed, including: when the encountered generic type has one or more interactions with a native runtime environment, performing further actions, comprising: determining one or more generic type methods of the encountered generic type that interact with the native runtime environment; generating native runtime signatures for each of the determined generic type methods, wherein the native runtime signatures enable one or more native objects in the native runtime environment to execute the generic type methods in the managed runtime environment; generating binding layer machine code, wherein the binding layer machine code maps each native runtime signature to its correspondent generic type method; and inserting the binding layer machine code into the machine code version of the application; and when a native object in the native runtime environment calls a generic object method in the managed runtime environment, performing actions, comprising: determining an identifier of a managed object that corresponds to the generic object method, wherein the identifier is provided by the native runtime environment; and determining a generic type that defines one or more actions of the generic object method based on the managed object that corresponds to the identifier.