Although both ScriptX and Java were designed as platform independent virtual machine environments, their philosophy and implementation were quite different. The Kaleida Media Player was a complex interpreter that required several megabytes to run, and Kaleida never achieved effective performance on a system with less than 16 MB of random-access memory. By contrast, Java was designed to run compiled bytecode on a stripped down virtual machine that could be implemented on virtually any 16-bit or larger processor. In this way, Java could be used anywhere from handheld devices or consumer appliances to mainframe computers.