James Gosling never intended to write a new programming language. Instead, he was trying to bring interactivity and interconnectedness to an emerging market for TV set-top boxes in the early 1990s. But those systems ran on a variety of different hardware, which made traditional programming languages like C++ inefficient. The code would need to be recompiled and, in many cases, rewritten to some degree to run on all the available systems of the day.
So Gosling took a different path and created a platform-independent runtime environment that abstracted the underlying hardware. Then, he created a new object-oriented programming language, based largely on C and C++, that targeted the new runtime environment. This platform, collectively called Oak, was later renamed to Java. And its compiler would create software code, called bytecode, that ran within the Java runtime environment and was thus identical across platforms. At runtime, the Java Virtual Machine (JVM) translated the bytecode into native code for the underlying hardware.