Java. All the time (and expense) of getting the program to run on other computers is avoided. (Actually, the issue is not quite so clear-cut as this.)
Programs written in a high level language are never directly executed by the processor. You have already seen one way to execute such a program: use a translator to create a machine language program that can be executed directly.
Another way to is to use an interpreter for the language. An interpreter is a program that acts like a processor that can directly execute a high level language.
This is a fairly complicated thought. The figure might help:
In this figure, the source program "program.bas" has been written in BASIC (a programming language) by a programmer with a text editor. It is being interpreted by the BASIC interpreter, which is running on the processor. The BASIC interpreter will read each command in the source program and do what it says.
An interpreter runs directly on the processor. What type of instructions must an interpreter consist of?