5. The computer-readable medium of claim 1 , wherein: the multiple sets of application environment components are configured to provide different program execution speeds; and selecting the particular set of application environment components comprises determining that the program execution speed provided by the particular set of application environment components satisfies a target program execution speed.
1. A non-transitory computer-readable medium having instructions stored thereon that, when executed on a computing device having a machine-specific instruction set, cause the computing device to perform operations comprising: receiving, by the computing device and from a computing system that is remotely located from the computing device, first portable code, the first portable code being a portable version of a first program, wherein the computing device includes multiple sets of application environment components and each set of application environment components includes: (i) a respective translator component for translating portable code into the machine-specific instruction set of the computing device, and (ii) a respective sandboxing component for executing translated programs that have been translated into the machine-specific instruction set of the computing device by one of the translator components, the respective sandboxing component using software-based fault isolation; selecting, based on a set of selection criteria and from among the multiple sets of application environment components, a particular set of application environment components; translating the first portable code into the machine-specific instruction set of the computing device using the respective translator component of the particular set of application environment components to generate a machine-specific version of the first program; and executing the machine-specific version of the first program on the computing device using the respective sandboxing component of the particular set of application environment components.