Although Cone programs are often targeted for native execution on large computers, sometimes we want to execute programs on memory- or network-constrained devices, such as mobile phones or browsers (in the form of 3D/wasm apps).
These more-constrained environments struggle with large executables that are bloated by the inclusion of a required, large, and complex run-time (e.g., the Java runtime). When running on constrained environments, such apps might be too big to download or run, or might simply run too sluggishly.
Cone's fixes this problem by minimizing the size of the runtime to only what is required by the program. In effect, packaged libraries are kept small, simple and extensible. Furthermore, libraries are designed to leverage APIs already built into the environment (e.g., browser APIs such as WebGL). Instead of a monolithic, one-size-fits-all framework, a program's runtime environment is built up using a modular, opt-in philosophy.
This keeps Cone executables lean and fit, allowing them to load quickly, take up minimal space, start-up promptly, and run smoothly.