11. The computer program product of claim 9 , wherein the second application is compiled as a process that is separate from the first application.
9. A computer program product, encoded on a non-transitory computer-readable medium, operable to cause one or more processors to perform operations for accessing a native application programming interface (API) of a computing device, the operations comprising: executing, on a computing device, a first application written in a device-independent programming language; providing one or more control objects from the executing first application to a compiler on the computing device, wherein the control objects include state information that defines a context for accessing the native API and the control objects include at least one control script; compiling the control script on the computing device to create a second application that is native to the operating system of the computing device; and executing the second application on the computing device, wherein the executed second application accesses the native API of the computing device to generate an output through a hardware interface of the computing device based on the context, receiving, by the first application, user input; and providing, based at least in part on the received user input and from the executing first application to the executing second application, one or more updates to cause the executing second application to accesses the native API of the computing device to generate one or more additional outputs through the hardware interface of the computing device and wherein the one or more updates include one or more updates to the state information in the control objects.