Lesson: Applications vs Apps vs Applets vs Servlets

Explore the different execution models supported by Java.

Understand the differences in the different execution models supported by Java and which models are used in robotics.


An aspect of the Java "write once, run anywhere" design, is that Java programs can be run in one of several execution "models" or "contexts". Java programs can be run as "Applications", "Apps", "Applets" or "Servlets".

Application is the term typically used to describe Java programs running locally, standalone on a computer, much like programs on Windows (notepad for example). In this case the Java JVM on the computer is started and passed ('handed') the name of the Java program file. The JVM reads the Java bytecode from the file and executes it. This is how Java programs are executed on PCs. This is also the model that robot programs are run in on the EV3 and RoboRio (FRC). Your robot program is downloaded to the robot computer and the JVM on the robot computer loads and runs your program.

Apps are very similar to Applications but the term is typically used to refer to programs running on mobile devices such as cell phones. Here again your program is run by a JVM on the target device. This is the model that robot programs are run in on Tetrix (FTC) becasuse your robot computer is actually a cell phone. Apps and Applications, while similar in many ways, are different in many ways as well due to the differences in how cell phones operate as compared to PCs.

Applets refer to Java programs downloaded from the internet and executed inside your web browser by a JVM that is typically part of the browser. The idea is that programs could be provided on the fly from the internet and would be separated from your underlying system for security purposes. This model of Java program is rarely used these days but was quite common for many years.

Servlets refer to Java programs written to be executed by a web server to provide functionality to web sites. This model of Java program is still common today in the development of web sites.